見出し画像

ゼロから体系立てて学ぶCloudFormation(3)

今回は、CloudFormationのテンプレートのセクションで唯一必須となっているResourcesセクションのフォーマットについてまとめたいと思います。

▼|Resourcesセクションのフォーマット

Resourcesセクションは、以下の3つのリソースフィールドで構成されています。

・Logical ID
・Type
・Properties

Resources:
  Logical ID:
    Type: Resource type
    Properties:
      Set of properties


▶|Logical ID

Logical IDは、テンプレートで定義するリソースの論理名を設定します。英数字(A-Z、a-z、0-9)のみ使用でき、テンプレート内で一意である必要があります。

Logical IDは、テンプレートで記述している他のリソースから参照する際にLogical IDを指定するかたちで使用します。

Resources:
  MyVPC:

上記の例では、「MyVPC」という論理名でリソースを定義しようとしています。

▶|Type

Typeは、定義するリソースのタイプを指定します。例えば、テンプレートでVPCを作成したい場合は、「AWS::EC2::VPC」と指定します。

Resources:
  MyVPC:
    Type: AWS::EC2::VPC

指定可能なタイプはすべて決められています。リソースタイプの一覧については、「AWS リソースおよびプロパティタイプのリファレンス」を参照してください。

▶|Properties

Propertiesは、定義するリソースのプロパティを設定します。

Resources:
  MyVPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 172.16.0.0/16

上記の例では、作成するVPCのCIDRブロックは「172.16.0.0/16」ですよと定義しています。

上記はあくまで一例ですが、タイプによって設定可能なプロパティは異なりますので、上述のリファレンスを参照しながら各プロパティを設定していきます。

▼|まとめ

テンプレートを記述するのは最初はかなり大変だと思いますが、一度マネジメントコンソールからGUIでいろいろ設定したことがあれば、なんとなくどんなプロパティがあるのかは想像がつくかなと思います。

逆に、あくまで私の主観ですが、まったくGUIで操作したことがないとかなりイメージしにくいかなと思います。(少なくとも私はまあまあ大変でした。)

ですので、できれば一度GUIを使用して作成してみて、記述しなくてはいけないプロパティの内容であったり、記述する順番であったりを確認しておくと比較的スムーズに進められるかなと思います。

次回は、実際にAWS CLI経由でCloudFoundationにアクセスするための環境構築について記載したいと思います。

▶|過去の記事

ゼロから体系立てて学ぶCloudFormation(1)
→ CloudFormationで使用する用語について
ゼロから体系立てて学ぶCloudFormation(2)
→ テンプレートのフォーマットについて