AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

ネストされたスタックの操作

ネストされたスタックは、他のスタックの一部として作成されたスタックです。ネストされたスタックは、AWS::CloudFormation::Stack リソースを使用して別のスタック内に作成します。

インフラストラクチャが大きくなるにつれ、複数のテンプレートで同じコンポーネントを宣言する共通パターンができてきます。これらの共通するコンポーネントを他と分類し、専用テンプレートを作成できます。続いて、テンプレートのリソースを使用して他のテンプレートを参照し、ネストされたスタックを作成します。

たとえば、ほとんどのスタックに使用しているロードバランサー設定があると仮定します。テンプレートに同じ構成をコピーアンドペーストする代わりに、ロードバランサーを対象にした専用テンプレートを作成できます。その後は、 リソースを使用して他のテンプレート内からそのテンプレートを参照するだけです。

ネストされたスタックには他のネストされたスタックが含まれているため、次の図に示すようにスタックの階層になっています。ルートスタックは、ネストされたすべてのスタックが最終的に属する最上位スタックです。さらに、ネストされたスタックにはそれぞれ、直接の親スタックが存在します。第 1 レベルのネストされたスタックの場合は、ルートスタックにも親スタックが存在します。たとえば、以下の図をご覧ください。

  • スタック A は、階層内のネストされたその他すべてのスタックのルートスタックを表します。

  • スタック B から見ると、スタック A は親スタックであると同時にルートスタックでもあります。

  • スタック D から見るとスタック C が親スタック、スタック C から見るとスタック B が親スタックです。


            別のスタックの一部として作成されているネストされたスタックには、直接の親スタックと最上位のルートスタックが存在します。

ネストされたスタックを使用して共通コンポーネントを宣言することがベストプラクティスであるとみなされています。

特定のスタックオペレーション (例: スタックの更新) では、ネストされたスタック自体から直接実行するのではなく、ルートスタックから起動する必要があります。また、場合によっては、ネストされたスタックによって、スタックの操作方法に影響を及ぼす場合があります。詳細については、次のトピックを参照してください。

ネストされたスタックのルートスタックを表示するには

  1. AWS マネジメントコンソール にサインインした後、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation/) を開きます。変更するスタックを選択します。

    ネストされたスタックには、スタック名の横に [ネスト] と表示されます。

  2. [概要] タブで、[Root stack (ルートスタック)] と表示されているスタック名をクリックします。

ルートスタックに属するネストされたスタックを表示するには

  1. AWS マネジメントコンソール にサインインした後、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation/) を開きます。表示するネストされたスタックのルートスタックの名前をクリックします。

  2. [リソース] セクションを展開します。

    [AWS::CloudFormation::Stack] タイプのリソースを探します。