AWS Systems ManagerでLAN外のオンプレ環境にアクセスしてみる

モチベーション

職業柄、社外のHPCクラスタにおける障害/不具合に関するお問い合わせを受けることがあります。当然、場合によっては現地訪問せざるを得ないことも多々あります。

その際、「Systems Managerを使えたら、設定も簡単そうでリモート環境から迅速に問題解決ができるかもしれないし便利では?」と思い、実際に試して記事にまとめてみようと思いました。

Systems Managerでの接続時のイメージ

下図がシステム構成のイメージです。HPCクラスタを遠隔操作したいと考えるのなら管理ノード(or 踏み台マシン)がインターネットに接続されている必要があります。というのも、後の手順でインストールするSSMのエージェントがAWSに向けて通信できる必要があるためです。

今回、私は接続先のサーバとしてUbuntu24.04 (ホスト名: gp-workstation)を扱います。

SSM-Agent経由時の接続費用について

こちら(参考[1])に料金が記載されています。2025/09 時点では最初の72,000時間での金額計算が 0.0137 USD/hとのこと。150 JPY/USDで換算すると1台あたり大体 2.1 JPY/hになります(安いですね)。

設定手順

参考にさせていただいたこちら(参考[2])の記事に則って、実際の作業を進めてみます。

  • IAMロールを作成する

セッションマネージャーを有効化する際に、IAMロールを指定する必要が生じるため、先回りしてIAMロールを作成します。以下に私が試した際のスクショを共有します。

上記の3ステップで作成完了です。あっさりと完了するかと思います。

  • 接続先サーバをSystems Managerに登録する

Systems Managerにオンプレサーバを登録するため、まずは以下のようにハイブリッドアクティベーションを作成する必要があります。「右上のアクティベーションを作成する」を押下してください。

今回、登録するオンプレのサーバは1台だけなので「1」として入力。そして、ここで直前に作成したIAMロールを指定します。最後にActivation Codeの有効期限を入力します。本来は必要な期間だけキーを有効にする方が安全ではありますが、今回は30日間の有効期限を持たせてみました。

「アクティベーションの作成」を押せば、以下のように画面上部にActivationに必要なCodeとIDが表示されるので、メモ帳などにコピペしておいてください。この後のステップで利用します。



  • アドバンストティア設定を有効化する

デフォルトではアドバンストティアが無効になっているかと思います。オンプレミスのサーバに対してSystems Manager経由でのアクセスを行う場合、これを有効にする必要があります。下図の通り、フリートマネージャを選択します。

そのまま、「設定」から「インスタンスティアの設定を変更」を選択し、設定を変更します。




  • SSM-Agentをインストール/設定する

続いて、遠隔から操作したいサーバに対してSSM-Agentをインストールします。コマンドリストを下記に記載します。

補足事項としてActivation Codeを再発行した場合などは、Code登録の際にoverwriteオプションを付与しないと、AWS側に認識してもらえないため、お忘れなきようお願いします(1敗)。

### 以下、us-east-1にて設定したSystems Managerへのアクセス設定例を示す
### 適宜、実行環境に合わせてregion情報は置き換えて実行すること
> curl https://amazon-ssm-us-east-1.s3.us-east-1.amazonaws.com/latest/linux_amd64/ssm-setup-cli -o ssm-setup-cli
> sudo chmod +x ssm-setup-cli
### overrideオプションが入るのはここ。初回設定時は特に気にしなくてOKです
> sudo ./ssm-setup-cli -register -activation-code "xxxxxxxxxxxxxxxxxxxx" -activation-id "56585dd0-1fdb-4a66-95a8-5235e63586b6" -override -region "us-east-1"
### 以下でサービスを開始することで、Agentとして機能し始める。
> sudo systemctl start amazon-ssm-agent



  • 設定完了の確認

ここまでの手順が正常に完了すると、下図のようにフリートマネージャーにマシンが表示されるようになります。

当該サーバのノードIDを選択し、右上の「ノードアクション」から「接続」→「ターミナルセッションを開始する」を選択することで、マシンへ接続できます。



実際の操作画面

自宅外部のネットワークに接続したノートPCを使って、マネジメントコンソール上から自宅のサーバへアクセスできることが確認できました。

左側のペインがSSM-Agentでつないでいるマシンのターミナルで、右側はローカルのターミナルになります。接続して気が付きましたが、エージェントインストールの際、自動的にssm-userというアカウントを登録しているようです。

  • 補足事項

マネジメントコンソール上からのアクセスだけでなく、AWS CLIを経由したローカルのターミナルからもアクセス可能です。(お手元の環境によっては追加でSessionManagerPluginをインストールする必要がありました。)

### region引数を与えない場合はdefaultのリージョンのみをtargetとして検索するので注意
> aws ssm start-session --target mi-0b4eb835fa41ab966 --region us-east-1
Starting session with SessionId: XXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXX

感想

VPN等を設定するよりラクだと思います。GUI機能を利用しない環境や大規模なファイル送受信を想定しないのであれば、Systems Manger経由でのアクセスでいいと思います。

参考情報

[1] 一元的なオペレーションハブ – AWS Systems Manager の料金 – Amazon Web Services
[2] オンプレミスを AWS Systems Manager で管理する | iret.media

以上


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です