AWS CloudFormationとは?
【どんな人に記事を読んで欲しいか】
・CloudFormationを初めて学ぶ
・CloudFormationをざっくり知りたい
【自己紹介】
クラウドエンジニアとしてのキャリアを進み始めた26歳です。
AWSのサービスは非常に多く、日々の学習は欠かせません。私のようなクラウドエンジニア初心者の方に向けて、手助けになるような記事を書けたらと思っています!
目次
- AWS CloudFormationとは
- Infrastructure as Code (IaC)とは
- AWS CloudFormationでインフラ構築する時の流れ
1. AWS CloudFormationとは
AWS CloudFormation(以下CF)とは、
AWSのインフラをコード(IaC)で自動構築・管理するためのサービス
です。
AWSにおけるIaCサービスは、CF以外にも提供されています。
・AWS CloudFormation
・AWS Cloud Development Kit (AWS CDK)
・AWS CodeCommit
「そもそもIaCとは何なん?」
そうですよね。いきなりIaCが登場しても理解できませんよね。私もそうでした。
次はIaCについての説明です!
Infrastructure as Code (IaC)とは
Infrastructure as Code (IaC)とは
サーバーやネットワークなどのインフラ環境を、コードで構築・管理すること
です。
IaCには以下のメリットがあります。
・自動化
・再現性
・可視性
IaCでインフラを構築しない場合、AWSマネジメントコンソールというGUI画面でインフラ環境を構築していきます。マネジメントコンソールからインフラを構築するとなると、手間がかかります。
例えば、サーバーやデータベースの数が100台以上必要な場合、マネジメントコンソールで一つ一つ構築していくのは効率が悪いです。しかし、IaCを使用すれば負担は軽減され、コードから自動的にサーバーやデータベースを構築、管理できます。
そして、コードで書かれているため、一度コードを書いておけば同じ環境を構築するとなった場合再利用することができます。
また、コード化されているため、誰がみても認識しやすい特徴を持っています。
大規模なインフラ構築ではIaCを利用することがほとんどです。
次はAWS CloudFormationを利用したインフラ構築の流れについてです!
3. AWS CloudFormationでインフラ構築する時の流れ
「CloudFormationでインフラ構築したいんだけど、まずは何をすればいいの??」
CFでインフラ構築するには以下のような手順を踏む必要があります。
引用元:https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_CloudFormation-1_0731_v1.pdf
まず初めにするのは、YAML/JSONでテンプレートを作成することです。
こちらがテンプレートです。テンプレートにはYAML/JSON(画像テンプレートはYAMLで記述)が記述されています。YAMLとJSONどちらでも記述可能です。コメントが残せるYAMLがおすすめです。
このテンプレートには、構築したいネットワークやサーバー、DBについての情報が書かれています。
テンプレートが書けたら、AWSマネジメントコンソールでCloudFormationを開き、アップロードします。
そしてスタックを作成します。スタックとはリソースの集合体です。スタックを例えて言うならば、設計図をもとに建てられた家です。テンプレートが設計図になります。
テンプレート → 設計図
スタック → 家
スタック単位で作成、変更、削除ができます。非常に楽ちん!
以上となります。
CloudFormationについてざっくりと理解いただけたでしょうか?
ゼロイチの役に立てたなら幸いです。
最後までお読みいただきありがとうございました!
Discussion