はじめに
以前、以下の記事でラズパイを使ってKubernetesクラスタを構築してみました。
Raspberry Pi 4を使ってKubernetesクラスタを構築する
どうせなら外部からアクセスして管理できるようにしたいと思っていたのですが、自宅の環境的にポート開放することが難しい...。
どうにかポート開放すること無く外部からアクセスする方法が無いかと調べていたところ、AWSのSystems Managerで実現出来そうだったので、ラズパイに導入してみました。
ハイブリッドアクティベーションの作成
AWS Systems Managerのページを開き、左側メニューからハイブリッドアクティベーションのページを開きます。
「アクティベーションを作成する」ボタンがあるので選択します。
入力項目が現れるので、設定内容を入力します。
項目 | 設定内容 |
---|---|
アクティベーションの説明 | My Activation |
インスタンス制限 | 1 |
IAMロール | システムによって作成されたデフォルトロール ※1 |
デフォルトのインスタンス名 | RaspberryPi Manager |
※1 ... SSM用のカスタムロールを作成して使用したい場合は、既存のカスタムIAMロールを選択してください。
入力した上でアクティベーションを作成を選択すると、アクティベーションコードとアクティベーションIDが表示されます。
この画面を閉じると確認できなくなるので、メモしておく必要があります。
以上でアクティベーションの作成は完了です。
SSM Agentのインストール
続いて、管理対象のマシン(今回はRaspberry Pi)で作業をします。
以下のコマンドを入力してSSM Agentをインストールします。
-code
には先ほどメモしたアクティベーションコードを、-id
にはアクティベーションIDを指定します。
また、-region
にはap-northeast-1
を設定しました。
mkdir /tmp/ssm
sudo curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_arm/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb
sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb
sudo service amazon-ssm-agent stop
sudo -E amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region"
sudo service amazon-ssm-agent start
再度AWSのコンソールに戻り、フリートマネージャーからSSM Agentが正常に動作しているかを確認します。
SSM AgentのpingがオンラインになっていればOKです。
※ curlのURLについて
Raspberr Pi OSの場合はdebian_armとなりますが、管理対象のOSによってこの値が変わります。
公式マニュアルに詳細が記載されているので、他OSを使用したい方は参考にしてみてください。
アクセス方法
Session Managerを開き、「セッションの開始」を選択します。
ターゲットインスタンスから先ほど作成したインスタンスを選択して「セッションを開始する」を選択します。
ブラウザ上からラズパイにアクセス出来ました。
これでどこからでもラズパイを見守ることが出来ますね。