サイトアイコン 協栄情報ブログ

【AWS】プライベートサブネット上のEC2(RHEL)にSSM Agentをインストールしたい

AWS Systems Manager


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

こんにちは、えじまです

本日は、プライベートサブネットに建てられたEC2インスタンスでセッションマネージャーを使う必要があったため、その方法を記載していきます

セッションマネージャーを利用するためには、SSM Agentをインストールしなくてはいけません

しかし、AMIによってデフォルトでインストールされているものと、いないものとあります
(公式ドキュメントにありますので気になる方は、こちらのリンクから)

そこで、今回はデフォルトでインストールされていないAMIの【RHEL】を使用して検証したいと思います

構成図

今回の学習ポイント

構築手順

  1. VPCの作成
  2. IAM Roleの作成
  3. セキュリティグループの作成
  4. EC2インスタンスの作成

構築開始

VPCの作成

以下条件を満たしてれば大丈夫です。
AZの数:1
パブリックサブネットの数:1
プライベートサブネットの数: 1
NATゲートウェイ: 1 AZ内

(NATゲートウェイの立ち上げに多少時間がかかります)

IAM Roleの作成

マネジメントコンソールからIAMのページに行きます
左のサイドメニューから「ロール」を選択
「ロールを作成」をクリックし、下図に従って項目を選択

許可ポリシーに、【AmazonSSMManagedInstanceCore】を選択
「次へ」をクリック

任意のロール名を入力し、ロールを作成

セキュリティグループの作成

以下図の条件で作成してください

項目 タイプ 送信先
インバウンドルール
アウトバウンドルール HTTPS 0.0.0.0

EC2インスタンスの作成

以下画像を見ながら作成してください

#!/bin/bash

sudo dnf install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm

sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent

※余談ですが、ユーザーデータはデフォルトではインスタンスの起動時に1度だけ機能するものです
例えば一部分間違えたからといって、修正して起動しなおしても反映されませんのでご注意ください
公式ドキュメントにも記載があります。

以上で構築準備はできました

セッションマネージャーを起動してみる

マネジメントコンソールから起動したEC2を選択
上部にある「接続」をクリック

セッションマネージャー欄から「接続」をクリック
(EC2起動からすぐは接続できないかと思います。5分ほど待っても接続できなければ設定を見直してみてください。)

以下の黒い画面が表示されれば成功です。

ワンポイント

ここまで構築をして疑問に思われた方もいらっしゃるかと思いますが、なぜインバウンドルールを許可していないのに、SSM Agentをインストールできたのでしょうか?

ステートフル・ステートレス

AWSにおけるセキュリティグループとネットワークACLの違い

つまり今回通信をできたのはセキュリティグループを使用してアウトバウンド通信を許可したので、こちらが要求した「SSM Agentをインストールしたい」という情報を維持して"返してくれた通信"ということでインバウンドルールを設定していなくても、通信できたわけですね

まとめ

今回はネットワークの通信方法も含めて様々なことを学ぶことができた貴重な機会でした

また、勉強した内容をブログで発信していきたいと思います

ここまで読んでくださりありがとうございました

それでは

モバイルバージョンを終了