AWS CloudFormation スタックで Systems Manager に保存されたパラメータを動的に使用するにはどうすればよいですか?

所要時間1分
0

AWS Systems Manager Parameter Store に複数のパラメータ値が保存されています。要件に基づいて、AWS CloudFormation スタックでこれらのパラメータを動的に使用したいと考えています。

簡単な説明

次の解決策では、CloudFormation スタックでさまざまなパラメータを動的に使用する方法を示すために、Microsoft Windows と Linux をサンプル環境として使用します。

重要: 次のコマンドとテンプレートを使用するときは、WindowsLinux をご自身の要件に置き換えてください。

解決方法

1.    AWS Systems Manager コンソールを開きます。

2.    ナビゲーションペインで、[Parameter Store] (パラメータストア) を選択します。

3.    Linux または Windows の Amazon マシンイメージ (AMI) ID を保存するには、Systems Manager パラメータを [String] タイプとして作成します。

Linux:

LinuxAmiId - AMI-Id-for-Linux-resources
  • または -

Windows:

WindowsAmiId - AMI-Id-for-Windows-resources

注: AMI-Id-for-Linux-resourcesAMI-Id-for-Windows-resources は、ご利用のリソースの AMI ID に置き換えてください。

4.    次の CloudFormation テンプレートの例を使用して、デプロイに使用する AMI を選択するパラメータを作成します。

 "Parameters": {
    "AmiToUse": {
      "Type": "String",
      "AllowedValues": [
        "windows",
        "linux"
      ]
    }
  },
  "Conditions": {
    "CreateWindowsResources": {
      "Fn::Equals": [
        "windows",
        {
          "Ref": "AmiToUse"
        }
      ]
    }
  },
  "Resources": {
    "EC2Instance": {
      "Type": "AWS::EC2::Instance",
      "Properties": {
        "ImageId": {
          "Fn::If": [
            "CreateWindowsResources",
            "{{resolve:ssm:WindowsAmiId:1}}",
            "{{resolve:ssm:LinuxAmiId:1}}"
          ]
        }
      }
    }
  }

注: 前述のテンプレートでは、[AmiToUse][windows] として選択されている場合、CreateWindowsResources 条件は [true] と評価されます。CloudFormation は、[WindowsAmiId] に保存されている値を使用して AWS::EC2::Instance リソースをプロビジョニングします。Linux の場合、条件は [false] と評価され、CloudFormation は [LinuxAmiId] に保存された値を使用して AWS::EC2::Instance リソースをプロビジョニングします。

動的な参照の詳細については、「動的な参照を使用してテンプレート値を指定する」を参照してください。

関連情報

CloudFormation ワークショップ: 動的な参照ラボ


AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ