📌
【初心者向け】VPCエンドポイントをCloudFormationで作成してみる
はじめに
こちらの記事で実装したVPCエンドポイントをCloudFormationで作成する方法をまとめてみます。
掲載しているCloudFormationテンプレートのファイルはこちらから確認できます。
赤枠の箇所の内容になります
対象読者
- VPCエンドポイントについて基礎的な知識がある方
- CloudFormationについて基礎的な知識がある方
手順
VPCエンドポイントの作成(ゲートウェイ型)
VPCS3Endpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
RouteTableIds:
- !Ref PrivateRouteTableA #ルートテーブルの指定
- !Ref PrivateRouteTableC
VpcId: !Ref RagVPC
ServiceName: !Sub com.amazonaws.${AWS::Region}.s3 # S3のVPCエンドポイントを指定
VpcEndpointType: Gateway # ゲートウェイ型の指定
VPCエンドポイントの作成(インタフェース型)
インタフェース型のVPCエンドポイントの場合、セキュリティグループをVPCエンドポイントにアタッチする必要があるため、セキュリティグループを作成する。
VPCEndpointSG:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: for VPC Endpoint
GroupName: ecs-test-vpc-endpoint-sg
# Outbound
SecurityGroupEgress:
- CidrIp: 0.0.0.0/0
FromPort: -1
IpProtocol: -1
ToPort: -1
# Inbound
SecurityGroupIngress:
- SourceSecurityGroupId: !Ref ECSSG
FromPort: 443
IpProtocol: tcp
ToPort: 443
Tags:
- Key: Name
Value: ecs-test-vpc-endpoint-sg
VpcId: !Ref RagVPC
上記で作成したセキュリティグループをVPCエンドポイントに紐づける。
VPCBedrockEndpoint:
Type: AWS::EC2::VPCEndpoint
Properties:
PrivateDnsEnabled: true
ServiceName: !Sub com.amazonaws.${AWS::Region}.bedrock-runtime # 紐づけるAWSリソース
SubnetIds:
- !Ref PrivateSubnetA # VPCエンドポイントに紐づけるサブネット
- !Ref PrivateSubnetC
VpcId: !Ref RagVPC
VpcEndpointType: Interface # インタフェース型の指定
SecurityGroupIds:
- !Ref VPCEndpointSG
まとめ
以上がVPCエンドポイントをCloudFormationで作成する方法になります。
VPC機能をCloudFormationで記述すると結構長くなるので、テンプレートファイルの管理が大変そうだな。。という印象です。
Terraformでも記述してみたいなと思います。
Discussion