こんにちは。
simplineのmiddleでございます。

先日は会社のみなさまとバーベキューご一緒してきました!

 

★今回のお題

CloudFormationのテンプレート調達

その1 背景〜CloudFormationとは ←本日はこちら
その2 初心者がテンプレートを書いてみます①
その3 初心者がテンプレートを書いてみます②
その4 おまけ「Outputsでクロススタック参照」編

 

★背景

環境構築にあたりCloudFormationを使いたい、とお客様からお話がありました。
理由は以下だそうです。

・CloudFormationを使うことで、同じような設定のリソースを作る際の手間を省けるため。
・構成管理も同時にできるため。(実機とドキュメントのずれを気にしなくてよい)

 

〜それまでのCloudFormationの知識〜
・スタック削除したら基本的にリソースも削除される
・構築失敗したら基本的にロールバックされる
・CloudFormation自体の利用料金はただ。
などなど
(=AWS資格試験で見かけた程度)

 

それではスタートです。

 

★CloudFormationとは

AWS CloudFormation は、クラウド環境内のすべてのインフラストラクチャリソースを記述してプロビジョニングするための共通言語を提供します。CloudFormation では、シンプルなテキストファイルを使用して、あらゆるリージョンとアカウントでアプリケーションに必要とされるすべてのリソースを、自動化された安全な方法でモデル化し、プロビジョニングできます。このファイルは、クラウド環境における真の単一ソースとして機能します。

公式サイトより引用)

シンプルなテキストファイル」というのが「テンプレート」と呼ばれる設計書のようなものです。
このテンプレートから構築するリソースをまとめて「スタック」と呼びます。
同じテンプレートを使うことで同じスタックが出来上がるので、標準化に使えるというわけです。

 

そしてこのCloudFormationですが、初回構築時以降も活用できます。
スタックの「更新」というのができるのですね。何かリソースに変更を加えたい際は、テンプレートを書き換えて、そこから再度スタック作成します。
そうすると変更部分が新たに構築し直されます。

なので、テンプレートがパラメータシートみたいなイメージでしょうか。

 

ということで「CloudFormationって便利そうだなあ」というところではございますが、ここでふと疑問です。
設計書・パラメータシートなテンプレートは、どこから調達すればよいのか……!?!?
↑今回の本題でございます。

 

公式サイトで、テンプレートのサンプルが公開されています。

■参考:
Amazon サンプルテンプレート – AWS CloudFormation

例えばEC2関連ですと、「セキュリティーグループ+EC2インスタンス」を作成するものがあります。

テンプレートのスニペットもございました。

■参考:
AWS テンプレートスニペット – AWS CloudFormation

本当にシンプルなものだと、AMIとAZのみ指定したものなんてのがありました。

 

とはいえ、環境なんてのは多種多様でして、サンプルがそのまま使えるとは限りません。
つまり、テンプレートはある程度自分で書かなければいけないのです。
(目を背けていた事実に直面し、CloudFormationは大して便利ではないという気持ちに……)

 

 

★そもそもテンプレートとは

AWS CloudFormation テンプレートとは?
テンプレートとは、スタックを構成する AWS リソースの宣言です。テンプレートはテキストファイルとして保存され、そのフォーマットは JavaScript Object Notation (JSON) または YAML の標準に準拠しています。テキストファイルであるため、どのテキストエディタでも作成および編集でき、他のすべてのソースコードとともにソースコード管理システム内で管理することができます。テンプレート形式の詳細については、「AWS CloudFormation テンプレート形式」を参照してください。

公式サイトより引用)

上記の通りテンプレートはjsonもしくはyaml形式で作成するのですが、今回は「わかりやすいだろうからyamlがいい」というご意見をいただいたのでyamlにします。
この時点でyamlがなんだかわかってさえいないのですが……とりあえず作りたいと思います。

雲行きが怪しすぎますが、今回はここまでです。
次回に続きます。
よろしくお願いいたします。

TOP