【クラウド】【AWS】AWS CloudFormation - j-komatsu/myCheatSheet GitHub Wiki
AWS CloudFormation(クラウドフォーメーション)
1. AWS CloudFormationとは?
読み方:クラウドフォーメーション(CloudFormation)
AWS CloudFormationは、AWSリソースのインフラ管理をコード化するサービスです。
特徴 | 説明 |
---|---|
Infrastructure as Code (IaC) | JSONまたはYAMLでAWSリソースを定義し、コードで管理可能 |
自動化 | テンプレートを適用するだけで一括デプロイが可能 |
可搬性 | 環境(開発・本番)ごとに同じ設定を適用可能 |
変更管理 | 更新履歴を管理しながらインフラをアップデート可能 |
Rollback機能 | 失敗時に自動的に元の状態に戻すことができる |
2. 初心者向け解説
💡 クラウドフォーメーションの概念を例え話で説明
例:レゴブロックで家を作るときの設計書
AWS CloudFormationは、レゴブロックの設計書のようなものです。設計書(テンプレート)に沿って、必要なパーツ(リソース)を組み立てると、家(AWSの環境)が自動的に完成します。
3. 基本構造(テンプレートの構成要素)
CloudFormationのテンプレートは、以下のような構成になっています。
AWSTemplateFormatVersion: "2010-09-09"
Description: "シンプルなEC2インスタンスの作成"
Resources:
MyInstance:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
ImageId: ami-0abcdef1234567890
💡 各セクションの説明
セクション | 説明 |
---|---|
AWSTemplateFormatVersion |
テンプレートのバージョン(固定値) |
Description |
テンプレートの説明(省略可) |
Resources |
実際に作成するAWSリソースの定義 |
4. CloudFormationの実行プロセス
以下のフローでリソースを作成します。
graph TD;
A[テンプレート作成] --> B[スタック作成]
B --> C[AWSリソースを作成]
C --> D[デプロイ完了]
B -.->|エラー発生時| E[ロールバック]
5. 専門者向け解説
5.1 スタックの管理
CloudFormationは「スタック」という単位でリソースを管理します。
- スタックの作成 →
aws cloudformation create-stack
- スタックの更新 →
aws cloudformation update-stack
- スタックの削除 →
aws cloudformation delete-stack
5.2 パラメータと条件
動的な値を扱うためにParameters
を活用できます。
Parameters:
InstanceType:
Type: String
Default: t2.micro
Resources:
MyInstance:
Type: AWS::EC2::Instance
Properties:
InstanceType: !Ref InstanceType
この例では、InstanceType
の値を後から変更可能にしています。
6. CloudFormationの活用例
✅ EC2インスタンス作成テンプレート
AWSTemplateFormatVersion: "2010-09-09"
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
ImageId: ami-0abcdef1234567890
✅ VPC作成テンプレート
AWSTemplateFormatVersion: "2010-09-09"
Resources:
MyVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
7. まとめ
AWS CloudFormationは、AWSリソースの管理を自動化し、インフラをコードとして扱える便利なサービスです。
- 初心者:レゴの設計図のように、テンプレートを作成するだけで環境を構築できる
- 専門者:スタック管理やパラメータ設定を活用し、より柔軟なインフラ管理が可能
💡 クラウドフォーメーションを活用して、AWSリソースを効率的に管理しましょう!