前回はAWS CloudFormationとは何ぞや? 構成管理ツールと呼ばれる種類のサービスです!というところまでお話を進めましたが、今回はAWS CloudFormationのフォーマットについてのお話です。

フォーマット

AWS CloudFormationで利用できるCodeは、jsonもしくはyaml形式で記述することができます。jsonは括弧が鬱陶しいことやコメントが記述できないことなどの理由から、yamlで記述することをおススメしています。

jsonとは

jsonとはjava script object notation の略で、軽量なデータ記述言語の1つです。JavaScriptのオブジェクト表記法をベースとしてつくられ、アプリケーション間などのデータ交換(データの受け渡し)に使えるようにと設計された簡易データ定義言語です。

RFC 8259, IETF STD 90, ECMA-404 2nd edition で規定。

MIMEタイプはapplication/json。拡張子は.json。とされています。従来まではデータ交換方式として、csvやtsv、XMLなどが使われてきましたが、最近ではjsonが頻繁に利用されるようになってきました。

以下はjsonの記述例です。

{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Description" : " Amazon Linux Stack ",
  "Resources" : {
    "Server01": {
      "Type": "AWS::EC2::Instance",
      "CreationPolicy" : {
        "ResourceSignal": {
          "Timeout": "PT30M"
        }
      },

yamlとは

yamlとは、yaml ain’t markup language の略; 一般的な拡張子は .yml。ソフトウエア内部で扱っている構造化されたデータやオブジェクトを文字列にシリアライズ化するためのデータ形式です。※シリアライズ化とは、複数の並列データを直列化すること。

AWSTemplateFormatVersion: '2010-09-09'
Description: Amazon Linux Stack
Resources:
  Server01:
    Type: AWS::EC2::Instance
    CreationPolicy:
      ResourceSignal:
        Timeout: PT30M

なんとなくAWS CloudFormationがjsonやyamlと呼ばれるテキスト文書でコードを記述してきながら、AWS上に構築するシステムを定義していく様子が見えてきたでしょうか?なんとなくのイメージで構いません。クラウド上に構築するネットワークやサーバーをコードで書くのだということがわかればOKです。

今回はここまでです。

お疲れ様でした。