Application Manager を使用した AWS CloudFormation テンプレートの管理 - AWS Systems Manager

Application Manager を使用した AWS CloudFormation テンプレートの管理

AWS Systems Manager の一機能である Application Manager には、テンプレートライブラリやその他のツールが含まれており、AWS CloudFormation テンプレートの管理に役立ちます。このセクションでは、次の情報を紹介します。

テンプレートライブラリの操作

Application Manager のテンプレートライブラリには、テンプレートの表示、作成、編集、削除、およびクローン作成に役立つツールが用意されています。また、テンプレートライブラリから直接スタックをプロビジョニングすることもできます。テンプレートは、タイプ CloudFormation の Systems Manager (SSM) ドキュメントとして格納されます。テンプレートを SSM ドキュメントとして格納することで、バージョンコントロールを使用して、異なるバージョンのテンプレートを操作できます。アクセス許可を設定したり、テンプレートを共有したりすることもできます。スタックのプロビジョニングに成功すると、スタックとテンプレートは Application Manager と CloudFormation で使用できるようになります。

開始する前に

Application Manager で CloudFormation のテンプレートの操作を開始する前に、SSM ドキュメントの詳細について、次のトピックをお読みください。

Application Manager でテンプレートライブラリを表示するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Application Manager] を選択します。

  3. [Applications] (アプリケーション) セクションで、[CloudFormation stacks] (CloudFormation スタック) を選択します。

  4. [テンプレートライブラリ] を選択します。

テンプレートの作成

以下の手順では、Application Manager で CloudFormation のテンプレートを作成する方法について説明します。テンプレートを作成するときは、テンプレートのスタックの詳細を JSON または YAML で入力します。JSONやYAMLに詳しくない場合は、テンプレートを視覚的に作成および変更するためのツール、AWS CloudFormation Designer を使用してください。詳細については、AWS CloudFormation ユーザーガイドの「AWS CloudFormation Designer とは?」を参照してください。テンプレートの構造および構文については、「テンプレートの分析」を参照してください。

複数のテンプレートスニペットからテンプレートを作成することもできます。テンプレートスニペットは、特定のリソースのテンプレートを作成する方法を示す例を提供しています。たとえば、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス、Amazon Simple Storage Service (Amazon S3) ドメイン、AWS CloudFormation マッピングなどのスニペットを表示できます。スニペットはリソースごとにグループ化されます。AWS CloudFormation ユーザーガイドの「一般的なテンプレートスニペット」セクションでは、用途の広い AWS CloudFormation スニペットが紹介されています。

Application Manager (コンソール) で CloudFormation のテンプレートを作成

以下の手順に従い、AWS Management Console を使用して Application Manager で CloudFormation のテンプレートを作成します。

Application Manager で CloudFormation テンプレートを作成するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Application Manager] を選択します。

  3. [Applications] (アプリケーション) セクションで、[CloudFormation stacks] (CloudFormation スタック) を選択します。

  4. [Template library] (テンプレートライブラリ) を選択し、[ Create template] (テンプレートの作成) を選択するか、既存のテンプレートを選択して[Actions] (アクション)、[Clone] (クローン作成) の順に選択します。

  5. [Name] (名前) には、テンプレートが作成するリソース、もしくはスタックの目的を識別しやすくするテンプレートの名前を入力します。

  6. (オプション) [Version name] (バージョン名) には、テンプレートのバージョンを識別する名前または番号を入力します。

  7. (オプション) [Description] (説明) には、このテンプレートに関する情報を入力します。

  8. [Code editor] (コードエディタ) セクションで、[YAML] または [JSON] をクリックし、テンプレートコードを入力するか、コピーして貼り付けます。

  9. (オプション) [Tags] (タグ) セクションで、テンプレートにタグキーの名前/値ペアを 1 つ、または複数適用します。

  10. (オプション) [Permissions] (アクセス許可) セクションで、AWS アカウント ID を入力し、[Add acount] (アカウントの追加) を選択します。このアクションで、テンプレートに読み取りのアクセス許可を付与します。アカウント所有者はテンプレートのプロビジョニングとクローン作成ができますが、テンプレートの編集や削除はできません。

  11. [Create] を選択します。テンプレートは、Systems Manager (SSM) ドキュメントサービスに保存されます。

Application Manager (コマンドライン) で CloudFormation テンプレートを作成

JSON または YAML で CloudFormation のテンプレートのコンテンツを作成したら、AWS Command Line Interface (AWS CLI) または AWS Tools for PowerShell を使用して、テンプレートを SSM ドキュメントとして保存します。各リソースプレースホルダーの例をユーザー自身の情報に置き換えます。

開始する前に

まだ AWS CLI または AWS Tools for PowerShell をインストールして設定していない場合は、インストールして設定します。詳細については、「AWS CLI の最新バージョンをインストールまたは更新します。」および「AWS Tools for PowerShell のインストール」を参照してください。

Linux & macOS
aws ssm create-document \ --content file://path/to/template_in_json_or_yaml \ --name "a_name_for_the_template" \ --document-type "CloudFormation" \ --document-format "JSON_or_YAML" \ --tags "Key=tag-key,Value=tag-value"
Windows
aws ssm create-document ^ --content file://C:\path\to\template_in_json_or_yaml ^ --name "a_name_for_the_template" ^ --document-type "CloudFormation" ^ --document-format "JSON_or_YAML" ^ --tags "Key=tag-key,Value=tag-value"
PowerShell
$json = Get-Content -Path "C:\path\to\template_in_json_or_yaml | Out-String New-SSMDocument ` -Content $json ` -Name "a_name_for_the_template" ` -DocumentType "CloudFormation" ` -DocumentFormat "JSON_or_YAML" ` -Tags "Key=tag-key,Value=tag-value"

成功すると、コマンドは以下のような応答を返します。

{
    "DocumentDescription": {
        "Hash": "c1d9640f15fbdba6deb41af6471d6ace0acc22f213bdd1449f03980358c2d4fb",
        "HashType": "Sha256",
        "Name": "MyTestCFTemplate",
        "Owner": "428427166869",
        "CreatedDate": "2021-06-04T09:44:18.931000-07:00",
        "Status": "Creating",
        "DocumentVersion": "1",
        "Description": "My test template",
        "PlatformTypes": [],
        "DocumentType": "CloudFormation",
        "SchemaVersion": "1.0",
        "LatestVersion": "1",
        "DefaultVersion": "1",
        "DocumentFormat": "YAML",
        "Tags": [
            {
                "Key": "Templates",
                "Value": "Test"
            }
        ]
    }

テンプレートの編集

以下の手順に従って、Application Manager で CloudFormation テンプレートを編集します。テンプレートの変更は、更新されたテンプレートを使用するスタックをプロビジョニングした後、CloudFormation で行います。

Application Manager で CloudFormation テンプレートを編集するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[Application Manager] を選択します。

  3. [Applications] (アプリケーション) セクションで、[CloudFormation stacks] (CloudFormation スタック) を選択します。

  4. [Template library] (テンプレートライブラリ) を選択します。

  5. テンプレートを選択してから、[Actions] (アクション)、[Edit] (編集) の順に選択します。テンプレートの名前は変更できませんが、他の詳細はすべて変更できます。

  6. [Save] を選択します。テンプレートは、Systems Manager ドキュメントサービスに保存されます。