AWSで仮想プライベート空間(VPC)を構築し、パブリックサブネットとプライベートサブネットを構築するような場合があるかと思います。例えば、以下のような構成です。
パブリックサブネット内のEC2サーバは「AWS Systems Manager」からアクセス可能であるため、通常どおりSystems Managerを使用できます。
しかし、プライベートサブネット内のEC2サーバはそのままでは「AWS System Manager」からアクセスできず、Systems Managerを使えないわけです。
そこで、今回は「プライベートサブネットのEC2サーバでSystem Managerを使用するために何をすればよいか」解説します。
VPCの構築方法やSystems Managerを使用したアクセス方法など参考記事も貼っておきますので、興味があればご覧ください。
WindowsのEC2にAWS Systems Managerでアクセスする
System Managerを使用したEC2への接続方法を紹介しています。興味があればぜひご覧ください。
プライベートサブネットのEC2サーバでSystem Managerを使用するために必要なこと
プライベートサブネット内のEC2でSystems Managerを使用するには以下の3つの作業が必要です。
- VPC の DNS 属性の「 DNS ホスト名」を有効にする
- 「プライベートDNS名」が有効なVPCエンドポイントを3つ作成する
- 対象のEC2にSystems Managerをセットアップする
Systems Managerを使用するにはVPCの設定変更およびVPCエンドポイントの構築が必要です。
ssm-agentはEC2に最初からインストールされている場合もありますが、古い可能性もあるのでSystems Managerから更新できるようにセットアップしておいた方がよいでしょう。
VPCのDNS属性の「DNSホスト名」を有効にする
まずはVPCの設定変更から。
VPCコンソール画面でVPCパネルからSystems Managerを使用したいVPCを選択して「アクション」をクリックし、「DNSホスト名を編集」をクリックします。
DNSホスト名を編集画面ではDNSホスト名の有効化にチェックし、「変更を保存」をクリックします。
「プライベートDNS名」が有効なVPCエンドポイントを3つ作成する
VPCエンドポイントは以下の3つを構築する必要があります。いずれも「プライベートDNS名を有効」なエンドポイントとして作成する必要があります。
- com.amazonaws.ap-northeast-1.ssm
- com.amazonaws.ap-northeast-1.ssmmessages
- com.amazonaws.ap-northeast-1.ec2messages
それでは、それぞれのエンドポイントを構築します。
VPCコンソール画面からエンドポイントパネルを開き「エンドポイントの作成」をクリックします。
エンドポイントの作成画面ではサービスカテゴリで「AWSサービス」を選択し、検索窓に「ssm」と入力してサービスを検索して「com.amazonaws.ap-northeast-1.ssm」を選択します。
Systems Managerを使用したいVPCとサブネットを選択し、プライベートDNS名を有効にするの「このエンドポイントで有効にする」にチェックを付けます。
セキュリティグループは新しく作成するため、「新規セキュリティグループを作成」をクリックします。
セキュリティグループパネルが表示されたら、「セキュリティグループを作成」をクリックし、「セキュリティグループ名」、「説明」を入力してVPCを選択します。
インバウンドルールには以下を設定してください。
- タイプ:カスタムTCP、ポート範囲:443、ソース:【サブネットのCIDR】
※ CIDRにはVPCのCIDRを網羅的に設定することをオススメします。
ここで許可していないCIDRでは(パブリックサブネットでも)Systems Managerが使用できなくなります。
例えば、パブリックサブネットとプライベートサブネットのどちらからもSystems Managerを使用する場合には以下のように2通り設定します。
- タイプ:カスタムTCP、ポート範囲:443、ソース:【パブリックサブネットのCIDR】
- タイプ:カスタムTCP、ポート範囲:443、ソース:【プライベートサブネットのCIDR】
すべて入力したら「セキュリティグループを作成」をクリックし、エンドポイントの作成画面に戻ります。
エンドポイントの作成画面に戻って、先ほど作成したセキュリティグループを選択し、「エンドポイントの作成」をクリックします。
続いてエンドポイント(com.amazonaws.ap-northeast-1.ssmmessages)を作成します。
VPCコンソール画面からエンドポイントパネルを開き「エンドポイントの作成」をクリックします。
エンドポイントの作成画面ではサービスカテゴリで「AWSサービス」を選択し、検索窓に「ssm」と入力してサービスを検索して「com.amazonaws.ap-northeast-1.ssmmessages」を選択します。
System Managerを使用したいVPCとサブネットを選択し、プライベートDNS名を有効にするの「このエンドポイントで有効にする」にチェックを付けます。
セキュリティグループは上記のエンドポイント(com.amazonaws.ap-northeast-1.ssm)作成時に作成したものを選択します。
すべて入力したら「エンドポイントの作成」をクリックします。
続いてエンドポイント(com.amazonaws.ap-northeast-1.ec2messages)を作成します。
VPCコンソール画面からエンドポイントパネルを開き「エンドポイントの作成」をクリックします。
エンドポイントの作成画面ではサービスカテゴリで「AWSサービス」を選択し、検索窓に「ec2」と入力してサービスを検索して「com.amazonaws.ap-northeast-1.ec2messages」を選択します。
Systems Managerを使用したいVPCとサブネットを選択し、プライベートDNS名を有効にするの「このエンドポイントで有効にする」にチェックを付けます。
セキュリティグループは上記のエンドポイント(com.amazonaws.ap-northeast-1.ssm)作成時に作成したものを選択します。
すべて入力したら「エンドポイントの作成」をクリックします。
3つのエンドポイントが作成出来たら、VPCコンソール画面のエンドポイントパネルですべて「使用可能」ステータスとなっていることを確認しましょう。
対象のEC2にSystems Managerをセットアップする
Systems Managerを使用したいEC2のセットアップを行います。Systems Managerの高速セットアップ機能で簡単にセットアップできます。
はじめて高速セットアップを使用する場合は「高速セットアップ(初回)」を、すでに高速セットアップを使用したことがある場合は「高速セットアップ(2回目以降)」の内容でセットアップしていきます。
Systems Managerコンソール画面の高速セットアップパネルを開き、「Create」をクリックします。
Coose a configuration type画面では「Host Management」を選択し「Next」をクリックします。
次にリージョンを選択し、「Manual」を選択して、Systems ManagerをセットアップしたいEC2を選択して「Create」をクリックします。
Systems Managerコンソール画面の高速セットアップパネルを開き、前回実行した高速セットアップを選択し「View details」をクリックします。
Host Management画面では「Action」から「Edit configuration options」をクリックします。
Edit options画面では、Target Instancesで「Manual」を選択し、セットアップしたいEC2を選択し、「Update」をクリックします。
確認の前に
上記のセットアップ操作を行ったら、一度EC2の「停止/開始」を実施することをオススメします。
OSが起動することにより、セットアップが完了する場合があります。
セットアップの状態を確認
Systems Managerコンソールの「ステートマネージャー」パネルから実施した高速セットアップが成功しているか確認できます。
特に「リソースのステータス数」がSystems Managerの対象サーバーの台数になっているかチェックし、
不足している等再度セットアップを実施したい場合は「関連付けを今すぐ適用」ボタンからセットアップを実施することができます。
フリートマネージャーからマネージドインスタンスを確認
Systems Managerコンソールの「フリートマネージャー」パネルからマネージドインスタンスを確認できます。
正しくセットアップが完了していればここに表示されているはずです。
また、Systems Managerを使用できるEC2を確認する際にもこの画面は便利です。
ブラウザからセッションマネージャーでアクセスして確認
セッションマネージャーが使用できるか確認してみるのも手です。
EC2コンソール画面から対象のEC2インスタンスを選択し「接続」の「セッションマネージャー」から「接続」ボタンをクリックし、接続できるか確認します。
Q&A
EC2のセキュリティグループにルールの追加が必要か
EC2からエンドポイントへの通信は443ポートのアウトバウンドができれば問題ありません。基本的にはアウトバウンドは全ポート許可するようになっていると思いますので、特にルール追加は必要ありません。
Storage Gatewayサーバーで利用できない?
Storage Gatewayで使用しているEC2はssm-agentが動作しないため、Systems Managerの使用は難しいようです。