Open2
Terraform Cloud のremote backendをTerraform CloudからS3に移す
諸々の事情からバックエンドをS3に移したのでその記録。
他の人が使わないようにロックしてからやったほうが安全
1. Terraform Cloudの管理画面からダウンロードする
- Projects & workspaces > [プロジェクト名] > States で一覧表示
- 一番上の New state を選択
- Download で保存
2. S3バケットを作成し保存したキーを保存
- S3コンソールなどからバケット作成
- バージョニング有効にしておく
- 1 でDownloadしたファイルをおく (xxxx.tfstate)
3. terraform ブロックを書き換え
bucket: my-terraform-bucket, key: latest-state.tfstate とした例
main.tf
terraform {
backend "s3" {
bucket = "my-terraform-bucket"
key = "latest-state.tfstate"
region = "ap-northeast-1"
}
}
4. terraformの設定を再初期化
ここで terraform init をすると次のようなエラーになる
Initializing the backend...
Migrating from Terraform Cloud to backend "s3".
│ Error: Migrating state from Terraform Cloud to another backend is not yet implemented.
│
│ Please use the API to do this: https://www.terraform.io/docs/cloud/api/state-versions.html
│
reconfigure optionを指定するとbackendを再設定できる
terraform init -reconfigure
5. planして差分がないことを確認
terraform plan
環境変数で、AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY は渡してね