🕌

GA翌日にEC2InstanceConnectEndPointのCFn作成を試みましたがドキュメント通り未対応でした(6月14日時点)

2023/06/14に公開

https://zenn.dev/mjxo/articles/bb641d8ed308dd

※以降は未対応時点の記事内容となりますのでご注意ください。

EC2InstanceConnectEndPointが登場

DevelopersIO BASECAMP一期参加者の加藤です。

2023年6月13日にEC2InstanceConnectEndPointの利用が可能になりました。

以下のように既にいくつか記事が上がっていた為、
https://dev.classmethod.jp/articles/ec2-instance-connect-endpoint-private-access/
https://qiita.com/minorun365/items/696ba8bf683a403550d0

ひっそりCFnのテンプレ例をあげるという事だけするつもりでしたが、それもタイトルの通り2023年6月14日時点では現状未対応である事を確認をしました。
(対応が確認出来次第方法と一緒に更新します。)


一応確認した事

マネジメントコンソールで作成した結果の表示を確認

マネジメントコンソールで作成した結果、以下のように表示されていました。

これを鑑みて、以下2項目を試した結果です。


VpcEndpointType

AWS::EC2::VPCEndpointのユーザーガイドのVpcEndpointTypeプロパティの許容値に"EC2InstanceConnect"や"InstanceConnect"など追加されていない。

実際にドキュメントが遅れているだけで通ってくれたりしないかなと、諦め悪く思いつく限り試してみましたが、どのパターンも以下のエラーで弾かれました。

「VpcEndpointType #VpcEndpointType 2つのサブスキーマのうち、1つだけがマッチします #/VpcEndpointType キーワード [enum] の検証制約に失敗しました。」
 #/VpcEndpointType: #: only 1 subschema matches out of 2 #/VpcEndpointType: failed validation constraint for keyword [enum]

ServiceName

加えて、ServiceNameに入力する値については、

!Sub eice-xxxxxxxxxxxx.xxxxxxxx.ec2-instance-connect-endpoint.${AWS::Region}.amazonaws.com

である事が窺えましたが、xxxxxxxxxxxx.xxxxxxxxは関連付けたVPCやサブネットから取得出来そう値ではなく、当たり前ですが字数を守って文字列を入力すれば通るものでない事も確認出来ました。

実際に作成されたエンドポイントのサービス名を1文字だけ変えて設定して見た結果。(※VpcEndpointTypeやSecurityGroupIds、SubnetIdsはコメントアウト。)
"The Vpc Endpoint Service 'eice-xxxxxxxxxxx1.xxxxxxxx.ec2-instance-connect-endpoint.ap-northeast-1.amazonaws.com' does not exist 

以下も同様に「does not exist」でした。

!Sub com.amazonaws.${AWS::Region}.eice 
!Sub com.amazonaws.${AWS::Region}.ec2-instance-connect-endpoint
!Sub ec2-instance-connect.${AWS::Region}.amazonaws.com

終わりに

ユーザーガイドの変更を気にかけて、また更新があり次第、書かせていただきます。
有難うございました。


参考

https://github.com/aws-cloudformation/cloudformation-coverage-roadmap

デベキャン

Discussion