Step By StepでAWS Cloud Formationを使いこなせ!(入門2)


この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

概要

想定読者

・普段からある程度でAWSリソースを持ちましてWEBサービスを構築する経験が持っている方

・YAML形式のファイル作成の有識者。YAMLの基本知識について、先日に以下の記事で紹介しましたので、ご参照ください。

 YAML作成なら_入門初級編

テンプレートの構成について

入門1の記事では以下のテンプレートでCloud Formationを経由してAWSリソースの作成方法をご紹介しました。

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  HogeVPC:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.10.0.0/16

このテンプレートでは、最も簡単な構成とはいえるかなと思います。実際にテンプレートでは下記のようにいくつかのセッションに分かれています。ご覧の通りに、Resourcesのセクションのみは必須とのことです。

  • Format Version (任意)
  • Description (任意)
  • Metadata (任意)
  • Parameters (任意)
  • Mappings (任意)
  • Resources (必須)
  • Outputs (任意)

各セクションの詳細説明は以下のドキュメント資料をご確認ください。

テンプレートの使用>テンプレートの分析

こちらでは必須のResourcesの分のみ解説いたします。

Resources

AWSCFnのテンプレートにおいて唯一必須のセッションです。スタックに含める、タックに含める AWS リソース (Amazon EC2 インスタンスや Amazon S3 バケットなど) を宣言します。

公式ドキュメント:リソース

リソース部分のYAMLの構文には以下の通りです

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

Logical ID

英数字(A-Za-z0-9)とし、テンプレート内で一意である必要なIDです。テンプレートの中で、他のリソースを参照する場合などは、このIDが使用する必要であります。また、作成したスタックのリソース一覧を確認するとこのIDでリソースが表示されます。

Resource type

実際に作成するリソースのタイプです。すべてのリソースタイプの一覧については、「AWS リソースおよびプロパティタイプのリファレンス」を参照してください。

Resource properties

Resourceを作成するときに指定できる追加オプションです。ResourceType(AWS::EC2::VPCとかAWS::EC2::Instanceなど)によって利用できるプロパティは異なるので、公式ドキュメントと確認しながら、作成していく必要みたいです。

リソースにImageIdを指定したテンプレートファイル例

たとえば、EC2 インスタンスごとに、そのインスタンスの AMI ID を指定する必要があります。次の例に示すように、AMI ID はインスタンスのプロパティとして宣言します

AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyEC2Instance:
    Type: "AWS::EC2::Instance"
    Properties:
      ImageId: "ami-0ff8a91507f77f867"

いかがでしょうか?最小の構成からAWS CloudFormationのテンプレートを解読すると、設定ファイルは非常にシンプルな感じが出てくれますよね。やる気が上がるんでしょう。機会がありましたら、ぜひ、IaaSのサービスCloudFormationを試してみてください。次回からもうちょっと複雑なテンプレートとリソースの作成を紹介したいと考えています。

最後までご読んだ頂き、ありがとうございました!それでは。

Last modified: 2024-02-06

Author