概要
- Lambdaを用いてプライベートサブネット内のEC2の起動・停止を操作したい
解決方法
ポイントはセキュリティグループ、ポリシー/ロール、そしてLambdaの配置場所です。
1. セキュリティグループの設定
セキュリティグループは、①EC2のセキュリティグループ、②Lambdaのセキュリティグループの2つが必要になります。Inbound rules、Outbound rulesは以下の通りです。
①EC2のセキュリティグループ
- Inbound rules : ②LambdaのセキュリティグループからのHTTPS(443)を許可する
- Outbound rules : デフォルト設定(全通信許可)
②Lambdaのセキュリティグループ
- Inbound rules : デフォルト設定(通信無し)
- Outbound rules : デフォルト設定(全通信許可)
2. ポリシー/ロールの設定
Lambdaに AmazonEC2FullAccess
ポリシーを持つロールを設定します。
※起動・停止だけの場合はFull権限でなくてもよいですが、ここでは分かりやすさの観点からFull権限としておきます。必要に応じて最小権限に変更してください。
3. Lambdaの配置場所
これが少し混乱する箇所かと思いますが、VPC外に配置しておけば問題ありません。つまり、VPCおよびプライベートサブネットへのアタッチは不要ということです。これは「EC2 APIがインターネット上に存在する」ということが理由です。
以上の3点に注意すれば無事Lambdaからプライベートサブネット上のEC2の起動・停止操作が可能になると思います。
1件のコメント
コメントはできません。