🦔
AWS プライベートサブネットでSSMをオンラインにする手順(備忘録)
✅ 1. VPC属性の設定
enableDnsSupport = trueenableDnsHostnames = true-
マネコン操作:
- VPC → 「アクション」→「DNS設定を編集」→ 両方オン。
✅ 2. EC2起動時の設定
-
IAMロールに
AmazonSSMManagedInstanceCoreを付与。 - UserData(Ubuntu例):
#!/bin/bash
apt-get update -y
apt-get install -y amazon-ssm-agent
systemctl enable amazon-ssm-agent
systemctl start amazon-ssm-agent
✅ 3. VPCエンドポイント作成
- 作成するエンドポイント(Interface型):
com.amazonaws.<region>.ssmcom.amazonaws.<region>.ec2messagescom.amazonaws.<region>.ssmmessages
- プライベートDNSを有効化(要VPC属性設定)。
-
セキュリティグループ:
- インバウンド:TCP 443、ソース = EC2のSGまたはサブネットCIDR。
- アウトバウンド:許可(デフォルトでOK)。
✅ 4. 接続確認
- EC2で名前解決確認:
nslookup ssm.ap-northeast-1.amazonaws.com
- HTTPS接続確認:
curl -v https://ssm.ap-northeast-1.amazonaws.com
→ 400 Bad Request が返ればOK(TLS成功)。
✅ 5. SSMエージェント確認
- 再起動:
sudo systemctl restart amazon-ssm-agent
- ログ確認:
sudo tail -f /var/log/amazon/ssm/amazon-ssm-agent.log
→ Successfully registered や associationId が出ればOK。
✅ 6. AWS側確認
- CLI:
aws ssm describe-instance-information --region ap-northeast-1
- マネコン:
- Systems Manager → Managed Instances → インスタンスが「オンライン」。
✅ ポイント
-
curlで 400 は正常 → ネットワークOK。 - エージェントログに
associationId→ SSM登録済み。 - セッションマネージャ > フリートマネージャーで確認して該当インスタンスがオンラインだったらSSM Agentは疎通できている。
Discussion