前置準備
Terraform 要佈署 AWS 環境需要準備幾項作業:
- State Storage:
S3 bucket
- State Locking:
DynamoDB
- IAM User 權限 (AdministratorAccess)
既然是佈署 AWS 選的就是 S3 Backend,然而我不建議把 Backend 由 Terraform 納管,避免 Terraform 誤刪 S3 bucket。
State Storage
建立 S3 bucket 要注意幾點功能建議開啟
- Versioning
- Object-level logging
命名規則必須不重複,也可以拿 Account-ID 來做為 Bucket name (ex. terraform-ap-northeast-1-0123456789)
State Locking
S3 Backend 的 Locking 採用 DynamoDB,
- Primary key:LockID
- Type:String
- Capacity reads:1
- Capacity writes:1
Capacity 設為最低消費 1 就好,同時僅有 1 個執行 terraform。