パパエンジニアのアウトプット帳

30歳に突入した1児のパパエンジニアのブログ

プライベートなVPC内のEC2にSession Managerで接続する

Internet GatewayすらアタッチされていないVPCにSession Managerで接続するにはVPCエンドポイントを設定すればいいんだろうなとは思っていたが実際にはやったことないので試してみた。


セットアップは公式に書いてある通り大体やればいいのだけど、それでできなくてちょっとハマった。 docs.aws.amazon.com

というのも、この通りやっても何故かSession Managerで接続できず探していたら下記のQ&Aを見つけた。

aws.amazon.com

手順5のVPCエンドポイントを作成する手順のこの一文。

[Enable Private DNS Name] で [Enable for this endpoint] を選択します。

これだ!!
これを設定するにはVPCの「DNS 解決」と「DNS ホスト名」の両方が有効になってないと、VPCエンドポイントの「プライベート DNS 名を有効にする」を有効にできないので、そのように設定したらSession Managerで接続することが出来るようになった。



一応、terraformでも書いてみた。
GitHub - masaru-tech/ssm-private-ec2-terraform: プライベートなVPCにあるEC2にSession Managerで接続出来るようにする構成

相変わらず、コンソールで操作→terraform import→terraform planで差分がなくなるまで修正が面倒。
この作業はしょうがないと自分では思っているが、世のterraformer達はもっと良いやり方とか知っているのだろうか?