こんなこと言ってもらったので。 StateはTerraformが管理しているリソースの現在の状態を表すやつね。
良いと思います。
— rokuo (@rokuosan_dev) 2025年3月22日
ついでにR2でState管理できると良いと思います。
やる。はじめに適当にCloudflare R2にバケットを作成しておくこと。
バックエンドの追加
provider.tfのterraformブロック内に下記内容を追記する。
terraform { backend "s3" { bucket = "バケット名" key = "states/test-terraform/terraform.tfstate" region = "auto" skip_credentials_validation = true skip_metadata_api_check = true skip_region_validation = true skip_requesting_account_id = true skip_s3_checksum = true use_path_style = true } } provider "cloudflare" { }
R2 APIトークンの設定
APIトークン(S3でいうアクセスキー)を環境変数にいれる。 APIトークンは「Cloudflare>R2>API>APIトークンの管理」から取得できる。
$ export AWS_ACCESS_KEY_ID='アクセス キー ID' $ export AWS_SECRET_ACCESS_KEY='シークレット アクセス キー' $ export AWS_ENDPOINT_URL_S3='S3クライアントのエンドポイント'
R2へのStateの引っ越し
下記コマンドでbackendをR2に変更する。
$ terraform init -reconfigure
これで完成。
参考
ほぼこれのまんま。