🏗️ CloudFormation変更セット

建築業界で理解する超入門ガイド

📋 設計図 → 🔍 見積もり → 🔨 工事開始

CloudFormation変更セットを、身近な建築・リフォーム業界で例えて分かりやすく説明します!

🤔 CloudFormation変更セットって何?

📝 簡単に言うと...

AWSリソースの変更 を実行する前に、 「何が変更されるか」を事前に確認 できる機能です

🏗️ 建築業界の例

家のリフォーム をしたい時
いきなり工事を始めるのは危険...


👆 まずは 見積もり書
📋 何が変わるか?
💰 いくらかかるか?
⏰ どのくらい時間がかかるか?
を確認してから工事開始!

☁️ CloudFormationの世界

AWSリソース を変更したい時
いきなり変更するのは危険...


👆 まずは 変更セット
📋 どのリソースが変わるか?
⚠️ 影響はあるか?
🔄 どんな操作が実行されるか?
を確認してから変更実行!

🏗️ 4つの重要な要素を建築で理解

📐

CloudFormationテンプレート
= 設計図

理想の建物の設計図 です。
「どんな部屋が何個」「どこに何を配置」するかが
JSONやYAML で書かれています。

例: EC2インスタンス×2台
RDS: MySQLデータベース
S3: ストレージバケット
🏠

CloudFormationスタック
= 実際の建物

実際に建てられた建物 です。
設計図を元に実際に作られた
AWSリソースの集合体 です。

特徴: 実際に稼働中
状態: 変更可能
📋

変更セット
= 改装の見積もり書

リフォーム計画書 です。
「どの部屋を変更する」「どのくらい費用がかかる」
「どのような影響があるか」を 事前に確認 できます。

役割: 変更内容の事前確認
安全性: 実行前に内容をチェック
🔨

変更実行
= 実際の工事開始

工事の実行 です。
見積もり書で確認した内容を
実際に 建物に反映 します。

特徴: 一度始めると戻せない場合も
重要: 事前確認が必須

🗺️ 変更セットの流れを図で見てみよう

📐

新しい設計図

更新したテンプレート

「キッチンを広くしたい」
「部屋を1つ増やしたい」
📋

見積もり書作成

変更セット

「何が変わるか」
「どんな影響があるか」を分析
🔨

工事実行

変更の実行

確認後に実際の
リソース変更を実行

💡 変更の流れ

新しい設計図 → 詳細な見積もり作成 → 内容確認 → 実際の工事実行

🔍 変更セットで分かること

📊 変更セットが教えてくれる情報

追加されるリソース (Add)

建築の例: 新しい部屋を増築
AWS例: 新しいEC2インスタンスやS3バケットが作成される
影響: 新しい料金が発生、新機能が利用可能

🔄

変更されるリソース (Modify)

建築の例: 既存の部屋のサイズ変更
AWS例: EC2のインスタンスタイプ変更、RDSのスペック変更
影響: 一時的な停止が発生する可能性、料金変更

🔄

置き換えられるリソース (Replace)

建築の例: 古い設備を取り壊して新しく建設
AWS例: データベースやサーバーの完全な再作成
影響: ⚠️ データ消失の可能性あり!要注意!

削除されるリソース (Remove)

建築の例: 不要な部屋や設備を取り壊し
AWS例: 使わなくなったサーバーやデータベースを削除
影響: ⚠️ 復旧不可能!バックアップ確認必須!

📋 実際の手順(超簡単版)

1

新しい設計図を準備

CloudFormationテンプレートを更新
→ 「キッチンを広くしたい」のように、新しい設計図を作成
→ JSONやYAMLファイルでリソースの設定を変更

2

変更セット(見積もり書)を作成

AWS コンソールから「変更セットの作成」
→ 建築士が「見積もり書を作ります」と同じ
→ 新しいテンプレートと現在の状況を比較分析

3

見積もり内容を詳しく確認

変更内容を一つずつチェック
→ 「どのリソースが変わるか」をリストで確認
→ 特に「削除」や「置き換え」は要注意!

4

問題ないか最終確認

影響とリスクを評価
→ データが消えないか?
→ サービスが止まらないか?
→ 予想外の料金増加はないか?

5

変更セットを実行 🚨

実際の工事開始
→ 「変更セットの実行」ボタンをクリック
→ ⚠️ 一度開始すると戻せない場合があるので注意!

6

変更完了の確認

工事の完了確認
→ スタックの状態が「UPDATE_COMPLETE」になることを確認
→ 実際にリソースが期待通りに動作するかテスト

⚠️ 変更セットを使う時の注意点

🚨 危険な変更パターン

🏠 建築の例: 「基礎工事をやり直す」

☁️ AWS例: データベースの「置き換え」操作


⚠️ 何が起こるか:

  • 既存のデータベースが 完全に削除 される
  • 新しいデータベースが作成される
  • データが全て消える 可能性
  • サービスが長時間停止する

✅ 安全な確認方法

📋 変更セット確認のチェックリスト:

  • 「削除」や「置き換え」が含まれていないか?
  • 重要なデータを持つリソースに影響しないか?
  • バックアップは取得済みか?
  • ダウンタイムは許可された時間内か?
  • ロールバック計画は準備されているか?

💡 プロのコツ

🕒 実行タイミング:

  • メンテナンス時間帯に実行
  • ユーザーが少ない時間を選ぶ
  • 緊急対応できる体制を整えてから

🔄 段階的実行:

  • 開発環境で事前テスト
  • 小さな変更から始める
  • 一度に大量の変更を避ける

❓ よくある質問

🤔 変更セットを作っただけで料金はかかる?
🔄 変更セットを作った後、キャンセルできる?
🏠 既存のスタックがない場合はどうする?
💡 変更セットと直接更新の違いは?

🎯 実際のコード例

📐 シンプルなテンプレート例

EC2インスタンスのサイズを変更する場合:

🔹 変更前のテンプレート

AWSTemplateFormatVersion: '2010-09-09' Resources: MyEC2Instance: Type: AWS::EC2::Instance Properties: InstanceType: t2.micro # 小さいサイズ ImageId: ami-12345678 KeyName: my-key

🔹 変更後のテンプレート

AWSTemplateFormatVersion: '2010-09-09' Resources: MyEC2Instance: Type: AWS::EC2::Instance Properties: InstanceType: t2.small # サイズアップ! ImageId: ami-12345678 KeyName: my-key

📋 変更セットで確認できること

リソース名: MyEC2Instance

変更タイプ: Modify(変更)

プロパティ: InstanceType

変更内容: t2.micro → t2.small

置き換え: Yes(再起動あり)

影響: 数分間のダウンタイム発生

✨ CloudFormation変更セットのメリット

🔍

事前確認

「何が変わるか」を実行前に詳しく確認できます

🛡️

安全性

予想外の削除や破壊的変更を事前に発見できます

👥

チーム協力

変更内容をチーム全体で確認・承認できます

💰

コスト予測

変更による料金への影響を事前に把握できます

📋

変更管理

いつ・誰が・何を変更したかの記録が残ります

🎯

精度向上

計画的な変更により、失敗やトラブルを大幅に減らせます

🎯 まとめ

📐 CloudFormationテンプレート = 設計図(理想の設計)

🏠 CloudFormationスタック = 実際の建物(現在のリソース)

📋 変更セット = 改装の見積もり書(変更内容の事前確認)

🔨 変更実行 = 実際の工事(リソースの変更)


🎯 重要なポイント:

  • 変更セットは 「見積もり」 なので料金はかからない
  • 実行前に 必ず内容を確認 して安全性をチェック
  • 「削除」「置き換え」 は特に注意深く確認
  • 不安な時は 開発環境で事前テスト を実施

🚀 初心者へのアドバイス:

  • 最初は小さな変更から始めよう
  • 変更セットを作るだけでも勉強になる
  • チームメンバーと一緒に確認する習慣をつけよう
  • バックアップ取得を忘れずに!

Created by SSuzuki1063

AWS SAP Learning Resources

Created by SSuzuki1063

AWS SAP Learning Resources