Skip to content

np0cham/terraform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform (マルチルート)

このワークスペースには4つのルートモジュールがあります:

  • backend-resources/ : Terraform backend用のS3 + DynamoDB
  • rds/ : AWS RDS + ネットワーク
  • zerotrust/ : Cloudflare Zero Trust(Tunnel)
  • ecs-cloudflared/ : ECS Fargate上のCloudflaredクライアント

使い方

  1. backend-resources を先に適用してS3/DynamoDBを作成
cd backend-resources
cp terraform.tfvars.example terraform.tfvars
# terraform.tfvars を編集(state_bucket_name を一意な名前に変更)
terraform init
terraform apply
cd ..
  1. backend.tf を自動生成
./setup-backends.sh
  1. tfvarsのサンプルをコピーしてシークレットを記入
  • rds/terraform.tfvars.examplerds/terraform.tfvars
  • zerotrust/terraform.tfvars.examplezerotrust/terraform.tfvars
  1. RDS ルートを適用
cd rds
terraform init
terraform apply
  1. Zero Trust ルートを適用
cd zerotrust
terraform init
terraform apply
  1. ECS Cloudflared ルートを適用
cd ecs-cloudflared
cp terraform.tfvars.example terraform.tfvars
# terraform.tfvars を編集(tunnel_token を Cloudflare Dashboard から取得)
terraform init
terraform apply

注意事項

  • トークン/シークレットは terraform.tfvars に記入(Gitにはコミットしない)。
  • S3 backendは各ルートの backend.tf で設定(bucket/key/region等を直接記入)。
  • zerotrust はドメイン不要の Tunnel + プライベートネットワークルート(WARP)を作成。
  • ecs-cloudflared は RDS VPC内の Private Subnet にFargateタスクを配置し、cloudflaredを実行。
  • tunnel_token は Cloudflare Dashboard → Zero Trust → Networks → Tunnels から取得。
  • zerotrustterraform_remote_state で RDS の outputs を参照(S3 backend)。
  • zerotrust/terraform.tfvarsrds_state_bucket / rds_state_key / rds_state_region を設定。
  • db_password は RDS ルートで自動生成し、sensitive output として出力。
  • RDS の認証情報は Secrets Manager に保存し、db_secret_arn として出力(Amplify で利用可能)。
  • RDS ストレージ暗号化と IAM DB 認証はデフォルトで有効。
  • db_engine_version が未設定の場合、最新バージョンが自動選択される。

About

Terraformちゃむよ〜〜!!!!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors