CloudFormation의 스택에 전부 척 흔들어 보았다

12900 단어 CloudFormationAWS
CloudFormation의 스택을 쓰고 있고, 내가 무엇을 쓰고 있는지 몰랐던 적이 있었기 때문에,
「후리가나 흔들어 보면 알기 쉬워지잖아?」
라고 생각해 조속히, 기입해 보았습니다.
스스로 보면 알기 쉬워졌으므로 이것으로 좋다고 합니다(;´∀`)

콘솔 매개변수



作法 考えるな 感じろ
AWSTemplateFormatVersion: "2010-09-09"
何作るか紹介するね
Description:
  VPCとサブネット作るよ
  VPC and Subnet Create



コンソール上で決める詳細情報だよ
Metadata: 
 コンソールで表示させる入力パラメーターの表示順序決めるよ
  "AWS::CloudFormation::Interface": 
  パラメーターの一覧だよ
    ParameterGroups: 
     項目欄(ラベル)
      - Label: 
        項目で実際に表示される文字 この場合Project Name Prefixと表示されるよ
        default: "Project Name Prefix
        パラメーター
        Parameters: 
       PJPrefixが書かれたスタックはみんな仲間 クロススタックするとき便利だよ!
          - PJPrefix



コンソールで入力するパラメーターだよ
Parameters:
 さっきの呪文はここで入力できるよ
  PJPrefix:
  指定 文字で入力してね(ここではhogeとします)
    Type: String

↑ 어떤 것? ↑




스택 만들 때 파라미터라든지 결정되지만, 거기의 설정을 결정하고 있습니다.
이미지와 비추어 보면 이미지하기 쉬울지도!

VPC 및 인터넷 게이트웨이 설정


スタックの設定だよ
Resources: 
 VPCの設定決めるよ!
  VPC: 
  タイプ 指定したCIDRブロックでVPCを設定するよ
    Type: "AWS::EC2::VPC"
   情報
    Properties:
      CIDRブロック
      CidrBlock: 10.0.0.0/16
     VPCへのDNS解決   有効
      EnableDnsSupport: "true"
      VPCへのDNS名前解決  有効 ※DNS解決が有効になっていないと名前解決を有効にできないよ!
      EnableDnsHostnames: "true"
     テナント属性決めるよ デフォルトだと共有ハードウェアになるよ。
      InstanceTenancy: default
      タグ
      Tags: 
      キー Name
        - Key: Name
       値   事前に定義した変数(序盤のhoge)を!Subで呼べるよ。つまり"hoge-vpc"ってなるよ!
          Value: !Sub "${PJPrefix}-vpc"



  インターネットゲートウェイの設定だよ
  InternetGateway: 
    タイプ インターネットゲートウェイ
    Type: "AWS::EC2::InternetGateway"
    情報
    Properties: 
      タグ
      Tags: 
          キー Name
        - Key: Name
          値   事前に定義した変数(序盤のhoge)を!Subで呼べるよ。つまり"hoge-igw"ってなるよ!
          Value: !Sub "${PJPrefix}-igw"


  VPCにインターネットゲートウェイをアタッチするよ!
  InternetGatewayAttachment: 
    タイプ VPCにゲートウェイをアタッチするよ
    Type: "AWS::EC2::VPCGatewayAttachment"
    情報
    Properties: 
      インターネットゲートウェイのID このRef関数はInternetGatewayの設定を持ってきてくれるよ!
      InternetGatewayId: !Ref InternetGateway
      VPCのID このRef関数はVPCの設定を持ってきてくれるよ!
      VpcId: !Ref VPC 

퍼블릭 및 프라이빗 서브넷 구성


 パブリックサブネットAの設定だよ
  PublicSubnetA: 
    タイプ サブネット
    Type: "AWS::EC2::Subnet"
    詳細
    Properties: 
      アベイラビリティゾーン 
      AvailabilityZone: "ap-northeast-1a"
      CIDRブロック
      CidrBlock: 10.0.0.0/24
      VPCのID Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
      VpcId: !Ref VPC 
      タグ
      Tags: 
          キー Name
        - Key: Name
          値   事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-subnet-a"ってなるよ!
          Value: !Sub "${PJPrefix}-public-subnet-a"



  パブリックサブネットCの設定だよ
  PublicSubnetC: 
    タイプ サブネット
    Type: "AWS::EC2::Subnet"
    詳細
    Properties: 
      アベイラビリティゾーン 
      AvailabilityZone: "ap-northeast-1c"
      CIDRブロック
      CidrBlock: 10.0.2.0/24
      VPCのID Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
      VpcId: !Ref VPC 
      タグ
      Tags: 
          キー Name
        - Key: Name
          値 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-subnet-c"ってなるよ!
          Value: !Sub "${PJPrefix}-public-subnet-c"



  プライベートサブネットAの設定だよ
  PrivateSubnetA: 
    タイプ サブネット
    Type: "AWS::EC2::Subnet"
    詳細
    Properties: 
     アベイラビリティゾーン
      AvailabilityZone: "ap-northeast-1a"
      CIDRブロック
      CidrBlock: 10.0.1.0/24
      VPCのID Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
      VpcId: !Ref VPC 
      タグ
      Tags:
          キー Name 
        - Key: Name
          値 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-subnet-a"ってなるよ!
          Value: !Sub "${PJPrefix}-private-subnet-a"



  プライベートサブネットCの設定だよ
  PrivateSubnetC: 
    タイプ サブネット
    Type: "AWS::EC2::Subnet"
    詳細
    Properties:
      アベイラビリティゾーン 
      AvailabilityZone: "ap-northeast-1c"
      CIDRブロック
      CidrBlock: 10.0.3.0/24
      VPCのID Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
      VpcId: !Ref VPC 
      タグ
      Tags:
          キー Name 
        - Key: Name
          値 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-subnet-c"ってなるよ!
          Value: !Sub "${PJPrefix}-private-subnet-c"

라우팅 테이블 설정


  パブリックルートテーブルAの設定だよ
  PublicRouteTableA: 
    タイプ ルートテーブル
    Type: "AWS::EC2::RouteTable"
    詳細
    Properties:
      VPCのID  Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
      VpcId: !Ref VPC 
      タグ
      Tags:
          キー Name 
        - Key: Name
          値 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-route-a"ってなるよ!
          Value: !Sub "${PJPrefix}-public-route-a"



  パブリックルートテーブルCの設定だよ
  PublicRouteTableC: 
    タイプ ルートテーブル
    Type: "AWS::EC2::RouteTable"
    詳細
    Properties:
      VPCのID  Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
      VpcId: !Ref VPC 
      タグ
      Tags:
          キー Name 
        - Key: Name
          値 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-route-c"ってなるよ!
          Value: !Sub "${PJPrefix}-public-route-c"



  プライベートルートテーブルAの設定だよ
  PrivateRouteTableA: 
    タイプ ルートテーブル
    Type: "AWS::EC2::RouteTable"
    詳細
    Properties:
      VPCのID Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
      VpcId: !Ref VPC 
      タグ
      Tags:
          キー Name 
        - Key: Name
          値 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-route-a"ってなるよ!
          Value: !Sub "${PJPrefix}-private-route-a"



  プライベートルートテーブルCの設定だよ
  PrivateRouteTableC: 
    タイプ ルートテーブル
    Type: "AWS::EC2::RouteTable"
    詳細
    Properties:
      VPCのID Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
      VpcId: !Ref VPC 
      タグ
      Tags:
          キー Name 
        - Key: Name
          値 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-route-c"ってなるよ!
          Value: !Sub "${PJPrefix}-private-route-c"

인터넷 게이트웨이 라우팅 설정


  パブリックルートA
  PublicRouteA: 
    タイプ ルート
    Type: "AWS::EC2::Route"
    詳細
    Properties:
      ルートテーブルのID  Ref関数は指定した値を返してくれるよ(この場合はPublicRouteTableAの設定を持ってきてくれるよ)
      RouteTableId: !Ref PublicRouteTableA 
      送信先のCIDRブロック
      DestinationCidrBlock: "0.0.0.0/0"
      ゲートウェイID Ref関数は指定した値を返してくれるよ(この場合はInternetGatewayの設定を持ってきてくれるよ)
      GatewayId: !Ref InternetGateway 



 パブリックルートC
  PublicRouteC: 
    タイプ ルート
    Type: "AWS::EC2::Route"
    詳細
    Properties:
      ルートテーブルのID  Ref関数は指定した値を返してくれるよ(この場合はPublicRouteTableCの設定を持ってきてくれるよ)
      RouteTableId: !Ref PublicRouteTableC 
      送信先のCIDRブロック
      DestinationCidrBlock: "0.0.0.0/0"
      ゲートウェイID Ref関数は指定した値を返してくれるよ(この場合はInternetGatewayの設定を持ってきてくれるよ)
      GatewayId: !Ref InternetGateway 


라우팅 테이블 연결


  パブリックサブネットAのルートテーブル関連付け
  PublicSubnetARouteTableAssociation: 
    タイプ サブネットをルートテーブルに関連付ける
    Type: "AWS::EC2::SubnetRouteTableAssociation"
    詳細
    Properties: 
      サブネットのID Ref関数は指定した値を返してくれるよ(この場合はPublicSubnetAの設定を持ってきてくれるよ)
      SubnetId: !Ref PublicSubnetA 
      ルートテーブルのID Ref関数は指定した値を返してくれるよ(この場合はPublicRouteTableAの設定を持ってきてくれるよ)
      RouteTableId: !Ref PublicRouteTableA



  パブリックサブネットCのルートテーブル関連付け
  PublicSubnetCRouteTableAssociation: 
    タイプ サブネットをルートテーブルに関連付ける
    Type: "AWS::EC2::SubnetRouteTableAssociation"
    詳細
    Properties:
      サブネットのID  Ref関数は指定した値を返してくれるよ(この場合はPublicSubnetCの設定を持ってきてくれるよ)
      SubnetId: !Ref PublicSubnetC 
      ルートテーブルのID Ref関数は指定した値を返してくれるよ(この場合はPublicRouteTableCの設定を持ってきてくれるよ)
      RouteTableId: !Ref PublicRouteTableC



  プライベートサブネットAのルートテーブル関連付け
  PrivateSubnetARouteTableAssociation: 
    タイプ サブネットをルートテーブルに関連付ける
    Type: "AWS::EC2::SubnetRouteTableAssociation"
    詳細
    Properties:
      サブネットのID Ref関数は指定した値を返してくれるよ(この場合はPrivateSubnetAの設定を持ってきてくれるよ)
      SubnetId: !Ref PrivateSubnetA
      ルートテーブルのID Ref関数は指定した値を返してくれるよ(この場合はPrivateRouteTableAの設定を持ってきてくれるよ)
      RouteTableId: !Ref PrivateRouteTableA 



  プライベートサブネットCのルートテーブル関連付け
  PrivateSubnetCRouteTableAssociation: 
    タイプ サブネットをルートテーブルに関連付ける
    Type: "AWS::EC2::SubnetRouteTableAssociation"
    詳細
    Properties:
      サブネットのID  Ref関数は指定した値を返してくれるよ(この場合はPrivateSubnetCの設定を持ってきてくれるよ)
      SubnetId: !Ref PrivateSubnetC
      ルートテーブルのID Ref関数は指定した値を返してくれるよ(この場合はPrivateRouteTableCの設定を持ってきてくれるよ)
      RouteTableId: !Ref PrivateRouteTableC

출력①: VPC와 VPC의 CIDR


アウトプット これはスタック同士で参照や応答できるクロススタックの目印だよ       
Outputs:


  VPC:
    値 Ref関数は指定した値を返してくれるよ(この場合はVPCの設定を持ってきてくれるよ)
    Value: !Ref VPC
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-vpc"ってなるよ!
      Name: !Sub "${PJPrefix}-vpc"



  VPCのCIDR
  VPCCIDR:
    値
    Value: 10.0.0.0/16
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-vpc-cidr"ってなるよ!
      Name: !Sub "${PJPrefix}-vpc-cidr"

출력 ② : 퍼블릭 서브넷 및 프라이빗 서브넷


  パブリックサブネットA
  PublicSubnetA:
    値 Ref関数は指定した値を返してくれるよ(この場合はPublicSubnetAの設定を持ってきてくれるよ)
    Value: !Ref PublicSubnetA
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-subnet-a"ってなるよ!
      Name: !Sub "${PJPrefix}-public-subnet-a"



 パブリックサブネットACIDR
  PublicSubnetACIDR:
    値
    Value: 10.0.0.0/24
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-subnet-a-cidr"ってなるよ!
      Name: !Sub "${PJPrefix}-public-subnet-a-cidr"



  パブリックサブネットC
  PublicSubnetC:
    値 Ref関数は指定した値を返してくれるよ(この場合はPublicSubnetCの設定を持ってきてくれるよ)
    Value: !Ref PublicSubnetC
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-subnet-c"ってなるよ!
      Name: !Sub "${PJPrefix}-public-subnet-c"



 パブリックサブネットCCIDR
  PublicSubnetCCIDR:
    値
    Value: 10.0.2.0/24
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-subnet-c-cidr"ってなるよ!
      Name: !Sub "${PJPrefix}-public-subnet-c-cidr"



  プライベートサブネットA
  PrivateSubnetA:
    値 Ref関数は指定した値を返してくれるよ(この場合はPrivateSubnetAの設定を持ってきてくれるよ)
    Value: !Ref PrivateSubnetA
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-subnet-a"ってなるよ!
      Name: !Sub "${PJPrefix}-private-subnet-a"



  プライベートサブネットACIDR
  PrivateSubnetACIDR:
    値
    Value: 10.0.1.0/24
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-subnet-a-cidr"ってなるよ!
      Name: !Sub "${PJPrefix}-private-subnet-a-cidr"



  プライベートサブネットC
  PrivateSubnetC:
    値 Ref関数は指定した値を返してくれるよ(この場合はPrivateSubnetCの設定を持ってきてくれるよ)
    Value: !Ref PrivateSubnetC
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-subnet-c"ってなるよ!
      Name: !Sub "${PJPrefix}-private-subnet-c"



  プライベートサブネットCCIDR
  PrivateSubnetCCIDR:
    値
    Value: 10.0.3.0/24
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-subnet-c-cidr"ってなるよ!
      Name: !Sub "${PJPrefix}-private-subnet-c-cidr"

출력③ : 루트 테이블


  パブリックルートテーブルA
  PublicRouteTableA:
    値 Ref関数は指定した値を返してくれるよ(この場合はPublicRouteTableAの設定を持ってきてくれるよ)
    Value: !Ref PublicRouteTableA
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-route-a"ってなるよ!
      Name: !Sub "${PJPrefix}-public-route-a"



  パブリックルートテーブルC
  PublicRouteTableC:
    値 Ref関数は指定した値を返してくれるよ(この場合はPublicRouteTableCの設定を持ってきてくれるよ)
    Value: !Ref PublicRouteTableC
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-public-route-c"ってなるよ!
      Name: !Sub "${PJPrefix}-public-route-c"



  プライベートルートテーブルA
  PrivateRouteTableA:
    値 Ref関数は指定した値を返してくれるよ(この場合はPrivateRouteTableAの設定を持ってきてくれるよ)
    Value: !Ref PrivateRouteTableA
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-route-a"ってなるよ!
      Name: !Sub "${PJPrefix}-private-route-a"



  プライベートルートテーブルC
  PrivateRouteTableC:
    値 Ref関数は指定した値を返してくれるよ(この場合はPrivateRouteTableCの設定を持ってきてくれるよ)
    Value: !Ref PrivateRouteTableC
    クロススタックの参照元にするよ
    Export:
      名前 事前に定義した変数(hoge)を!Subで呼べるよ つまり"hoge-private-route-c"ってなるよ!
      Name: !Sub "${PJPrefix}-private-route-c"

일단 종료



일단 VPC, 서브넷, 인터넷 게이트웨이, 라우팅 테이블, 아웃풋의 스택 모두에 척 흔들어봤습니다만, 그래. 꽤 공부가 되었다. 전보다 읽을 수 있게 되었다고 할까,

영어(;'∀')무리(;'∀')

같은 알레르기는 완화된 것 같습니다.

이 VPC편 외에
  • EC2 편
  • RDS 편

  • 라고 포치포치 써 갈까라고 생각합니다('◇')ゞ

    좋은 웹페이지 즐겨찾기