Kai は、テンプレートを作成する
ときに、異なる
CloudFormation スタックのリソースを
参照する方法を示します

kai_dynamic_port_mapping

テンプレートの作成中に別の AWS CloudFormation スタックのリソースを参照するにはどうすればよいですか?

AWS CloudFormation の使用が増加する場合には、インフラストラクチャリソースをホストする静的スタックを作成することができます。それから、スタックを個別に管理する代わりに、必要に応じて、リソースを参照する別のコンシューマースタックを作成できます。

リソーススタックは、アプリケーションとは独立した静的サービスとしての役割を果たします。リファレンスポイントは、コンシューマーとの対話を可能にする、インターフェイスのような働きをします。クロススタックの参照は、サービス指向のアーキテクチャに類似したアーキテクチャデザインを使用します。

クロススタックのリファレンスを作成するには、エクスポート出力フィールドでエクスポートを行うようリソース出力の値をフラグし、Fn::ImportValue 組み込み関数を使用して値をインポートします。エクスポートされる値はテンプレートで指定された名前と同一になります。これはリージョン内で一意のものである必要があります。

注記: この記事で提供しているのは、クロススタックのリファレンスを作成する方法の 1 つの例です。手順の詳細については、「チュートリアル: 別の AWS CloudFormation スタックのリソース出力を参照する」を参照してください。

インポートしたサブネットとセキュリティグループを使用して、インスタンスを作成する

1.    AWS CloudFormation consoleを開き、[Create Stack (スタックの作成)] を選択し、[Design template (テンプレートのデザイン)] を選択します。

2.    ページの下部で、[Template (テンプレート)] タブを選択します。

3.    Fn::ImportValue のようなサンプルテンプレートをコピーします。または次の例を使用します。

{
   "Parameters":{
        "NetworkStackNameParameter":{
              "Type":"String"
      }
    },
"Resources" : {
  "WebServerInstance" : {
    "Type" : "AWS::EC2::Instance",
    "Properties" : {
      "InstanceType" : "t2.micro",
      "ImageId" : "ami-a1b23456",
      "NetworkInterfaces" : [{
        "GroupSet" : [{"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStackNameParameter}-SecurityGroupID"}}],
        "AssociatePublicIpAddress" : "true",
        "DeviceIndex" : "0",
        "DeleteOnTermination" : "true",
        "SubnetId" : {"Fn::ImportValue" : {"Fn::Sub" : "${NetworkStackNameParameter}-SubnetID"}}
      }]
    }
  }
}

注記: 自分のリソースの名前を反映するように、テンプレートを修正してください。

4.    [Create stack (スタックの作成)] アイコンを選択し、[Next (次へ)] を選択し、名前を入力します。

5.    [Parameters (パラメータ)] に、クロスリファレンスを行うネットワークスタックの名前を入力します。

6.    [Next (次へ)] を選択し、もう一度 [Next (次へ)] を選択します。

7.    [CloudFormation] ドロップダウンメニューから [Exports (エクスポート)] を選択して、エクスポートの名前と値を確認します。

8.    Amazon EC2 コンソールを開きます。

9.    ナビゲーションの [Instances (インスタンス)] の下で、作成したインスタンス ID を選択します。

10.  [Description (説明)] ビューを選択し、セキュリティグループとサブネットが設定されていることを確認します。

注記: ソース側のスタックは、エクスポートされた値が他のスタックで使用されている間は、削除することができません。[Export Name (エクスポート名)] は、リージョンごとのアカウントに対して一意である必要があります。


このページは役に立ちましたか? はい | いいえ

AWS サポートナレッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2018 年 1 月 9 日