AWSのサービス"CloudFormation"をについての勉強メモ
AWS CloudFormationとは
- AWSが提供するInfrastructure as Codeを実現するためのサービス
- AWSリソースの設定やプロビジョニングを担ってくれる
Infrastructure as Codeとは
- 一言で言うと、ITインフラの構築や維持作業をコード化すること
メリット
- 自動化
- インフラ構築をコード化し、それを実行することで素早く・正確にインフラを構築する
- 冪等性
- 人の手を介さないため、一度コードを作ってしまえば、ミスなく同じ環境を同じように構築可能
- 「冪等性」と言う言葉は数学界で用いられる言葉で、1回の操作でもn回の操作でも結果が変わらないこと
- 変更管理
- 再利用性の高いコードとして管理することで、インフラ設定をバージョン管理でき、変更後の差分が分かりやすくなる
デメリット
- 学習コスト
- ツールを利用するのに、まずそのツールを理解しなければならない
- 部分変更に時間がかかる
- サーバーの設定を少しいじるだけでも、コードを修正して適用になるため、手作業よりも時間がかかる
CloudFormation実行の主な流れ
- テンプレートを作成する
- テンプレートの拡張子はyamlとjsonがある
- 特別な理由がない場合は可読性が高いので、yamlを用いるのが良いと言われている
- スタックを作成する
- スタックはCloudFormationで構築するインフラのひとかたまり
- =テンプレートごとの単位
基本のテンプレート

- 9つのセクションを記述できる
- ここではよく使うセクションについて詳しく書きます