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

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

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

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

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

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

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

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

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


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

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

ネストされたスタックのルートスタックを表示するには
  1. AWS Management Console にサインインし、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation/) を開きます。変更するスタックを選択します。

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

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

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

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

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