

# IaC ジェネレーターを使用して既存のリソースからテンプレートを生成する
<a name="generate-IaC"></a>

IaC ジェネレーター (Infrastructure as Code ジェネレーター) では、まだ CloudFormation の管理対象になっていないアカウントにプロビジョニングされた AWS リソースを使用してテンプレートを生成することができます。

IaC ジェネレーターの利点は次のとおりです。
+ CloudFormation 管理でアプリケーション全体を使用するか、AWS CDK アプリに移行します。
+ プロパティでリソースプロパティを記述することなくテンプレートを生成し、それを JSON または YAML 構文に変換します。
+ 新しいアカウントかリージョンにリソースをレプリケートするときは、こちらのテンプレートを使用します。

IaC 生成プロセスは、以下のステップで構成されています。

1. **リソースのスキャン** – 最初のステップは、リソースのスキャンを開始することです。このスキャンはリージョン全体で実行され、30 日後に失効します。この間、同じスキャンから複数のテンプレートを作成できます。

1. **テンプレートの作成** – テンプレートを作成するには、次の 2 つのオプションがあります。
   + 新しいテンプレートを最初から作成し、スキャンしたリソースと関連リソースをそこに追加します。
   + 既存の CloudFormation スタックを開始点として使用して、スキャンされたリソースと関連リソースをそのテンプレートに追加します。

1. **リソースのインポート** – テンプレートを使用して、リソースを CloudFormation スタックとしてインポートするか、AWS CDK アプリに移行します。

IaC ジェネレーターの機能は、すべての商用リージョンで利用可能で、多くの一般的な AWS リソースタイプをサポートしています。サポートされているリソースの一覧については、「[リソースタイプのサポート](resource-import-supported-resources.md)」を参照してください。

**Topics**
+ [考慮事項](#iac-generator-considerations)
+ [リソースのスキャンに必要な IAM アクセス許可](#iac-generator-permissions)
+ [テンプレートの生成、管理、削除によく使用されるコマンド](#iac-generator-commonly-used-commands)
+ [テンプレートを AWS CDK に移行する](#iac-generator-cdk-migrate)
+ [CloudFormation IaC ジェネレーターを使用してリソーススキャンを開始する](iac-generator-start-resource-scan.md)
+ [CloudFormation コンソールでスキャンの概要を表示する](generate-IaC-view-scan-summary.md)
+ [IaC ジェネレーターを使用してスキャンされたリソースから CloudFormation テンプレートを作成する](iac-generator-create-template-from-scanned-resources.md)
+ [スキャンしたリソースから CloudFormation スタックを作成する](iac-generator-create-stack-from-scanned-resources.md)
+ [書き込み専用プロパティを解決する](generate-IaC-write-only-properties.md)

## 考慮事項
<a name="iac-generator-considerations"></a>

読み取り権限のある AWS リソースであれば、JSON テンプレートまたは YAML テンプレートを生成できます。IaC ジェネレーターの機能のテンプレートは、リソースプロパティをプロパティごとに記述することなく、クラウドリソースを確実かつ迅速にモデル化します。

次の表は、IaC の生成機能に使用できるクォータの一覧です。


| 名前 | フルスキャン | 部分スキャン | 
| --- | --- | --- | 
|  1 回のスキャンで処理できるリソースの最大数  |  100,000  |  100,000  | 
|  1 日あたりのスキャン数 (スキャンするリソースの数が 10,000 未満の場合)  |  10  |  10  | 
|  1 日あたりのスキャン数 (スキャンするリソースの数が 10,000 以上の場合)  |  1  |  1  | 
|  アカウントあたりの同時に生成されるテンプレートの数  |  5  |  5  | 
|  1 回のテンプレート生成で同時にモデル化されるリソースの数  |  5  |  5  | 
|  1 つのテンプレートでモデル化できるリソースの合計数  |  500  |  500  | 
|  生成されたテンプレートのアカウントあたりの最大数  |  1,000  |  1,000  | 

**重要**  
IaC ジェネレーターは、お使いのリージョンの Cloud Control API でサポートされている AWS リソースのみをサポートします。詳細については、「[リソースタイプのサポート](resource-import-supported-resources.md)」を参照してください。

## リソースのスキャンに必要な IAM アクセス許可
<a name="iac-generator-permissions"></a>

IaC ジェネレーターでリソースをスキャンするときは、お使いの IAM プリンシパル (ユーザー、ロール、またはグループ) に次のものが必要です。
+ CloudFormation のスキャンのアクセス許可
+ ターゲットの AWS サービスの読み取りアクセス許可

スキャンの範囲は、ユーザーが読み取りアクセス許可を持っているリソースに限られます。アクセス許可がないためにスキャンに失敗することはありませんが、そのようなリソースは除外されます。

スキャンとテンプレート管理のアクセス許可を付与する IAM ポリシーの例については、「[すべての IaC ジェネレーターオペレーションを許可する](security_iam_id-based-policy-examples.md#iam-policy-example-for-iac-generator)」を参照してください。

## テンプレートの生成、管理、削除によく使用されるコマンド
<a name="iac-generator-commonly-used-commands"></a>

IaC ジェネレーターの操作用によく使用されるコマンドには以下が含まれます。
+ [start-resource-scan](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/start-resource-scan.html) - AWS リージョンでアカウント内のリソースのスキャンを開始します。
+ [describe-resource-scan](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-resource-scan.html) - リソーススキャンの進行状況をモニタリングします。
+ [list-resource-scans](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-resource-scans.html) - AWS リージョン内のリソーススキャンを一覧表示します。
+ [list-resource-scan-resources](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-resource-scan-resources.html) - リソーススキャン中に見つかったリソースを一覧表示します。
+  [list-resource-scan-related-resources](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-resource-scan-related-resources.html) - スキャンしたリソースに関連するリソースを一覧表示します。
+ [create-generated-template](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-generated-template.html) - スキャンされたリソースのセットから CloudFormation テンプレートを生成します。
+ [update-generated-template](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-generated-template.html) - 生成されたテンプレートを更新します。
+ [describe-generated-template](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-generated-template.html) - 生成されたテンプレートに関する情報を返します。
+ [list-generated-templates](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-generated-templates.html) - アカウントと現在のリージョンで生成されたすべてのテンプレートを一覧表示します。
+ [delete-generated-template](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/delete-generated-template.html) - 生成されたテンプレートを削除します。

## テンプレートを AWS CDK に移行する
<a name="iac-generator-cdk-migrate"></a>

AWS Cloud Development Kit (AWS CDK) は、一般的なプログラミング言語を使って CloudFormation リソースを開発、管理、デプロイするときに使用できるオープンソースのソフトウェア開発フレームワークです。

AWS CDK CLI は、IaC ジェネレーターとの統合を提供します。CloudFormation テンプレートを変換し、ユーザーのリソースを含む新しい CDK アプリを作成するには、AWS CDK CLI `cdk migrate` コマンドを使用します。その後、AWS CDK を使用してリソースを管理し、CloudFormation にデプロイできます。

詳細については、「AWS Cloud Development Kit (AWS CDK) デベロッパーガイド」の「[Migrate to AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/migrate.html)」を参照してください。