こんにちは。
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がなんだかわかってさえいないのですが……とりあえず作りたいと思います。
雲行きが怪しすぎますが、今回はここまでです。
次回に続きます。
よろしくお願いいたします。