Zenn Dev Terraform Jp Articles Tf Aws V6 per Resource Region
【Terraform】AWS Provider v6 からはリソースレベルでリージョンを設定できる
- URL: https://zenn.dev/terraform_jp/articles/tf-aws-v6-per-resource-region
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: Terraform AWS Provider v6 beta では、リソース定義に
region属性を直接記述できるようになり、複数リージョンを扱うために provider を複数定義する必要がなくなった。単一 provider 定義のままfor_eachとregion属性を組み合わせることで複数リージョンへの動的なリソース作成も可能になる。resource・data source・ephemeral resource の各ブロックでregion属性が使え、import 時はvpc-00000000@us-east-1のように末尾に@<region>を付加する形式で指定する。beta 期間は 6 週間で、その間にフィードバックを収集しながら正式リリースへ向けて改善が進められる。
詳細
検証バージョン: Terraform AWS Provider v6.0.0-beta1
従来(v5 以前)の問題:
- 異なるリージョンにリソースを作成するにはリージョンごとに provider を alias で定義し、各リソースの
provider属性で明示的に指定する必要があった - provider に対して
for_eachが使えないため、複数リージョンへの動的なリソース作成が困難だった
v6 での変更点:
resource、data、ephemeralブロックにregion属性が追加されたregionを省略した場合は provider に設定されたリージョンがそのまま適用されるregionは単なる属性なのでfor_eachと組み合わせて動的に複数リージョンへリソースを作成できる
import における region 指定:
terraform import aws_vpc.example vpc-00000000@us-east-1- import ブロックでは
id = "vpc-00000000@us-east-1"の形式
設計上の意図(公式コメントより):
- 複数 provider インスタンスのロードを減らしてメモリ使用量を削減する
- provider に
for_eachを持たせるのではなく、単一 provider 定義で完結させる設計方針
一部のメタデータリソースやグローバルリソースには region 属性を設定できない(公式ドキュメント参照)。
v5 から v6 へのアップグレードガイドには破壊的変更が含まれるため事前確認が必要。