SessionManagerで利用するエンドポイントのCFn構築


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

はじめに

最近リソースの消し忘れが多い稲村です。
消すのは一瞬ですが、再度スクラッチで作ることを考えると手が止まってしまうんですよね。
そんな月曜日の自分に向けてCFnの構築メモを作成していきます。

サービス概要図(一部抜粋)

今回自分のケースでは、Session Manager のセットアップを利用して、EC2へアクセスを行なっています。
その際にエンドポイントを3つ構築する必要があり、今回はこの3つのエンドポイントをCFnで構築するものです。

AWS CloudFormationテンプレート

AWSTemplateFormatVersion: '2010-09-09'
# ------------------------------------------------------------#
# Input Parameters
# ------------------------------------------------------------#
Parameters:
#VPCID
  VpcId:
    Description : "VPC ID"
    Type: AWS::EC2::VPC::Id

#InterfaceSubnet
  InterfaceSubnetId:
    Description : "Interface Subnet"
    Type : AWS::EC2::Subnet::Id

#Interface Security Group
  InterfaceSecurityGroupId:
    Description : "SecurityGroup"
    Type: AWS::EC2::SecurityGroup::Id

Resources:
# ------------------------------------------------------------#
# Create ssm End Point
# ------------------------------------------------------------#
  ssmEndpoint:
    Type: AWS::EC2::VPCEndpoint
    Properties:
      ServiceName: !Sub "com.amazonaws.${AWS::Region}.ssm"
      SubnetIds:
        - !Ref InterfaceSubnetId
      VpcId: !Ref 'VpcId'
      VpcEndpointType: Interface
      SecurityGroupIds:
        - !Ref InterfaceSecurityGroupId
      PrivateDnsEnabled: true

  # ------------------------------------------------------------#
  # Create EC2Message End Point
  # ------------------------------------------------------------#
  EC2MessageEndpoint:
    Type: AWS::EC2::VPCEndpoint
    Properties:
      ServiceName: !Sub "com.amazonaws.${AWS::Region}.ec2messages"
      SubnetIds:
        - !Ref InterfaceSubnetId
      VpcId: !Ref 'VpcId'
      VpcEndpointType: Interface
      SecurityGroupIds:
        - !Ref InterfaceSecurityGroupId
      PrivateDnsEnabled: true

  # ------------------------------------------------------------#
  # Create ssmmessages End Point
  # ------------------------------------------------------------#
  ssmmessagesEndpoint:
    Type: AWS::EC2::VPCEndpoint
    Properties:
      ServiceName: !Sub "com.amazonaws.${AWS::Region}.ssmmessages"
      SubnetIds:
        - !Ref InterfaceSubnetId
      VpcId: !Ref 'VpcId'
      VpcEndpointType: Interface
      SecurityGroupIds:
        - !Ref InterfaceSecurityGroupId
      PrivateDnsEnabled: true

さいごに

これで少しはスクラッチの憂鬱から逃れられそうです。
サブネットを選択ミスして待てど暮らせどEC2へ繋がらないなど、今週は合計して1時間くらいかかっているかと思ったので、塵つものようなことでも自動化していくことが必要かなと。
もっと身の回りのことを自動化していこうと思います。

Last modified: 2022-08-20

Author