AWSのITコストを削減 Simpline

選ばれ続けること

 

エンジニアブログ

ホーム - エンジニアブログ - [AWS]CloudFormationテンプレート作成 その1

[AWS]CloudFormationテンプレート作成 その1

2018.10.17

こんにちは。

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がなんだかわかってさえいないのですが……とりあえず作りたいと思います。


雲行きが怪しすぎますが、今回はここまでです。

次回に続きます。

よろしくお願いいたします。

1 Star 0 いいねしてね!
Loading...