このサイトは、特にやりたいこともなく無気力に生きる汚い中年おじさんデザイナー佐藤文彦のポートフォリオサイトです。
応援よろしくお願いします。

AWS CloudFormationメモ

2022/04/17

Visual Studio Codeのプラグインをインストール

Visual Studio Codeのプラグインが便利。

https://marketplace.visualstudio.com/items?itemName=aws-scripting-guy.cform

.ymlファイルを作成して、ファイル上でstart + tabでテンプレートの骨格が作成される。

AWSTemplateFormatVersion: 2010-09-09
Description: ---
Metadata: 

Parameters: 

Mappings: 

Conditions: 

Resources: 

Outputs:

Visual Studio CodeにCloudFormation用の設定を追加します。

◎ ~/Library/Application Support/Code/User/settings.json

{"yaml.schemas": {
    "https://d33vqc0rt9ld30.cloudfront.net/latest/gzip/CloudFormationResourceSpecification.json": [
        "*.cf.yaml",
        "*.cf.yml",
        "*.cfn/*.yaml",
        "*.cfn/*.yml",
        "cloud*formation/*.yaml",
        "cloud*formation/*.yml"
    ]
},


"yaml.customTags": [
    "!Ref",
    "!Sub scalar",
    "!Sub sequence",
    "!Join sequence",
    "!FindInMap sequence",
    "!GetAtt scalar",
    "!GetAtt sequence",
    "!Base64 mapping",
    "!GetAZs",
    "!Select scalar",
    "!Select sequence",
    "!Split sequence",
    "!ImportValue",
    "!Condition",
    "!Equals sequence",
    "!And",
    "!If",
    "!Not",
    "!Or"
    ]
}

テンプレートファイルを作成

以下VPCを作成する、CloudFormationテンプレートファイルを作成します。

AWSTemplateFormatVersion: 2010-09-09
Resources: 
  MyVpc:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.8.0/21
      EnableDnsSupport: true
      Tags:
        - Key: Name
          Value: MyVPCfromCF

CloudFormationスタックを作成

CloudFormationのスタックの作成から「新しいリソースを使用」を選択します。

CloudFormation

テンプレートファイルをアップロードします。

CloudFormation

スタック名を設定します。

CloudFormation

その他はそのままの設定で、スタックを作成します。

しばらく待つとVPCが作成されます。

CloudFormationスタックを更新する

作成したスタックを更新します。

VPCにサブネットを追加します。

AWSTemplateFormatVersion: 2010-09-09
Resources: 
  MyVpc:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.8.0/21
      EnableDnsSupport: true
      Tags:
        - Key: Name
          Value: MyVPCfromCF
  subnetName:
    Type: AWS::EC2::Subnet
    Properties:
      AvailabilityZone: "ap-northeast-1a"
      VpcId: !Ref MyVpc
      CidrBlock: 10.0.8.0/24
      Tags:
        - Key: Name
          Value: subnet1fromCF

先程作成したスタックを選択して、「更新」ボタンを押します。

CloudFormation

「既存のテンプレートを置き換え」を選択して、変更したテンプレートファイルをアップロードします。

CloudFormation

その他は特にへんこうせず、更新を行うとサブネットが追加されます。

クロススタック参照

スタックのテンプレートは規模が大きくなるとテンプレートファイルが大きくなってしまうので、複数のファイルに分けて、リソースを参照するようにします。

参考 ) https://zenn.dev/minamiso/articles/7a71e625cdea90

カテゴリ

新規記事