🏰

満を辞してCloudFormationにAWS::EC2::InstanceConnectEndpointリソースタイプが登場しました

2023/08/19に公開

CloudFormationにAWS::EC2::InstanceConnectEndpointが登場

前回以下のようなブログを書きました。
https://zenn.dev/devcamp/articles/34f5c1b3d597ca

この時点では残念ながらCloudFormationでのInstanceConnectEndpointの作成は出来なかったのですがUserGuideから「Release history」を眺め続ける事2ヶ月、

2023年8月17日付けで以下の通りAWS::EC2::InstanceConnectEndpointリソースタイプが「New Resouces」として登場してくれました。



早速試してみたいと思います

こちらがリソースタイプのドキュメント。

以下がお試し用テンプレートになります。

テンプレート

sample.yml
AWSTemplateFormatVersion: 2010-09-09
# ------------------------------------------------------------#
# Resources
# ------------------------------------------------------------#
Resources: 
  # ------------------------------------------------------------#
  # VPC
  # ------------------------------------------------------------#
  VPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.1.0.0/16
      InstanceTenancy: default
      EnableDnsSupport: true
      EnableDnsHostnames: true
      Tags:
        - Key: Name
          Value: !Sub sample-VPC
  # ------------------------------------------------------------#
  # Subnet
  # ------------------------------------------------------------#
  PrivateSubnet:
    Type: AWS::EC2::Subnet
    Properties:
      CidrBlock: 10.1.0.0/24
      VpcId: !Ref VPC
      AvailabilityZone: !Select [ 0, !GetAZs ]
      Tags:
        - Key: Name
          Value: !Sub sample-PrivateSubnet
  # ------------------------------------------------------------#
  # InstanceConnectEndpoint
  # ------------------------------------------------------------#
  InstanceConnectEndpoint:
    Type: AWS::EC2::InstanceConnectEndpoint
    Properties: 
      # ClientToken: String
      # PreserveClientIp: Boolean
      SecurityGroupIds: 
        - !Ref EICSecurityGroup
      SubnetId: !Ref PrivateSubnet
      Tags: 
        - Key: Name
          Value: !Sub sample-InstanceConnectEndpoint
  # ------------------------------------------------------------#
  # Instance
  # ------------------------------------------------------------#
  Instance: 
    Type: AWS::EC2::Instance
    Properties: 
      ImageId: ami-078296f82eb463377
      InstanceType: t2.micro
      NetworkInterfaces: 
        - AssociatePublicIpAddress: false
          DeviceIndex: 0
          SubnetId: !Ref PrivateSubnet
          GroupSet:
            - !Ref EC2SecurityGroup
      Tags:
          - Key: Name
            Value: !Sub sample-EC2Instance
  # ------------------------------------------------------------#
  # SecurityGroup
  # ------------------------------------------------------------#
  EC2SecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      VpcId: !Ref VPC
      GroupName: SecurityGroup for EC2
      GroupDescription: For EC2Instance
      Tags:
        - Key: Name
          Value: !Sub sample-EC2SecurityGroup

  EICSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      VpcId: !Ref VPC
      GroupName: SecurityGroup for EIC
      GroupDescription: For InstanceConnectEndpoint
      Tags:
        - Key: Name
          Value: !Sub sample-EICSecurityGroup
  # ------------------------------------------------------------#
  # SecurityGroupIngress
  # ------------------------------------------------------------#
  EC2SecurityGroupIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      Description: Allow SSH access from EIC
      FromPort: 22
      ToPort: 22
      IpProtocol: tcp
      SourceSecurityGroupId: !GetAtt EICSecurityGroup.GroupId
      GroupId: !GetAtt EC2SecurityGroup.GroupId

結果を確認

InstanceConnectEndpointが作成されている事を確認。





作成したEC2インスタンスから以下箇所を選択し、「接続」を押下。


【結果】
無事接続が確認出来ました。


以上でした

リリース当初からとても注目されたサービスだった為、対応を発見した瞬間はとても嬉しかったです。

どなたかのお役にたてていれば幸いです。お読みいただき有難うございました。

Discussion