CFnって難しいね

概要

仕事がCFnをメインとして利用する環境になりましたので、改めて一から勉強し直します。
認定試験や前の仕事で少しだけ触ってはいましたが、terraformでいいじゃん的な気分でいてキチンと学習をしてきませんでした。
いざ業務でCFnメインとなるとかなーりいろいろなことを忘れていたり理解していないことを痛感しました。
ここでキチンと修行します。

この記事はそのメモやまとめです。
すでに設定済みの項目がいくつかある。
試行錯誤しながらやったので、手順として不要かもしれない。あくまでメモ用。

学習項目について

sysopsの試験対策講座から抜き出してみましたが以下の要素がわかっていれば基本は理解できているのかなと思えましたので、以下の要素の学習を進めたいと思います。
できるだけCLIとConsole画面の両方で確認していけばより理解が深まりそうです。
(書き出しているだけなので内容が被るかも……)

基本操作

create stack
update stack
delete stack

テンプレートのルールについて

Parameters
Mappings
Conditions
Transform
Resource
Outputs

もっと詳細

Outputs&Exports
Intrinsic Functions
Rollbacks
Service Role
Capabilities
Deletion Policy
Stack Policy
Termination Protection
Custom Resources
Dynamic References
!Ref
User Data
cfn-init
cfn-signal Failures
Nested Stacks
Depends on
StackSets

用語

今回はテンプレートのルールについての用語の意味を確認します。
ざっくりと確認しあとからCLIとConsole画面の両方で実際にスタックを利用したいと思います。
CLIのコマンドと混在していたりしますが、そのへんは許してください……。

create

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/using-cfn-cli-creating-stack.html
スタックを作成します。

update

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html
スタックを更新します。 2種類の更新方法があり、直接更新または変更セット(change set)の作成と実行があります。

delete

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/using-cfn-cli-deleting-stack.html
スタックを削除します。 削除保護(Termination Protection)が有効になっているスタックを削除することはできない。

Mappings

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/mappings-section-structure.html
Mappingsセクションでは、キーと名前付きの一連の値とが対応付けられます。たとえば、リージョンに基づく値を設定する場合、リージョン名をキーとして必要な値を保持するマッピングを作成する。
呼び出す際は組み込み関数Fn::FindInMapを利用する。

Conditions(条件)

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/conditions-section-structure.html
Conditionsセクションではいわゆる条件をつけることができる。
例えばEC2の場合、EnvによってはEBSを作成しアタッチする、それ以外の環境ではEC2の作成のみといった感じのことができる。

Transform(変換)

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/transform-section-structure.html
これについては本当に理由がわからなかった……。いくつかブログを漁ってみたけどそれでもはっきりとしたことはわかりませんでした。
実際に手を動かしてみるとわかるものなのかな……?

Resource

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resources-section-structure.html
テンプレート内でAWSリソースの宣言をする際に利用します。

outputs(出力)

https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html
Outputs セクションは、Consoleでスタックからの出力値を参照したり、別のスタックに作成したスタックのパラメーターをエクスポートする際に利用する。
こちらのqiitaの記事がシンプルかつ注意点も記載されていてわかりやすかったです。
https://qiita.com/jonhyoku_imu/items/c4125c21143eb77d5612
本当はこのレベルまで自分の言葉で落とし込むべきなのでしょう……。

終わりに

改めて学習すると、ほんとうに学習した気になっていたということを痛感しました。
次回は今回調べた部分を実際に手を動かして学習します。