APC 技術ブログ

株式会社エーピーコミュニケーションズの技術ブログです。

株式会社 エーピーコミュニケーションズの技術ブログです。

【AWS】セッションマネージャー導入してみた2(プライベートサブネット編)

目次

はじめに

こんにちは、クラウド事業部の島田です。

前回、【AWS】セッションマネージャー導入してみたという記事を執筆しました。

今回はそのパート2として
プライベートサブネットのインスタンスへのセッションマネージャー導入方法をハンズオン形式でご紹介します!

準備

※注意

本記事の環境はPart1から引き続いているものとなります。
詳しくはこちらをご覧ください。

①導入するインスタンスでSSM Agentが起動していることを確認

インスタンスにチェックを入れて 接続をクリック

以下の2つを確認する。

1, セッションマネージャーで接続ができること

2, 下記コマンドにてSSM Agentがenabledであること

sudo systemctl status amazon-ssm-agent

【要確認】赤枠がdisabledの場合、自動起動しないため下記コマンドを実施

sudo systemclt enable amazon-ssm-agent


②起動するAMIを取得してプライベートサブネットで起動

インスタンスを選択 > アクション > イメージとテンプレート > イメージを作成 をクリック


「イメージ名」「イメージの説明」を適当に入力し、再起動させる必要はないので
「再起動しない」の有効化にチェックを入れてイメージを作成をクリック


イメージ > AMI をクリックし作成されていることを確認する。
ステータスが「利用可能」であることを確認し、AMIにチェックを入れて
「AMIからインスタンスを起動」をクリック


インスタンス起動画面にて、プライベートサブネットで起動するように設定する。

「接続」を押してみると・・・

うーん、接続は出来なさそうですね、、、

どうやって接続するか一緒に見ていきましょう!

本題

改めてSession Managerを利用する際の前提条件を見てみましょう!

docs.aws.amazon.com

・サポートされているOSであること
 ⇒RedHat Enterprise Linux 9 64bitはサポートされているため問題なし

・SSM Agentがインストールできていること
 ⇒インストールできているため問題なし

・以下のエンドポイントへの HTTPS (ポート 443) で通信が許可されていること
 ssmmessages.region.amazonaws.com
 ec2messages.region.amazonaws.com
 ssm.region.amazonaws.com
 ⇒???

・AWS CLIのバージョンが適切であること
 ⇒AWSから提供されている最新のAMIを利用しているため問題なし

現状、プライベートサブネットは外部へのネットワークに出れる状況にはありません。

つまり、
プライベートサブネットから外部へ通信するための専用の出入り口(エンドポイント)が必要となります。

これはVPCのリソースマップを見ればわかりやすいかと思います。

▼パブリックサブネット

▼プライベートサブネット

パブリックサブネットはインターネットゲートウェイを通じて外に出れているのに対し、
プライベートサブネットでは外に出れていないことがわかります!

次章ではこの問題を解決する方法を一緒に見ていきましょう!

やってみよう

①エンドポイント用のセキュリティグループを作成しインスタンスにアタッチ

「セキュリティグループ名」を記載し、自身のVPCを選択する。
インバウンドルールに以下を設定し、「セキュリティグループを作成」をクリック

  • タイプ:HTTPS
  • ソース:カスタム(VPC の IPv4 CIDR値)

EC2インスタンスを選択 > アクション > セキュリティ > セキュリティグループを変更 をクリック

検索窓から先ほど作成したエンドポイント用SGを選択し「セキュリティグループ追加」ボタンをクリック
選択したエンドポイント用SGのみ表示されたら保存ボタンをクリック

②3つのエンドポイントを作成し、SGにアタッチ

  • ssmmessages.region.amazonaws.com
  • ec2messages.region.amazonaws.com
  • ssm.region.amazonaws.com

VPC ダッシュボード > エンドポイント > エンドポイントを作成 をクリック

VPCエンドポイント作成① - ssmmessages

エンドポイント名を入力し、サービスカテゴリを「AWSのサービス」を選択
サービスにて検索窓から「ssmmessages」を検索しcom.amazonaws.ap-northeast-1.ssmmessagesを選択する。

VPCエンドポイント作成② - ec2messages

エンドポイント名を入力し、サービスカテゴリを「AWSのサービス」を選択
サービスにて検索窓から「ec2messages」を検索しcom.amazonaws.ap-northeast-1.ec2messagesを選択する。

VPCエンドポイント作成③ - ssm

エンドポイント名を入力し、サービスカテゴリを「AWSのサービス」を選択
サービスにて検索窓から「ssm」を検索しcom.amazonaws.ap-northeast-1.ssmを選択する。

VPCエンドポイント作成①~③ - 共通

自身のVPCを選択し、プライベートサブネットを選択。
セキュリティグループはエンドポイント用SGを選択する。

ポリシーは「フルアクセス」のままで問題ないので「エンドポイントを作成」をクリック

3つのエンドポイントのステータスが「利用可能」であれば問題なし

以上で設定完了!

動作確認

インスタンスにチェックを入れて 「接続」をクリック

「セッションマネージャー」を選択し「接続」をクリック

コンソール画面が表示されればOKです!

おわりに

以上がプライベートサブネットのインスタンスへセッションマネージャーを導入する手順になります。
私もこの記事を執筆するまでセッションマネージャーの前提条件を意識してなかったのでとても勉強になりました。

これからも不定期ながら気になった仕組みや小ネタを書いてみようと思います!

お知らせ

APCはAWS Advanced Tier Services(アドバンストティアサービスパートナー)認定を受けております。

その中で私達クラウド事業部はAWSなどのクラウド技術を活用したSI/SESのご支援をしております。
www.ap-com.co.jp

https://www.ap-com.co.jp/service/utilize-aws/

また、一緒に働いていただける仲間も募集中です!
今年もまだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。

www.ap-com.co.jp

本記事の投稿者: 島田
AWSをメインにインフラ系のご支援を担当しています。