狠狠撸

狠狠撸Share a Scribd company logo
ハンズオン:

     CloudFormationをつかったVPCへのシス
     テム移?行行



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

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

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

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




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

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




                                                   ARAKI Yasuhiro
最終的なCFNT
http://arakisa.s3.amazonaws.com/CloudFormation/eccube-vpc-09instance.json	




                                              ARAKI Yasuhiro
本ハンズオンの進め?方

v??時間がないので以下CFNTを実?行行
 v??http://arakisa.s3.amazonaws.com/
   CloudFormation/eccube-‐??
   vpc-‐??09instance.json
v??その中?身を解説していきます。


                         ARAKI Yasuhiro
VPC内にサービスを配置する

v??VPC内部のサブネット作成が完了了したら、
  実際のサービス配置をはじめる
v??前章で作成したCFNTをVPCに対応させる




               ARAKI Yasuhiro
CFNTからCFNTを呼び出す
AWS::CloudFormation::Stack ?

 ?"Resources" ?: ?{
 ? ? ? ? ? ? ? ?"vpcMake" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ?"Type" ?: ?"AWS::CloudFormation::Stack",
 ? ? ? ? ? ? ? ? ? ? ? ?"Properties" ?: ?{
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"TemplateURL" ?: ?"https://s3-‐??ap-‐??northeast-‐??1.amazonaws.com/
arakisa
/CloudFormation/eccube-‐??vpc-‐??09vpc.json",
 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"TimeoutInMinutes" ?: ?"60"
 ? ? ? ? ? ? ? ? ? ? ? ?}
 ? ? ? ? ? ? ? ?},

                                                             ARAKI Yasuhiro
呼び出し側のOutputsの利利?用

v??eccube-‐??vpc-‐??09vpc.jsonはOutputsを定義
    v??VPCID, ?ELBSubnetAId, ?ELBSubnetBId, ?
      ECSubnetAId, ?ECSubnetBId, ?
      RDSSubnetAId, ?RDSSubentBId
v??呼び出し元での使い?方
  { ?“Fn::GetAtt” ?:[“vpcMake”, ?“Outputs.VPCID”] ?}? 


                                  ARAKI Yasuhiro
VPC環境に対応した修正 ?

v??VPC内で使?用を定義するために特別なパラ
   メータをあたえなければならないリソースタ
   イプ
 v??AWS::ElasticLoadBalancing::LoadBalancer
 v??AWS::EC2::SecurityGroup
 v??AWS::EC2::Instance
 v??AWS::RDS::DBSubnetGroup
                            ARAKI Yasuhiro
AWS::ElasticLoadBalancing::LoadBalancer ?

v??ELBはVPCにおいては、配置するサブネッ
  トと、セキュリティグループを指定
   "elbeccube": {	
          "Type": "AWS::ElasticLoadBalancing::LoadBalancer",	
          "Properties": {	
            "Subnets": [	
                 { "Fn::GetAtt" :["vpcMake", "Outputs.ELBSubnetAId"] },	
                 { "Fn::GetAtt" :["vpcMake", "Outputs.ELBSubnetBId"] }	
            ],	
       "SecurityGroups" : [{"Ref" : "LoadBalancerSecurityGroup"}],	
           ……(略)
                                                ARAKI Yasuhiro
AWS::EC2::SecurityGroup ?
v??VPCに所属しているかをProperties中に
  VpcIdとして宣?言 ?
  "LoadBalancerSecurityGroup" : {	
       "Type" : "AWS::EC2::SecurityGroup",	
       "Properties" : {	
           "GroupDescription" : "Enable HTTP access on port 80",	
            "VpcId" : { "Fn::GetAtt" :["vpcMake", "Outputs.VPCID"] }, 	
           "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "80",
 "ToPort" : "80", "CidrIp" : "0.0.0.0/0" } ],	
           "SecurityGroupEgress" : [ { "IpProtocol" : "tcp", "FromPort" : "80",
 "ToPort" : "80", "CidrIp" : "0.0.0.0/0" } ]}},
                                                 ARAKI Yasuhiro
AWS::EC2::Instance

v??SubnetIdを指定 ?
"instanceib3ba90b3": {	
       "Type": "AWS::EC2::Instance",	
       "Properties": {	
        "SubnetId": {"Fn::GetAtt":["vpcMake", "Outputs.ECSubnetAId"]},	
         …… (略)




                                            ARAKI Yasuhiro
AWS::RDS::DBSubnetGroup
  v??SubnetIdを指定 ?
"MyDBSubnetGroup" : {	
     "Type" : "AWS::RDS::DBSubnetGroup",	
     "Properties" : {	
       "DBSubnetGroupDescription" : "Subnets available for the RDS DB Instance",	
       "SubnetIds" : [	
             { "Fn::GetAtt" :["vpcMake", "Outputs.RDSSubnetAId"] },	
           { "Fn::GetAtt" :["vpcMake", "Outputs.RDSSubnetBId"] }	
        ]}},




                                                 ARAKI Yasuhiro
AWS::RDS::DBSecurityGroup
v??RDSにはDBSecurityGroupを指定
"dbsgdefault": {	
      "Type": "AWS::RDS::DBSecurityGroup",	
     "Properties":{	
        "GroupDescription": "RDS security group in private",	
         "EC2VpcId" : { "Fn::GetAtt" :["vpcMake", "Outputs.VPCID"] }, 	
        "DBSecurityGroupIngress": [{	
           "CIDRIP": "10.1.20.0/23"	
        } ]}}




                                             ARAKI Yasuhiro
最終的なCFNT
http://arakisa.s3.amazonaws.com/CloudFormation/eccube-vpc-09instance.json	




                                              ARAKI Yasuhiro

More Related Content

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