インポートオペレーションを元に戻す - AWS CloudFormation

インポートオペレーションを元に戻す

インポートオペレーションを元に戻すには、テンプレートから削除するリソースの Retain 削除ポリシーを指定して、スタックから削除するときにそのリソースが保持されるようにします。

AWS Management Console を使用してインポートオペレーションを元に戻す

  1. スタックから削除するリソースの Retain DeletionPolicy を指定します。次のテンプレート例では、GamesTable はこの元に戻すオペレーションのターゲットです。

    例 JSON
    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } }, "GamesTable": { "Type": "AWS::DynamoDB::Table", "DeletionPolicy": "Retain", "Properties": { "TableName": "Games", "AttributeDefinitions": [ { "AttributeName": "key", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "key", "KeyType": "HASH" } ], "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 1 } } } } }
  2. CloudFormation コンソールを開き、スタック更新を実行して削除ポリシーを適用します。

    1. [スタック] ページで、スタックを選択した状態で [更新] を選択し、[Update stack (standard) (スタックを更新(標準))] を選択します。

    2. [テンプレートを準備] で、[現在のテンプレートを置換] を選択します。

    3. [Specify template (テンプレートを指定)] の下にある GamesTable で、DeletionPolicy 属性により更新されたソーステンプレートを指定し、[次へ] を選択します。

      • [Amazon S3 URL] を選択し、テキストボックスで更新されたソーステンプレートの URL を指定します。

      • [Upload a template file (テンプレートファイルのアップロード)] を選択し、更新されたソーステンプレートファイルを参照します。

    4. [Specify stack details (スタック詳細の指定)] ページでは、変更の必要はありません。[Next] を選択します。

    5. [スタックオプションの設定] ページでは、変更の必要はありません。[Next] を選択します。

    6. [MyStack を確認] ページで、変更内容を確認します。テンプレートに IAM リソースが含まれる場合は、[I acknowledge that this template may create IAM resources (このテンプレートが IAM リソースを作成する可能性を認識しています)] を選択して、テンプレート内の IAM リソースを使用することを指定します。詳細については、「CloudFormation テンプレートでの IAM リソースの承認」を参照してください。次に、変更セットを作成してソーススタックを更新するか、ソーススタックを直接更新します。

  3. スタックテンプレートからリソース、関連するパラメータ、および出力を削除します。この例では、テンプレートは次のようになります。

    例 JSON
    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } } } }
  4. ステップ 2 を繰り返して、リソース (GamesTable) とそれに関連するパラメータと出力をスタックから削除します。

AWS CLI を使用してインポートオペレーションを元に戻す

  1. スタックから削除するリソースの Retain DeletionPolicy を指定します。次のテンプレート例では、GamesTable はこの元に戻すオペレーションのターゲットです。

    例 JSON
    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } }, "GamesTable": { "Type": "AWS::DynamoDB::Table", "DeletionPolicy": "Retain", "Properties": { "TableName": "Games", "AttributeDefinitions": [ { "AttributeName": "key", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "key", "KeyType": "HASH" } ], "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 1 } } } } }
  2. スタックを更新して、削除ポリシーをリソースに適用します。

    aws cloudformation update-stack --stack-name MyStack
  3. スタックテンプレートからリソース、関連するパラメータ、および出力を削除します。この例では、テンプレートは次のようになります。

    例 JSON
    { "AWSTemplateFormatVersion": "2010-09-09", "Description": "Import test", "Resources": { "ServiceTable":{ "Type":"AWS::DynamoDB::Table", "Properties":{ "TableName":"Service", "AttributeDefinitions":[ { "AttributeName":"key", "AttributeType":"S" } ], "KeySchema":[ { "AttributeName":"key", "KeyType":"HASH" } ], "ProvisionedThroughput":{ "ReadCapacityUnits":5, "WriteCapacityUnits":1 } } } } }
  4. スタックを更新して、リソース (GamesTable) とそれに関連するパラメータと出力をスタックから削除します。

    aws cloudformation update-stack --stack-name MyStack