#AWSのリファレンスを見ながらやったらできた
webコンソールで一度ネットワークを構築した人向けです。
##参考にしたリファレンス一覧
###VPC作成リファレンス
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc.html
###サブネットの作成
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html
###インターネットゲートウェイ作成
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-internetgateway.html
###インターネットゲートウェイのアタッチ
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html
###ルートテーブルの作成
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-route-table.html
#####DependsOn 属性(ルートテーブルの作成で利用)
DependsOn 属性を使用すると、特定のリソースが他のリソースに続けて作成されるように指定できます。DependsOn 属性をリソースに追加した場合、そのリソースの作成は必ず、DependsOn 属性で指定したリソースの作成後に行われます。
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html
###サブネットとルートテーブルの関連付け
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet-route-table-assoc.html
###セキュリティグループの作成
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html
##結果
AWSTemplateFormatVersion: "2010-09-09"
Resources:
MemosVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
Tags:
- Key: "Name"
Value: "MemosVpc"
MemosPubSubnet1a:
Type: AWS::EC2::Subnet
Properties:
VpcId:
Ref: MemosVPC
CidrBlock: 10.0.10.0/24
AvailabilityZone: "ap-northeast-1a"
Tags:
- Key: "Name"
Value: "MemosPubSubnet1a"
MemosPriSubnet1a:
Type: AWS::EC2::Subnet
Properties:
VpcId:
Ref: MemosVPC
CidrBlock: 10.0.20.0/24
AvailabilityZone: "ap-northeast-1a"
Tags:
- Key: "Name"
Value: "MemosPriSubnet1a"
MemosIgw:
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: "Name"
Value: "MwmosIgw"
MemosIgwAttach:
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId:
Ref: MemosVPC
InternetGatewayId:
Ref: MemosIgw
MemosRouteTable:
Type: AWS::EC2::RouteTable
Properties:
VpcId:
Ref: MemosVPC
Tags:
- Key: "Name"
Value: "MemosRouteTable"
MemosRouteInterNet:
Type: AWS::EC2::Route
DependsOn: MemosIgwAttach
Properties:
RouteTableId:
Ref: MemosRouteTable
DestinationCidrBlock: 0.0.0.0/0
GatewayId:
Ref: MemosIgw
MemosSubnetRouteTableAssociation:
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId:
Ref: MemosPubSubnet1a
RouteTableId:
Ref: MemosRouteTable
MemosInstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Allow http to client host
VpcId:
Ref: MemosVPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: 0.0.0.0/0
Tags:
- Key: "Name"
Value: "MemosInstanceSecurityGrou"