

# モジュールのバージョニングの概要
<a name="module-versioning"></a>

CloudFormation レジストリは、AWS アカウント およびリージョン内で使用するモジュールの登録および管理ができるリポジトリとして機能します。アカウントおよびリージョン内で AWS、サードパーティーのパブリッシャー、独自のカスタム拡張機能など、さまざまなソースからモジュールを登録できます。詳細については、「[CloudFormation レジストリによる拡張機能の管理](registry.md)」を参照してください。

モジュールには異なるバージョンが存在する場合もあるため、使用するモジュールのバージョンを指定できます。このバージョニング機能は、モジュールに依存する既存のスタックを壊さずにモジュールを更新または変更する必要があるときには特に便利です。

複数のバージョンのモジュールを使用するとき、次の点に注意してください。
+ スタックオペレーション中、CloudFormation は、スタックオペレーションが実行されている AWS アカウント およびリージョンで、デフォルトバージョンとして現在登録されているモジュールのバージョンを使用します。これには、他のモジュールにネストされているモジュールも含まれます。

  したがって、異なるアカウントまたはリージョンで、同じモジュールの異なるバージョンをデフォルトバージョンとして登録している場合、同じテンプレートを使用しても異なる結果になる可能性があることに注意してください。
+ スタックオペレーション中、CloudFormation は、スタックオペレーションが実行されている AWS アカウント およびリージョンで、デフォルトバージョンとして現在登録されているリソースのバージョンを使用します。これには、モジュールを含めることによって生成されたリソースが含まれます。
+ モジュールのデフォルトバージョンを変更しても、スタックの更新オペレーションは開始されません。ただし、次にそのモジュールを含むテンプレート (スタックの更新など) でスタックオペレーションを実行すると、CloudFormation は新しいデフォルトバージョンをオペレーションで使用します。

  これに関する例外の 1 つは、以下で説明するように、[**use previous template**] オプションを指定してスタックの更新を実行することです。
+ スタックの更新オペレーションで、[**use previous template**] (以前のテンプレートを使用) オプションを指定すると、CloudFormation はスタック更新のために以前に処理されたテンプレートを使用し、モジュールに加えた変更については再処理しません。
+ 一貫した結果を保証するには、スタックセットで使用するスタックテンプレートにモジュールを含める場合、スタックインスタンスのデプロイを考えているすべてのアカウントおよびリージョンで、同じバージョンのモジュールがデフォルトバージョンとして設定されていることを確認してください。これは、他のモジュールにネストされているモジュールの場合を含みます。詳細については、「[StackSets を使用したアカウントとリージョン全体でのスタックの管理](what-is-cfnstacksets.md)」を参照してください。

## サードパーティーのパブリックモジュールのアクティブ化における要件
<a name="requirements-for-modules"></a>

アカウントおよびリージョンでサードパーティのパブリックモジュールを正常にアクティブ化するには、モジュールに含まれる各サードパーティのパブリック拡張機能 (リソースまたはモジュール) に対して次の事項が当てはまる必要があります。
+ **拡張機能のアクティブ化** – 拡張機能は、使用するアカウントおよびリージョンでアクティブ化する必要があります。詳細については、「[CloudFormation レジストリからサードパーティーのパブリック拡張を使用する](registry-public.md)」を参照してください。
+ **エイリアス登録** – モジュール内のエクステンションがタイプ名のエイリアスを使用する場合、エクステンションは同じタイプ名のエイリアスを使用してアカウントおよびリージョンに登録する必要があります。詳細については、「[拡張を参照するエイリアスを使用する](registry-public.md#registry-public-enable-alias)」を参照してください。
+ **バージョン互換性** – 現在アクティブ化されているエクステンションのバージョンは、モジュールで指定されているエクステンションのサポートされているメジャーバージョンのいずれかである必要があります。

適切なサードパーティのパブリック拡張機能および拡張機能のバージョンがアクティブ化されていない場合、CloudFormation はオペレーションに失敗し、モジュールを正常にアクティブ化する前にアクティブ化する必要がある拡張機能およびバージョンを一覧表示したエラーが表示されます。