1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudFormationをざっくり理解する!

Posted at

はじめに

CloudFormation(クラウドフォーメーション)は、AWS(Amazon Web Services)が提供する「インフラをコードで管理する」ためのサービスです。

これを使うことで、手作業でAWSリソースを作成するのではなく、テンプレート(YAMLまたはJSON形式のファイル) を用いて自動的にリソースをデプロイできます🤗

目次

  1. CloudFormationの基本構造
  2. CloudFormationテンプレートの基本構造
  3. CloudFormationのメリット
  4. 実際の使い方
  5. 応用テクニック
  6. まとめ

🧷 CloudFormationの基本構造

CloudFormationには、次の3つの重要な概念があります。

🔹 テンプレート(Template)

AWSリソース(EC2, S3, RDS, Lambdaなど)を定義する 設計図 のようなもの。YAMLまたはJSON形式で記述されます。

🔹 スタック(Stack)

テンプレートを使って作成された 実際のAWSリソースの集合。
例:EC2インスタンス、セキュリティグループ、S3バケットなどを含む環境。

🔹 変更セット(Change Set)

既存のスタックを更新する前に、変更の影響を確認できる仕組み😊

スクリーンショット 2025-03-11 15.44.20.png

🧷 CloudFormationテンプレートの基本構造

テンプレートは以下のような構成要素で作られます。

AWSTemplateFormatVersion: '2010-09-09'  # フォーマットバージョン(固定)
Description: "EC2インスタンスを作成するCloudFormationテンプレート"  # 説明

Resources:  # 作成するAWSリソースの定義
  MyEC2Instance:
    Type: "AWS::EC2::Instance"
    Properties:
      ImageId: "ami-0abcdef1234567890"  # AMI ID(リージョンごとに異なる)
      InstanceType: "t2.micro"  # インスタンスタイプ

🧷 CloudFormationのメリット

✅ 自動化:手動でAWSリソースを作成する手間を省ける

✅ 再利用可能:同じテンプレートを使えば、環境を再現可能

✅ 管理が楽:どんなリソースがあるのか一目で分かる

✅ 変更追跡:変更セットを使って安全にアップデート可能

🧷 実際の使い方

① テンプレートを作成

上記のようなYAMLまたはJSONファイルを作成します。

② スタックの作成

AWSマネジメントコンソール、AWS CLI、AWS SDK(Python/Boto3など)でデプロイします。

▶️ AWS CLIの場合

aws cloudformation create-stack --stack-name MyStack --template-body 
file://my-template.yaml

③ スタックの更新

aws cloudformation update-stack --stack-name MyStack --template-body 
file://updated-template.yaml

④ スタックの削除

aws cloudformation delete-stack --stack-name MyStack

🧷 応用テクニック

🔹 パラメータ(Parameters) を使うと、可変値をテンプレートに埋め込める。

🔹 条件(Conditions) を使って、特定の条件下でリソースを作成できる。

🔹 出力(Outputs) を使うと、作成したリソースの情報を外部に渡せる。

🔹 組み込み関数(!Ref, !Sub, !GetAtt など) で動的な値を扱える。

🧷 まとめ

  • CloudFormationを使うと、AWS環境をコードで管理できるので、手作業を減らし、インフラの一貫性を保つことができます。

  • 小規模な環境から大規模なシステムまで幅広く使えるので、AWSを本格的に運用するなら習得しておくと便利です! 🚀

💡 次のステップとしては…

実際にテンプレートを書いてデプロイしてみるパラメータや条件を活用して動的なテンプレートを作るCloudFormationのベストプラクティスを学ぶと良さそう!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?