狠狠撸

狠狠撸Share a Scribd company logo
ハンズオン:
     VPC設計およびVPCをCloudFormationテ
     ンプレートで記述する
        注意:CloudFormationとVPCの
           知識識を前提とします。

ARAKI Yasuhiro
このハンズオンのための準備

v??CloudFormationの知識識
v??インストール
  v??CloudFormationのコマンドラインツール
    (必須)
  v??テキストエディタ(必須)
  v??JSONエディタ(任意)

                        ARAKI Yasuhiro
CloudFormationのコマンドラインツール

v??https://s3.amazonaws.com/cloudformation-‐??cli/
   AWSCloudFormation-‐??cli.zip




                                  ARAKI Yasuhiro
前の時間でつくったテンプレート

v??https://s3-‐??ap-‐??northeast-‐??1.amazonaws.com/
   arakisa/CloudFormation/eccube-‐??araki-‐??
   classic09.json ?




                                     ARAKI Yasuhiro
進め?方

v??VPCをコンソールで作ります
v??同じことを実現するCFNTを作ります




              ARAKI Yasuhiro
本ハンズオン:2础窜,6サブネット
          v??複数のアベイラビリティ
             ゾーンにEC-‐??CUBEの動作
             するEC2インスタンスを
             配置
          v??ELBを使?用し、外部から
             のHTTPアクセスはELBを
             使?用してEC2インスタン
             スに分散する。
          v??DBはRDSをMulti-‐??AZ構
             成で配置

                ARAKI Yasuhiro
マネージメントコンソールで痴笔颁作成




   作成したいVPCと一致する構成は存在しない。
   そこで、構成はあとから調整することにして、
   一番単純な構成になっている「VPC	
 ?with	
 ?a	
 ?
   Single	
 ?Public	
 ?Sunet	
 ?Only」を選ぶ。 	

                                    ARAKI Yasuhiro
1つ?目のサブネット作成




               ARAKI Yasuhiro
追加サブネット作成




            ARAKI Yasuhiro
サブネット追加




          ARAKI Yasuhiro
サブネットの确认




           ARAKI Yasuhiro
RouteTableとPublicSubnetの紐紐付け
Public	
 ?Subnetに対してインターネットゲートウェイへの経路を持つRoute	
 ?Tableと関連付け
る。	




                                    ARAKI Yasuhiro
Private ?Subnet?用のRouteTable




        10.1.0.0/16のVPCと関連づけて、Route	
 ?Table
        を作成し、関係付ける	




                                 ARAKI Yasuhiro
Route ?Tableの確認




                  ARAKI Yasuhiro
Private ?Subnetに対するNACL
            Create	
 ?Network	
 ?ACL	
 ?をクリックし、作成をはじめる。	




                           ARAKI Yasuhiro
ARAKI Yasuhiro
狈础颁尝を适用する厂耻产苍别迟と関係づける 	




      ARAKI Yasuhiro
狈础颁尝ルール(滨苍产辞耻苍诲)の定义




              ARAKI Yasuhiro
狈础颁尝ルール(辞耻迟产辞耻苍诲)の定义




               ARAKI Yasuhiro
Public ?Subnetに対するNACL(inbound)
              22,80,DynamicPortを許可	




                            ARAKI Yasuhiro
Public ?Subnetに対するNACL(outbound)
              80,DynamicPortを許可	




                            ARAKI Yasuhiro
本ハンズオン:2础窜,6サブネット

          v??想定のCFNTを作成し
             てみる




              ARAKI Yasuhiro
VPCを定義するCFNTのステップ

v??ネットワークの構成を定義
 v??VPCそのものの作成、サブネット作成、IGW
   作成とアタッチ、ルーティング作成と設定と
   ヒモ付、NACLの作成と定義とヒモ付
v??定義値はOutputに記述して再利利?用


                 ARAKI Yasuhiro
CFNをつかったVPC作成
https://gist.github.com/armaniacs/4752951#file-vpc-subnets-json	

v??ここまでのGUI操作を
   CFNで




                                                   ARAKI Yasuhiro
VPCそのもの作成 ?AWS::EC2::VPC
"VPC" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::VPC",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"CidrBlock" ?: ?"10.1.0.0/16",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ?
"AWS::StackName”} ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?}
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}},



                                                                          ARAKI Yasuhiro
サブネットの作成 ?AWS::EC2::Subnet

 ?"ELBSubnetA" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::Subnet",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"VpcId" ?: ?{ ?"Ref" ?: ?"VPC" ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"CidrBlock" ?: ?"10.1.10.0/24",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"AvailabilityZone" ?: ?"ap-‐??northeast-‐??1a",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ?
"AWS::StackName”} ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?}
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}},

                                                                   ARAKI Yasuhiro
AWS::EC2::InternetGateway

 ?"InternetGateway" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::InternetGateway",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ?
"AWS::StackName"
} ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?}
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}},


                                                             ARAKI Yasuhiro
AWS::EC2::VPCGatewayAttachment


 ?"AttachGateway" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::VPCGatewayAttachment",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"VpcId" ?: ?{ ?"Ref" ?: ?"VPC" ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"InternetGatewayId" ?: ?{ ?"Ref" ?: ?"InternetGateway" ?}
 ? ? ? ? ? ? ? ? ? ? ? ?}},




                                                        ARAKI Yasuhiro
ルーティングテーブルの作成
AWS::EC2::RouteTable

 ?"PublicRouteTable" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::RouteTable",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"VpcId" ?: ?{"Ref" ?: ?"VPC"},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ?
"AWS::StackName”} ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?}
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}},



                                                                          ARAKI Yasuhiro
ルーティングテーブルの内容設定
AWS::EC2::Route

"PublicRoute" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::Route",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"RouteTableId" ?: ?{ ?"Ref" ?: ?"PublicRouteTable" ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"DestinationCidrBlock" ?: ?"0.0.0.0/0",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"GatewayId" ?: ?{ ?"Ref" ?: ?"InternetGateway" ?}
 ? ? ? ? ? ? ? ? ? ? ? ?}},




                                                           ARAKI Yasuhiro
サブネットとルーティングテーブルを紐紐付け
AWS::EC2::SubnetRouteTableAssociation

"PublicSubnetRouteTableAssociationElbA" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::SubnetRouteTableAssociation",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"SubnetId" ?: ?{ ?"Ref" ?: ?"ELBSubnetA" ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"RouteTableId" ?: ?{ ?"Ref" ?: ?"PublicRouteTable" ?}
 ? ? ? ? ? ? ? ? ? ? ? ?}},




                                                         ARAKI Yasuhiro
NACLの作成 ?AWS::EC2::NetworkAcl

"PublicNetworkAcl" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::NetworkAcl",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"VpcId" ?: ?{"Ref" ?: ?"VPC"},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Tags" ?: ?[
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Application", ?"Value" ?: ?{ ?"Ref" ?: ?
"AWS::StackName”} ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?{"Key" ?: ?"Network", ?"Value" ?: ?"Public" ?}
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?]}},



                                                                          ARAKI Yasuhiro
NACLの中?身を定義 ?AWS::EC2::NetworkAclEntry"

"InboundSSHPublicNetworkAclEntry" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::NetworkAclEntry",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"NetworkAclId" ?: ?{"Ref" ?: ?"PublicNetworkAcl"},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"RuleNumber" ?: ?"10",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Protocol" ?: ?"6",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"RuleAction" ?: ?"allow",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"Egress" ?: ?"false",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"CidrBlock" ?: ?"0.0.0.0/0",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"PortRange" ?: ?{"From" ?: ?"22", ?"To" ?: ?"22"}
 ? ? ? ? ? ? ? ? ? ? ? ?}
 ? ? ? ? ? ? ? ?},

                                                               ARAKI Yasuhiro
NACLとサブネットの紐紐付け
AWS::EC2::SubnetNetworkAclAssociation

"PublicSubnetNetworkAclAssociationElbA" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::EC2::SubnetNetworkAclAssociation",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"SubnetId" ?: ?{ ?"Ref" ?: ?"ELBSubnetA" ?},
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"NetworkAclId" ?: ?{ ?"Ref" ?: ?"PublicNetworkAcl" ?}
 ? ? ? ? ? ? ? ? ? ? ? ?}},




                                                        ARAKI Yasuhiro
定義値を出?力力 ?Outputs

 ?"Outputs":{
 ? ? ? ? ? ? ? ?"ELBSubnetAId":{
 ? ? ? ? ? ? ? ? ? ? ? ?"Value":{"Ref": ?"ELBSubnetA"},
 ? ? ? ? ? ? ? ? ? ? ? ?"Description":"Id ?of ?ELBSubnetA"
 ? ? ? ? ? ? ? ?},


                                        ARAKI Yasuhiro

More Related Content

Jaws?横浜ハンズオンーCloudFormation w/ vpc 2/3