【結論】
・CloudFormationとは、AWSのサービスの一つで、インフラ構成をJSONやYAMLなどのコードで管理できる様になる
・コード化したインフラ構成を読み込ませる事で、煩雑な手作業による設定作業を省略する事ができる
・但し、全ての手順をコードに置き換えるのは、費用対効果が悪い場合もある
【目次】
【本題】
CloudFormationについて
CloudFormationとは、AWSのサービスの一つで、インフラ構成をJSONやYAMLなどのコードで管理できるものです。
本来であれば、コンソールでポチポチ設定をしていく必要がありますが、インフラ構成を記述したコードを読み込ませる事で、その設定内容を反映させる事が出来ます。
AWS CloudFormation(テンプレートを使ったリソースのモデル化と管理)| AWS
メリット
手作業での設定が省略されるというのが大きなメリットです。
通常、AWSで設定を行う場合、コンソール画面から設定項目をポチポチとクリックして選択する作業が発生します。
しかし、あらかじめそれらのインフラ構成をコードに落とし込んでいれば、それを読み込ませるだけで設定が反映されるので、手作業を省略する事が出来ます。
人の手作業によるケアレスミスなども防ぐ事が出来ます。
さらに、インフラ構成をまとめた手順書をコードに置き換える事で、手順書更新の手間も省けます。
またコードだと簡単に共有する事も出来るので、ベストプラクティスを水平展開する事も可能です。
この様なインフラ構成をコードで管理する手法は「Infrastructure as Code(インフラのコード化)」と呼ばれており、ここ数年のトレンドでもあります。
注意点
この様に便利な手法ですが、いくつか注意すべき点もあります。
まず、手作業で出来ない設定をコードに落とし込むことは困難なので、手作業で設定が行える程度には、各種設定項目について理解しておく必要があります。
そうすることで、トラブルが発生した時も柔軟に対応する事が出来ます。
また、設定項目をコードに落とし込む作業には時間も要するので、全ての項目をコードに落とし込もうとすると、費用対効果が悪くなるケースもあります。
状況に応じて、妥協も必要になる事を理解しておく必要があります。
参考情報
コードによるインフラ構成管理はなぜ必要? 今さら聞けない「Infrastructure as Code」 (1/3):CodeZine(コードジン)
【CloudFormation入門1】5分と6行で始めるAWS CloudFormationテンプレートによるインフラ構築 | DevelopersIO
《今日の学習進捗(3年以内に10000時間に向けて)》
インフラ構築のレクチャー受講を兼ねて、リリース直前のサービスの本番環境構築に立ち会わせて頂いたが、正直半分も理解出来なかった。これまでAWSは、非常に簡素な構成かつプライベートの自習でしかインフラ構築した事が無いので、知らない概念が多数出てきた事が要因だと考えている。但し、大枠は理解出来て、何を理解すべきかという道筋は見えてきたので、今後学ぶ対象を決める上で非常に参考になった。
特にCloudFormationによるインフラのコード化については、煩雑な手作業が省略されたり、コードさえ修正すれば手順書の更新が不要だったりと作業効率の向上の面で非常に魅力的に感じたので、今後習得できる様になりたいと感じた。
学習開始からの期間 :187日
今日までの合計時間:1811h
一日あたりの平均学習時間:9.7h
今日までに到達すべき目標時間:1708h
目標との解離:103h
「10,000時間」まで、
残り・・・「8189時間!」