

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

# コミュニティモジュールのベストプラクティス
<a name="community"></a>

モジュールを効果的に使用することは、複雑な Terraform 設定を管理し、再利用を促進する上で重要です。このセクションでは、コミュニティモジュール、依存関係、ソース、抽象化、貢献に関するベストプラクティスについて説明します。

**Topics**
+ [コミュニティモジュールの検出](#discovery)
+ [依存関係を理解する](#dependencies)
+ [信頼できるソースを使用する](#trusted-sources)
+ [コミュニティモジュールへの貢献](#contribute-community)

## コミュニティモジュールの検出
<a name="discovery"></a>

[Terraform Registry ](https://registry.terraform.io/namespaces/terraform-aws-modules)、、およびその他のソースで[GitHub](https://github.com/terraform-aws-modules)、新しい AWS モジュールを構築する前にユースケースを解決する可能性のある既存のモジュールを検索します。最近の更新があり、アクティブにメンテナンスされている一般的なオプションを探します。

### カスタマイズに変数を使用する
<a name="customization"></a>

コミュニティモジュールを使用する場合は、ソースコードを強制または直接変更するのではなく、変数を通じて入力を渡します。モジュールの内部を変更する代わりに、必要に応じてデフォルトを上書きします。

フォークは、より広範なコミュニティに役立つように、元のモジュールに修正や機能を提供することに限定する必要があります。

## 依存関係を理解する
<a name="dependencies"></a>

モジュールを使用する前に、ソースコードとドキュメントを確認して依存関係を特定します。
+ **必要なプロバイダー：** モジュールが必要とする AWS、Kubernetes、またはその他のプロバイダーのバージョンを書き留めます。
+ **ネストされたモジュール **: カスケード依存関係を導入する内部で使用されている他のモジュールを確認します。
+ **外部データソース**: モジュールが依存する APIsカスタムプラグイン、またはインフラストラクチャの依存関係を書き留めます。

直接依存関係と間接依存関係の完全なツリーをマッピングすることで、 モジュールを使用する際の予期しない事態を回避できます。

## 信頼できるソースを使用する
<a name="trusted-sources"></a>

未検証または未知のパブリッシャーから Terraform モジュールを調達すると、重大なリスクが生じます。信頼できるソースからのモジュールのみを使用してください。
+  AWS や HashiCorp パートナーなどの検証済み作成者によって公開される [Terraform Registry](https://registry.terraform.io/namespaces/terraform-aws-modules) の認定モジュールを優先します。
+ カスタムモジュールの場合は、モジュールが自分の組織からのものである場合でも、パブリッシャーの履歴、サポートレベル、使用状況の評価を確認します。

不明なソースや未検証のソースからモジュールを許可しないことで、コードに脆弱性やメンテナンスの問題が挿入されるリスクを軽減できます。

### の通知のサブスクライブ
<a name="subscribe"></a>

信頼できるパブリッシャーからの新しいモジュールリリースの通知をサブスクライブします。
+  GitHub モジュールリポジトリを監視して、モジュールの新しいバージョンに関するアラートを取得します。
+ パブリッシャーブログと変更ログの更新をモニタリングします。
+ 更新を暗黙的にプルするのではなく、検証済みで評価の高いソースから新しいバージョンに関する事前通知を取得します。

信頼できるソースからのみモジュールを消費し、変更をモニタリングすることで、安定性とセキュリティが確保されます。ベッティングモジュールは、サプライチェーンのリスクを最小限に抑えながら生産性を向上させます。

## コミュニティモジュールへの貢献
<a name="contribute-community"></a>

でホストされているコミュニティモジュールの修正と機能強化を送信します GitHub。
+ モジュールでプルリクエストを開き、使用時に発生した欠陥や制限に対処します。
+ 問題を作成して、新しいベストプラクティス設定を既存の OSS モジュールに追加するようリクエストします。

コミュニティモジュールへの貢献により、すべての Terraform 実務者にとって再利用可能な体系的なパターンが強化されます。