Atlantis: Terraform

まず一言で

  • Atlantis は、GitHub/GitLab の PR を起点に terraform plan / terraform apply を実行し、インフラ変更をレビュー可能な形で運用するための自動化ツール

何がうれしいか

  • ローカル PC で各自が apply しない運用に寄せられる(再現性・監査性が上がる)
  • PR 上で Plan 結果を共有できるので、差分レビューがしやすい
  • リポジトリごとにワークフローを固定しやすく、運用ミスを減らせる

基本フロー(PR 駆動)

  1. Terraform コードを変更して PR を作る
  2. Atlantis が変更を検知して plan を実行し、結果を PR コメントに返す
  3. レビュー完了後、許可されたユーザーが atlantis apply をコメント
  4. Atlantis がサーバー側で apply し、結果を PR に記録する

設計の勘所

  • 実行主体: plan/apply は Atlantis サーバーで実行される(実行権限の集約)
  • 認可: 「誰が apply できるか」を Atlantis 設定で制御する
  • 状態管理: Terraform backend(例: S3 + DynamoDB lock)は従来通り必要
  • 並行実行制御: workspace や project 単位で lock して競合 apply を避ける

terraform 単体運用との違い(整理)

  • terraform は IaC エンジン、Atlantis はその実行オーケストレーター
  • Atlantis を入れても Terraform の原理(state/backend/provider)は変わらない
  • 変わるのは「いつ・誰が・どこで実行するか」を PR に寄せて標準化できる点