

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Service Catalog 製品を異なる AWS アカウントと AWS リージョンにコピー
<a name="copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions"></a>

*Sachin Vighe、Santosh Kale (Amazon Web Services)*

## 概要
<a name="copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions-summary"></a>

AWS Service Catalog はリージョナルサービスです。つまり、AWS Service Catalog の[ポートフォリオと製品](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/what-is_concepts.html) は、それらが作成された AWS リージョンでのみ表示されます。新しいリージョンに [AWS Service Catalog ハブ](https://aws.amazon.com/about-aws/whats-new/2020/06/aws-service-catalog-now-supports-sharing-portfolios-across-an-organization-from-a-delegated-member-account/) をセットアップする場合、既存の製品を再作成する必要があり、これには時間がかかる場合があります。

このパターンのアプローチは、ソース AWS アカウントまたはリージョンの AWS Service Catalog ハブからターゲットアカウントまたはリージョンの新しいハブに製品をコピーする方法を説明することで、このプロセスを簡素化するのに役立ちます。AWS Service Catalog のハブとスポークモデルの詳細については、AWS 管理とガバナンスブログの[AWS Service Catalog のハブとスポークモデル：AWS Service Catalog の多数のアカウントへのデプロイと管理を自動化する方法](https://aws.amazon.com/blogs/mt/aws-service-catalog-hub-and-spoke-model-how-to-automate-the-deployment-and-management-of-service-catalog-to-many-accounts/)を参照してください。 

このパターンでは、AWS Service Catalog 製品をアカウント間でコピーしたり、他のリージョンにコピーしたりするのに必要な個別のコードパッケージも用意されています。このパターンを使用することにより、組織は時間を節約し、既存および以前の製品バージョンを新しい AWS Service Catalog ハブで利用できるようにし、手動エラーのリスクを最小限に抑え、複数のアカウントまたはリージョンにわたってアプローチを拡大できます。

**注記**  
このパターンの「*エピック*」セクションでは、製品をコピーするための 2 つのオプションを紹介しています。オプション 1 を使用すると、アカウントをまたいで製品をコピーでき、オプション 2 を使用すると、リージョン間で製品をコピーできます。

## 前提条件と制限事項
<a name="copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント。
+ ソースアカウントまたはリージョンの既存の AWS Service Catalog 製品。
+ 移行先のアカウントまたはリージョンの既存の AWS Service Catalog ハブ。
+ アカウントをまたいで製品をコピーする場合は、製品を含む AWS Service Catalog ポートフォリオを共有してから宛先アカウントにインポートする必要があります。詳細については、AWS Service Catalog ドキュメントの[ポートフォリオの共有とインポート](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing.html) を参照してください。

**機能制限**
+ リージョンまたはアカウント間でコピーする AWS Service Catalog 製品は、複数のポートフォリオに属することはできません。

## アーキテクチャ
<a name="copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions-architecture"></a>

次の図は、移行元アカウントから移行先アカウントへの AWS Service Catalog 製品のコピーを示しています。

![\[リージョン 1 のクロスアカウントロール、リージョン 2 の Lambda 実行ロールおよび Lambda 関数。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/7ede5d17-89eb-4455-928f-6953d145ac9f/images/26738220-1ed2-4f84-911b-3c88e954b60e.png)


 次の図は、ソースリージョンからターゲットリージョンへの AWS Service Catalog 製品のコピーを示しています。

![\[リージョン 2 の Lambda scProductCopy 関数を使用してコピーされた製品。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/7ede5d17-89eb-4455-928f-6953d145ac9f/images/0a936792-3bdc-45c2-ba05-17e828615061.png)


**テクノロジースタック**
+ Amazon CloudWatch
+ AWS Identity and Access Management (IAM)
+ AWS Lambda
+ AWS Service Catalog

**自動化とスケール**

このパターンのアプローチは、受信したリクエストの数やコピーする必要がある AWS Service Catalog 製品の数に応じてスケーリングできる Lambda 関数を使用することでスケーリングできます。このプロパティに関する詳細については、AWS Lambda 開発者ガイドの[AWS Lambda 関数スケーリング](https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.html)を参照してください。

## ツール
<a name="copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions-tools"></a>
+ 「[AWS コマンドラインインターフェイス (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)」は、オープンソースのツールであり、コマンドラインシェルのコマンドを使用して AWS サービスとやり取りすることができます。
+ 「[AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)」は、AWS リソースへのアクセスを安全に管理し、誰が認証され、使用する権限があるかを制御するのに役立ちます。
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
+ [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) では、では、AWS で承認された IT サービスのカタログを一元管理できます。エンドユーザーは、組織によって設定された制約に従って、必要な承認済みの IT サービスのみをすばやくデプロイできます。

**コード**

` cross-account-copy` パッケージ (添付済み) を使用して、アカウント間で AWS Service Catalog 製品をコピーするか、 `cross-region-copy` パッケージ (添付) を使用してリージョン間で製品をコピーできます。

`cross-account-copy` パッケージには以下のファイルが含まれています。
+ `copyconf.properties` — アカウント間で製品をコピーするためのリージョンと AWS アカウント ID パラメータを含む設定ファイル。
+ `scProductCopyLambda.py` — アカウント間で製品をコピーするための Python 関数。
+ `createDestAccountRole.sh` — 宛先アカウントに IAM ロールを作成するスクリプト。
+ `createSrcAccountRole.sh` — ソースアカウントに IAM ロールを作成するスクリプト。
+ `copyProduct.sh` — アカウント間で製品をコピーするための Lambda 関数を作成し、呼び出すスクリプトです。

`cross-region-copy`パッケージには以下のファイルが含まれています。
+ `copyconf.properties` — リージョン間で製品をコピーするためのリージョンと AWS アカウント ID パラメータを含む設定ファイル。
+ `scProductCopyLambda.py` — リージョン間で製品をコピーするための Python 関数。
+ `copyProduct.sh` — IAM ロールを作成し、リージョン間で製品をコピーするための Lambda 関数を作成して呼び出すスクリプト。

## エピック
<a name="copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions-epics"></a>

### オプション 1 — アカウント間で AWS Service Catalog 製品をコピー
<a name="option-1-ndash-copy-aws-service-catalog-products-across-accounts"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
|  設定ファイルを作成します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions.html) | AWS 管理者、クラウド管理者、AWS システム管理者 | 
| ソースアカウントで AWS CLI の認証情報を設定します。 | `aws configure` コマンドを実行して次の値を指定して、宛先アカウントで AWS CLI にアクセスするための認証情報を設定します。<pre>$aws configure <br />AWS Access Key ID [None]: <your_access_key_id> <br />AWS Secret Access Key [None]: <your_secret_access_key> <br />Default region name [None]: Region<br />Default output format [None]:</pre>詳細については、AWS コマンドラインインターフェイスドキュメントの[設定の基本](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html) を参照してください。  | AWS 管理者、クラウド管理者、AWS システム管理者 | 
| ソースアカウントで AWS CLI の認証情報を設定します。 | `aws configure` コマンドを実行して次の値を指定して、ソースアカウントで AWS CLI にアクセスするための認証情報を設定します。 <pre>$aws configure<br />AWS Access Key ID [None]: <your_access_key_id><br />AWS Secret Access Key [None]: <your_secret_access_key><br />Default region name [None]: Region<br />Default output format [None]:</pre>詳細については、AWS コマンドラインインターフェイスドキュメントの[設定の基本](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html) を参照してください。  | AWS 管理者、クラウド管理者、AWS システム管理者 | 
| 宛先アカウントで Lambda 実行ロールを作成します。 | `createDestAccountRole.sh ` 移行先アカウントでスクリプトを実行します。スクリプトには、以下のアクションが含まれます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions.html) | AWS 管理者、クラウド管理者、AWS システム管理者 | 
| ソースアカウントにクロスアカウント IAM ロールを作成します。 | `createSrcAccountRole.sh ` ソースアカウントでスクリプトを実行します。スクリプトには、以下のアクションが実施されます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions.html) | AWS 管理者、クラウド管理者、AWS システム管理者 | 
| 移行先のアカウントで CopyProduct スクリプトを実行します。 |  `copyProduct.sh ` 移行先アカウントでスクリプトを実行します。スクリプトには、以下のアクションが実施されます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions.html) | AWS 管理者、クラウド管理者、AWS システム管理者 | 

### オプション 2 — ソースリージョンからターゲットリージョンに AWS Service Catalog 製品をコピー
<a name="option-2-ndash-copy-aws-service-catalog-products-from-a-source-region-to-a-destination-region"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
|  設定ファイルを作成します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions.html) | AWS 管理者、クラウド管理者、AWS システム管理者 | 
| AWS 認証情報で CLI を設定します。 |  `aws configure` コマンドを実行して次の値を指定して、ソースアカウントで AWS CLI にアクセスするための認証情報を設定します。<pre>$aws configure<br />AWS Access Key ID [None]: <your_access_key_id><br />AWS Secret Access Key [None]: <your_secret_access_key><br />Default region name [None]: Region<br />Default output format [None]:</pre>詳細については、AWS コマンドラインインターフェイスドキュメントの[設定の基本](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html) を参照してください。  | AWS 管理者、クラウド管理者、AWS システム管理者 | 
| CopyProductスクリプトを実行します。 | 移行先リージョンで `copyProduct.sh` スクリプトを実行します。スクリプトには、以下のアクションが実施されます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions.html) | AWS 管理者、クラウド管理者、AWS システム管理者 | 

## 関連リソース
<a name="copy-aws-service-catalog-products-across-different-aws-accounts-and-aws-regions-resources"></a>
+ [Lambda 実行ロールを作成](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) (AWS Lambda ドキュメント)
+ [ラムダ関数を作成](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-awscli.html) (AWS Lambda ドキュメント)
+ [AWS Service Catalog API リファレンス](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_Operations_AWS_Service_Catalog.html)
+ [AWS Service Catalog ドキュメント](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/what-is_concepts.html)

## アタッチメント
<a name="attachments-7ede5d17-89eb-4455-928f-6953d145ac9f"></a>

このドキュメントに関連する追加コンテンツにアクセスするには、[attachment.zip](samples/p-attach/7ede5d17-89eb-4455-928f-6953d145ac9f/attachments/attachment.zip) ファイルを解凍してください。