AWS CloudFormation を使用して、ある AWS アカウントから別のアカウントにリソースをプロビジョニングしたいと考えています。
簡単な説明
CloudFormation を使用して宛先アカウントにリソースを作成するには、指定されたリソースを定義する YAML または JSON 形式の CloudFormation テンプレートが必要です。CloudFormation テンプレートの準備ができたら、宛先アカウントのテンプレートを使用してスタックを作成し、指定されたリソースをプロビジョニングします。
ソースアカウントに手動でプロビジョニングされたリソースについては、CloudFormation IaC ジェネレーターを使用してソースアカウントテンプレートを生成します。次に、そのテンプレートを使用して宛先アカウントのスタックテンプレートのリソースを定義します。
解決策
IaC ジェネレーターを使用してソースアカウントテンプレートを作成する
注: 以下の手順は、IaC ジェネレーターがサポートする手動でプロビジョニングされたリソースを対象としています。IaC ジェネレーターは、AWS リージョンで AWS Cloud Control API をサポートするリソースタイプのみをサポートします。
次の手順を実行します。
- ソースアカウントで、CloudFormation コンソールを開きます。
- ナビゲーションペインで [IaC ジェネレーター] を選択します。次に、[新しいスキャンの開始] を選択します。
注: スキャン時間は、所有しているリソースの数によって変わります。1,000 リソースでは最大 10 分かかる場合があります。
- [テンプレートを作成] を選択します。
- [テンプレートの詳細を指定] ページで [前提条件 - テンプレートの準備] セクションで、[新しいテンプレートから開始] を選択し、[テンプレートの詳細を指定] セクションを更新します。
- [次へ] を選択します。
- [スキャンされたリソースを追加] ページで、コピーするリソースを選択したら [次へ] を選択します。
- [関連リソースを追加] ページでコピーする関連リソースを追加し、[次へ] を選択します。
- [確認と作成] ページで、[テンプレートを作成] を選択し、[ダウンロード] を選択します。
宛先アカウントテンプレートの作成
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
ソースアカウントテンプレートを生成したら、そのテンプレートを参考にして宛先アカウントテンプレートを作成します。ソースアカウントテンプレートの共通リソースのプロパティを、宛先アカウントテンプレートに必ずコピーしてください。
ソースアカウントテンプレートを参照して宛先アカウントテンプレートを作成する場合は、次の操作を行います。
- テンプレートは、ソースアカウントとプロパティ値から、グローバルに一意の ARN で構成されている場合があります。宛先アカウントのユースケースに基づいて、テンプレートから ARN またはプロパティを変更し、定義します。
- リソースプロパティや論理 ID などのテンプレートの属性を変更し、ユースケース用のパラメータを作成します。
- IaC ジェネレーターがサポートしていないリソースについては、リソースの AWS CLI コマンドを実行してリソースの詳細を確認します。出力では、リソース設定プロパティを特定し、CloudFormation リソースタイプリファレンスを参考にリソースを定義します。
移行先アカウントに CloudFormation スタックを作成する
CloudFormation テンプレートが指定したリソースの設定プロパティで使用できるようになったら、宛先アカウントにスタックを作成してリソースをプロビジョニングします。リソースを複数のスタックにグループ化すると、リソースをより適切に管理できます。