###概要
CloudFormationでVPCを作成します。
###実装コード
vpc.yml
AWSTemplateFormatVersion: '2010-09-09'
Description: vpc create
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/24
VpcCidrBlock:
Type: AWS::EC2::VPCCidrBlock
Properties:
VpcId: !Ref VPC
CidrBlock: 192.0.0.0/24
VpcCidrBlockIpv6:
Type: AWS::EC2::VPCCidrBlock
Properties:
VpcId: !Ref VPC
AmazonProvidedIpv6CidrBlock: true
Outputs:
VpcId:
Value: !Ref VPC
PrimaryCidrBlock:
Value: !GetAtt VPC.CidrBlock
Ipv6CidrBlock:
Value: !Select [ 0, !GetAtt VPC.Ipv6CidrBlocks ]
CidrBlockAssociation:
Value: !Select [ 0, !GetAtt VPC.CidrBlockAssociations ]
###コード解説
コード説明
①AWSTemplateFormatVersion:テンプレートのver。2010-09-09がデフォルトと思っておけばOK!!
②Description:作成テンプレートの説明。
③Resources:テンプレートで作成するAWSのリソースの一覧を明記する。
④Outputs:CloudFormationで作成した際の値を表示する事ができる。なかなか便利なやつ。
①と③だけ必須。他は任意で良い。
Resourcesの中身
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/24
VpcCidrBlock:
Type: AWS::EC2::VPCCidrBlock
Properties:
VpcId: !Ref VPC
CidrBlock: 192.0.0.0/24
VpcCidrBlockIpv6:
Type: AWS::EC2::VPCCidrBlock
Properties:
VpcId: !Ref VPC
AmazonProvidedIpv6CidrBlock: true
作るリソースは下記3点
①VPC
②VpcCidrBlock
③VpcCidrBlockIpv6
##VPCの説明
Properties:
CidrBlock: 10.0.0.0/24
CIDRとは、インターネット上のIPアドレスの割り当てと経路選択(ルーティング)を柔軟に運用する仕組み。IPアドレスのクラス分けを廃止し、組織の規模に応じて割り当てるアドレスの数を柔軟に選択できるようにした上で、アドレスブロックをグループ化して経路情報を集約するようにしたもの。(引用元)
早い話が、IPアドレスはどこのネットワークのどの端末であるかを示すためのもの。で、どこまでがNWアドレスでどこまでがホストアドレスなのかを判断するために、CIDRがある。今回の例だと24なので、24ビットまでがネットワークアドレスになる。
今回の例は「10.0.0.0/24」、ネットワークIPは「10.0.0.0」。ネットワークの計算はリンク先からできるので、試して見ましょう。
よくよく考えてみると②と③はいらなかったなぁ。