Terraform ステート管理のベストプラクティス¶
原文¶
Terraform ステート管理のベストプラクティス Terraform ステートは強力ですが、誤った管理をするとリスクがあります。適切に扱う方法を以下に示します
- 機密扱いにする ステートファイルにはアカウント ID、ARN、さらにはシークレットが含まれています。Git...
要約¶
Terraformのステートファイルはインフラの全状態を保持するため、機密情報を含む。Gitにコミットしない、リモートバックエンド(S3等)で管理する、ロック機構を使う等のベストプラクティス。
解説¶
ステートファイルとは¶
Terraformが管理するインフラの現在の状態を記録したJSONファイル(terraform.tfstate)。plan/applyの差分計算に使用される。
ベストプラクティス¶
- Gitにコミットしない - 機密情報(ARN、シークレット等)が含まれる。
.gitignoreに追加必須 - リモートバックエンド使用 - S3 + DynamoDB(ロック)が定番構成
- ステートロック - 複数人の同時apply防止
- 暗号化 - S3のサーバーサイド暗号化を有効に
- 環境ごとに分離 - dev/staging/prodでステートファイルを分ける
→ 既存材料: サーバーレスコンタクトシステム もTerraform関連