概要
- terraformを利用し、AWSマルチリージョンでリソースを作成したい
- 別リージョンでmoduleを作成したい
このあたり、必要になるたびにググっているので備忘録として。
AWSリージョンの定義
provider "aws" { profile = "default" region = "ap-northeast-1" } provider "aws" { profile = "default" region = "us-east-1" alias = "virginia" }
このように、マルチリージョンごとに定義を記載する
data, resource等を別リージョンで宣言する場合
provider
を記載してやればOK
data "aws_acm_certificate" "virginia" { domain = "domain.name" provider = aws.virginia }
moduleを別リージョンで宣言する場合
こちらもproviders
を記載してやる
module "my_module" { source = "./path/to/module" hoge = "fuga" providers = { aws = aws.virginia } }
さらにmoduleにrequired_providers
を記載してやる
terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 3.27" } } }
上記記載をmodule内のどこかのファイルに記載してやればOK