コンテンツにスキップ

Terraform ステート管理のベストプラクティス

原文

Terraform ステート管理のベストプラクティス Terraform ステートは強力ですが、誤った管理をするとリスクがあります。適切に扱う方法を以下に示します

  1. 機密扱いにする ステートファイルにはアカウント ID、ARN、さらにはシークレットが含まれています。Git...

要約

Terraformのステートファイルはインフラの全状態を保持するため、機密情報を含む。Gitにコミットしない、リモートバックエンド(S3等)で管理する、ロック機構を使う等のベストプラクティス。

解説

ステートファイルとは

Terraformが管理するインフラの現在の状態を記録したJSONファイル(terraform.tfstate)。plan/applyの差分計算に使用される。

ベストプラクティス

  1. Gitにコミットしない - 機密情報(ARN、シークレット等)が含まれる。.gitignore に追加必須
  2. リモートバックエンド使用 - S3 + DynamoDB(ロック)が定番構成
  3. ステートロック - 複数人の同時apply防止
  4. 暗号化 - S3のサーバーサイド暗号化を有効に
  5. 環境ごとに分離 - dev/staging/prodでステートファイルを分ける

→ 既存材料: サーバーレスコンタクトシステム もTerraform関連

リンク