# FAQ

## 使用を検討すべきツールは何ですか？

* [**Terragrunt**](https://terragrunt.gruntwork.io/) - オーケストレーションツール
* [**tflint**](https://github.com/terraform-linters/tflint) - コードリンター
* [**tfenv**](https://github.com/tfutils/tfenv) - バージョンマネージャー
* [**asdf-hashicorp**](https://github.com/asdf-community/asdf-hashicorp) - [asdf](https://github.com/asdf-vm/asdf)バージョンマネージャー用のHashiCorpプラグイン
* [**Atlantis**](https://www.runatlantis.io/) - プルリクエストの自動化
* [**pre-commit-terraform**](https://github.com/antonbabenko/pre-commit-terraform) - [pre-commitフレームワーク](https://pre-commit.com/)で使用するTerraform用のGitフックコレクション
* [**Infracost**](https://www.infracost.io) - プルリクエストでのTerraformのクラウドコスト見積もり。Terragrunt、Atlantis、pre-commit-terraformとも連携可能。

## モジュールの[ディペンデンシーヘル](https://en.wikipedia.org/wiki/Dependency_hell)に対する解決策は何ですか？

リソースとインフラモジュールのバージョンは指定されるべきです。プロバイダーはモジュールの外部で、コンポジション内でのみ設定されるべきです。プロバイダーとTerraformのバージョンもロックすることができます。

マスターとなる依存関係管理ツールは存在しませんが、依存関係の指定をより問題の少ないものにするためのヒントがいくつかあります。例えば、[Dependabot](https://dependabot.com/)を使用して依存関係の更新を自動化することができます。Dependabotは、依存関係を安全かつ最新の状態に保つためのプルリクエストを作成します。DependabotはTerraformの設定をサポートしています。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.terraform-best-practices.com/ja/faq.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
