CloudFormationを使用してネットワーク部分の構築[cloudpack大阪ブログ]

f:id:itanami5885:20160716213656j:plain

自動デプロイのサービスとして以前Elastic Beanstalkを使用しましたが
今回CloudFormationを使用してネットワーク部分の構築をしましたので備忘録。

CloudFormationテンプレートの構造

テンプレートはJSONで記述

ネットワーク部分の構築

JSON記述について下記フォーマットを参考

VPC

    "VPC": {
      "Type": "AWS::EC2::VPC",
      "Properties": {
        "CidrBlock": "<IPアドレス>/16",
        "InstanceTenancy": "default",
        "EnableDnsSupport": "true",
        "EnableDnsHostnames": "true",
        "Tags": [
          {
            "Key": "Name",
            "Value": "<VPC名>"
          }
        ]
      }
    },


<サブネット>

    "SubnetTrustAZa": {
      "Type": "AWS::EC2::Subnet",
      "Properties": {
        "CidrBlock": "<IPアドレス>/24",
        "AvailabilityZone": "ap-northeast-1a",
        "VpcId": {
          "Ref": "VPC"
        },
        "Tags": [
          {
            "Key": "Name",
            "Value": "<サブネット名>"
          }
        ]
      }
    },


<InternetGateway>

    "InternetGateway": {
      "Type": "AWS::EC2::InternetGateway",
      "Properties": {
        "Tags": [
          {
            "Key": "Name",
            "Value": "<InternetGateway名>"
          }
        ]
      }
    },


DHCPオプションセット>

    "DHCPOptions": {
      "Type": "AWS::EC2::DHCPOptions",
      "Properties": {
        "DomainName": "ap-northeast-1.compute.internal",
        "DomainNameServers": [
          "AmazonProvidedDNS"
        ]
      }
    },


<NetworkAcl>

    "NetworkAcl": {
      "Type": "AWS::EC2::NetworkAcl",
      "Properties": {
        "VpcId": {
          "Ref": "VPC"
        }
      }
    },


<RouteTable>

    "RouteTable": {
      "Type": "AWS::EC2::RouteTable",
      "Properties": {
        "VpcId": {
          "Ref": "VPC"
        }
      }
    },

構築手順

1.Create Stackを選択
f:id:itanami5885:20160716213840j:plain

2.Select Templateでtemplateを選択
 →JSONファイルで作成済みならUpload a template to Amazon S3より選択する
f:id:itanami5885:20160716214103j:plain

3.Stack nameを記載
f:id:itanami5885:20160716214230j:plain

後はプレビュー画面を確認の上、作成したら開始されます。
→完了したらステータスがCREATE_COMPLETEになります。