コンテンツにスキップ
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_eachregion 属性を組み合わせることで複数リージョンへの動的なリソース作成も可能になる。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 での変更点:

  • resourcedataephemeral ブロックに 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 へのアップグレードガイドには破壊的変更が含まれるため事前確認が必要。