2012年8月26日日曜日

"CloudFormation"で"VPC"から"VPN Connection"まで作成

スズキです。

CDPネタです。今回の対象は「Stack Deployment パターン」です。


このパターンの「その他」に
またこのパターンは、単にシステムをコピーするだけでなく、
クラシックなEC2環境からユーザー企業と専用ネットワークでつながる
仮想プライベートクラウド「VPC(Virtual Private Cloud)」環境への 移行時にも適用できる。
と、VPCのCloudFormationでVPCも構築ができることが記載されています。

実際に"VPC"の構築から"VPN Connection"の作成までためしてみました。
といっても下記のテンプレートでスタックを作成するだけです。
{
  "AWSTemplateFormatVersion" : "2010-09-09",

  "Description" : "VPNConnection",

  "Mappings" : {

    "RegionMap" : {
      "ap-southeast-1" : {
        "AMI" : "ami-72621c20"
      }
    }

  },

  "Resources" : {

    "EC2VPC" : {
      "Type"       : "AWS::EC2::VPC",
      "Properties" : {
        "CidrBlock" : "10.0.0.0/16"
      }
    },

    "EC2VPNGateway" : {
      "Type" : "AWS::EC2::VPNGateway",
      "Properties" : {
        "Type" : "ipsec.1"
      }
    },

    "EC2VPCGatewayAttachment" : {
      "Type" : "AWS::EC2::VPCGatewayAttachment",
      "Properties" : {
        "VpcId"        : {"Ref" : "EC2VPC"},
        "VpnGatewayId" : {"Ref" : "EC2VPNGateway"}
      }
    },

    "EC2CustomerGateway" : {
      "Type" : "AWS::EC2::CustomerGateway",
      "Properties" : {
        "Type"      : "ipsec.1",
        "BgpAsn"    : "65000",  
        "IpAddress" : "xxx.xxx.xxx.xxx"
      }
    },

    "EC2VPNConnection" : {
      "Type" : "AWS::EC2::VPNConnection",
      "Properties" : {
        "Type"              : "ipsec.1",
        "CustomerGatewayId" : {"Ref" : "EC2CustomerGateway"},
        "VpnGatewayId"      : {"Ref" : "EC2VPNGateway"}
      }
    }

  },

  "Outputs" : {
  }

}

注意点は下記となります。
  • Mappingsには一つ以上のマッピングテーブルが必要
    (関係ないAMIのマッピングテーブルを定義)

  • VPCGatewayAttachmentのプロパティであるIpAddressが
    ドキュメントにはIPAddressと記載されている

  • CustomerGatewayのプロパティであるVpnGatewayIdが
    ドキュメントにはVPNGatewayIDと記載されている

  • VPNConnectionのプロパティであるCustomerGatewayIdと
    VpnGatewayIdがドキュメントにはCustomerGatewayIDと
    VPNGatewayIdと記載されている
(ドキュメントはそのうち訂正されると思います)

そして、AWSマネジメントコンソールにて上記のテンプレートでスタックを作成します。





すると下記のように、AWSリソースの作成が開始されます。


下記のようになったら、作成完了です。


作成ログはEventタブから確認できます。


今回は"VPN Connenction"作成までの最低限のリソースで試しましたが、
当然、サブネットやルーティングテーブルの設定も可能です。

テンプレート作るの、少し大変...
--------
http://www.suz-lab.com/

0 コメント: