Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

スタックリファクタリング

フォーカスモード
スタックリファクタリング - AWS CloudFormation

スタックリファクタリングにより、既存のリソースプロパティおよびデータを維持しながら、CloudFormation スタックのリソースの再編成が簡素化されます。スタックリファクタリングを使用すると、スタック間でリソースを移動したり、モノリシックスタックを小さなコンポーネントに分割したり、複数のスタックを 1 つに統合したりできます。

スタックリファクタリングの仕組み

スタックのリファクタリングを計画する際、以下のステップを検討してください。

  1. 現在のインフラストラクチャを評価する: 既存の CloudFormation スタックおよびリソースを確認し、スタックのリファクタリング機会を特定します。

  2. リファクタリングを計画する: リソースの整理方法を定義します。依存関係、命名規則、運用上の制限を検討してください。後に CloudFormation の検証に影響する可能性があります。

    リソースをリファクタリングする送信先スタックの数を決定します。リソースは、2 から 5 つまでのスタック間で移動できます。リソースはネストされたスタック間で移動できます。

  3. テンプレートを更新する: テンプレート間でリソース定義を移動するなど、計画された変更を反映するために CloudFormation テンプレートを変更します。リファクタリング中に論理 ID の名前を変更できます。

  4. スタックリファクタリングを作成する: リファクタリングするスタック名およびテンプレートのリストを指定します。

  5. インフラストラクチャに対するリファクタリングの影響を確認し、競合を解決する: CloudFormation は指定したテンプレートを検証し、クロススタックの依存関係、タグ更新の問題があるリソースタイプ、リソース論理 ID の競合をチェックします。

    検証が成功した場合、CloudFormation はリファクタリングの実行後に発生するリファクタリングアクションのプレビューを生成します。

    検証が失敗した場合、見つかった問題を解決した後に再試行できます。競合がある場合、競合するリソースのソースと送信先を示すリソース論理 ID のマッピングを指定する必要があります。

  6. リファクタリングを実行する: 変更がスタックのリファクタリング方法と一致していることを確認したら、スタックリファクタリングを実行します。

  7. モニタリング: スタックリファクタリングが正常に実行されていることを確認するには、ExecutionStatus でステータスを確認します。

スタックリファクタリングの制限

スタックリファクタリングを計画する際、次の制限事項を考慮してください。

  • リファクタリングオペレーションでは、新しいリソース作成、リソース削除、リソース設定の変更が許可されません。

  • スタックのリファクタリング中、新しいパラメータ、条件、マッピングを変更または追加することはできません。考えられる回避策は、リファクタリングを実行する前にスタックを更新することです。

  • 同じリソースを複数のスタックにリファクタリングすることはできません。

  • 新しいスタックが特定の擬似パラメータ (例えば、AWS::StackName) を使用している場合、リソースをそのスタックにリファクタリングすることはできません。

  • CloudFormation は空のスタックをサポートしていません。スタック内の既存リソースをすべて削除するスタックリファクタリングを作成する場合は、事前にそのスタックにリソースを追加されている必要があります。このリソースは、waitCondition リソースタイプのような単純なリソースでも構いません。

  • 次のリソースは利用できません。

    • AWS::AppConfig::Extension

    • AWS::AppConfig::ExtensionAssociation

    • AWS::BackupGateway::Hypervisor

    • AWS::DataBrew::Dataset

    • AWS::DataBrew::Job

    • AWS::DataBrew::Project

    • AWS::DataBrew::Recipe

    • AWS::DataBrew::Ruleset

    • AWS::DataBrew::Schedule

    • AWS::FIS::ExperimentTemplate

    • AWS::MSK::ServerlessCluster

    • AWS::Omics::AnnotationStore

    • AWS::Omics::ReferenceStore

    • AWS::Omics::SequenceStore

    • AWS::OpenSearchServerless::Collection

    • AWS::WAFv2::IPSet

    • AWS::WAFv2::RegexPatternSet

    • AWS::WAFv2::RuleGroup

    • AWS::WAFv2::WebACL

    • AWS::SageMaker::DataQualityJobDefinition

    • AWS::SageMaker::FeatureGroup

    • AWS::SageMaker::ModelBiasJobDefinition

    • AWS::SageMaker::ModelExplainabilityJobDefinition

    • AWS::SageMaker::ModelQualityJobDefinition

AWS Command Line Interface を使用したスタックのリファクタリング

次のコマンドは、スタックのリファクタリングに使用されます。

以下の内容は、AWS Command Line Interface (CLI) を使用してスタックをリファクタリングする方法の例です。

  1. まず、リファクタリングする CloudFormation テンプレートが必要です。次のコマンドはテンプレートを取得します。

    aws cloudformation get-template --stack-name ExampleStack1

    テンプレートを取得したら、選択した統合開発環境 (IDE) を使用して、目的の構造およびリソース組織を使用するようにテンプレートを更新します。

  2. create-stack-refactor コマンドを使用してスタックリファクタリングを作成し、リファクタリングに関係する各スタックのスタック名とテンプレートを指定します。

    aws cloudformation create-stack-refactor \ --stack-definitions \ StackName=MySns,TemplateBody@=file://afterSns.yaml \ StackName=MyLambdaSubscription,TemplateBody@=file://afterLambda.yaml \ --enable-stack-creation \ --resource-mappings file://refactor.json

    --resource mappings パラメータはオプションですが、テンプレートの検証中に競合が検出された場合は必要になります。Source および Destination スタックを提供するだけではなく、LogicalResourceId も指定する必要があります。

    この例では、作成された StackRefactorIdstack-refactor-1ab2-c34d-5ef6 です。

  3. リファクタリングを作成したら、CloudFormation はリファクタリング変更プレビューを生成します。これにより、提案された変更がインフラストラクチャに与える影響をプレビューできます。次のコマンドを使用して変更をプレビューします。

    aws cloudformation list-stack-refactor-actions \ --stack-refactor-id stack-refactor-1ab2-c34d-5ef6
  4. 変更を見直して確認したら、execute-stack-refactor コマンドを使用してリファクタリングプロセスを完了します。

    aws cloudformation execute-stack-refactor \ --stack-refactor-id stack-refactor-1ab2-c34d-5ef6
  5. execute-stack-refactor を実行したら、次のコマンドを使用してオペレーションのステータスをモニタリングできます。

    aws cloudformation describe-stack-refactor \ --stack-refactor-id stack-refactor-1ab2-c34d-5ef6

    CloudFormation は、リファクタリングオペレーションの Status および ExecutionStatus を自動的に更新します。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.