こんにちは。
simplineのmiddleでございます。
来週はハロウィンですね!
★今回のお題
CloudFormationのテンプレート調達
その1 背景〜CloudFormationとは
その2 初心者がテンプレートを書いてみます① ←本日はこちら
その3 初心者がテンプレートを書いてみます②
その4 おまけ「Outputsでクロススタック参照」編
★テンプレートを理解する
いろいろポイントはあるのでそれは公式ドキュメント等参考にしていただくとして、私が思うに以下3つを抑えれば結構いい線いけると思います。
①Parameters
テンプレート内でパラメーターを決めで記載すると固定されますが、そこを変動させるための部分です。
例えば「EC2のインスタンスタイプをt2.micro」と記載すると、そのテンプレートを使って作成したインスタンスはもちろん、どれもt2.microになります。
ここに汎用性を持たせるため、このParameters部分を利用します。
スタック作成をする際に、インスタンスタイプをどうするか選べるようになります。
※今回はテンプレート=パラメータシートとしたい、という思いがあるので、Parameters部分の利用は最小限にすることにしました。
②Resources
※いちばん大事
実際にどんなリソースを作成するか、指定する部分です。
EC2ならAMIやインスタンスタイプはどれにするか、ボリュームサイズ・タイプはどうするかなど、細かく指定することができます。
極端な話、テンプレートはこのResources部分さえあればよいようです。
③Outputs
スタック作成後、作成されたリソースのパラメータを出力する機能です。
出力できるのはリソースによっていろいろとありますが、EC2だったらインスタンスIDや起動したプライベートIPアドレスなどです。
※この辺は、その4で書きたいと思っております。
★テンプレートの作り方
実際みなさんがどう作ってるのか存じ上げないのですが、ただひたすらに書く(?)以外に、以下のような方法があるようです。
①CloudFormerを使う
すでに存在するリソースからテンプレートを起こすツールだそうです。
もともとあるリソースを複製したい時なんて便利そうですね。
ただ、まだベータ版とのことで、対応していないリソースも多いようです。
情報がまとまっているページを見つけられなかったのですが、例えばNLBやALBがその一例というのをサポートの方からうかがいました。(CLBは対応してる)
②デザイナーを使う
グラフィカルにテンプレートの作成・編集ができるツールです。
もともとあるテンプレートを読み込んで編集することもできます。
使いたいリソースをドラッグ&ドロップして好きな場所に配置したり……。
矢印でリソース同士を結んで関連付け(EC2にこのelastic ipアドレスを設定する、など)したりできます。
私がテンプレートを作成するにあたり、今回ALBを作る必要があることなどから、CloudFormerの利用はやめました。
じゃあ私のような初心者はデザイナーを使えばよいのですが……。
▲このMetadataというのは一体……?
デザイナーを使ってテンプレートを作ると、「Metadata」というものが自動的に挿入されます。
もちろん無意味なわけではないのですが、本質的にはあまりテンプレートに関係ない情報です。
(おそらくプレビュー画面でどの位置にあるよ、とかそんな情報かと思われます。)
▲気に入りません……(じゃまくさい)
※あくまで私の感想です。
暗中模索になったところで次回に続きます。
よろしくお願いいたします。