

# CloudFormation プライベートレジストリのモジュールの使用
<a name="modules-using"></a>

このトピックでは、CloudFormation テンプレートでモジュールを使用する方法について説明します。モジュールは、テンプレートに追加できるリソースの事前作成されたバンドルと考えてください。

モジュールを使用するには、次の手順を実行してください。
+ **モジュールの登録** – CloudFormation レジストリでモジュールをプライベート拡張機能として登録します。作業している AWS アカウント およびリージョンで登録されていることを確認します。詳細については、「[CloudFormation レジストリの概念](registry-concepts.md)」を参照してください。
+ **テンプレートに含める** – 他のリソースと同様に、モジュールを CloudFormation テンプレートの [Resources](resources-section-structure.md) セクションに追加します。モジュールに必要なプロパティを指定する必要もあります。
+ **スタックの作成または更新** – スタックオペレーションを開始すると、含まれているモジュールを適切なリソースに解決する処理済みテンプレートが CloudFormation によって生成します。
+ **変更のプレビュー** – 変更を行う前に、変更セットを使用して追加または変更されるリソースを確認できます。詳細については、「[変更セットを使用して CloudFormation スタックを更新する](using-cfn-updating-stacks-changesets.md)」を参照してください。

次の例を考えてみましょう。リソースとモジュールの両方を含むテンプレートがあります。テンプレートには、1 つの個別のリソース `ResourceA` とモジュール `ModuleParent` が含まれます。このモジュールには、`ResourceB` および `ResourceC` の 2 つのリソースと、ネストされたモジュール `ModuleChild` が含まれます。`ModuleChild` には、1 つのリソース `ResourceD` が含まれます。このテンプレートからスタックを作成すると、CloudFormation はテンプレートを処理し、モジュールを適切なリソースに解決します。結果のスタックには、`ResourceA`、`ResourceB`、`ResourceC`、`ResourceD` の 4 つのリソースがあります。

![\[スタックオペレーション中、CloudFormation はスタックテンプレートに含まれている 2 つのモジュールを適切な 4 つのリソースに解決します。\]](http://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/images/modules-resource-inclusion.png)


CloudFormation は、スタック内のどのリソースがモジュールから作成されたかを追跡します。この情報は、特定のスタックの [**Events**] (イベント)、[**Resources**] (リソース)、および [**Drifts**] (ドリフト) タブに表示できます。また、変更セットのプレビューにも表示されます。

モジュールはテンプレート内のリソースと区別できます。これは、リソースで使用される一般的な 3 つのパート規則とは対照的に、次の 4 つの部分からなる命名規則に従っているためです。

```
organization::service::use-case::MODULE
```