まず一言で
- Atlantis は、GitHub/GitLab の PR を起点に
terraform plan / terraform apply を実行し、インフラ変更をレビュー可能な形で運用するための自動化ツール。
何がうれしいか
- ローカル PC で各自が
apply しない運用に寄せられる(再現性・監査性が上がる) - PR 上で Plan 結果を共有できるので、差分レビューがしやすい
- リポジトリごとにワークフローを固定しやすく、運用ミスを減らせる
基本フロー(PR 駆動)
- Terraform コードを変更して PR を作る
- Atlantis が変更を検知して
plan を実行し、結果を PR コメントに返す - レビュー完了後、許可されたユーザーが
atlantis apply をコメント - Atlantis がサーバー側で
apply し、結果を PR に記録する
設計の勘所
- 実行主体:
plan/apply は Atlantis サーバーで実行される(実行権限の集約) - 認可: 「誰が apply できるか」を Atlantis 設定で制御する
- 状態管理: Terraform backend(例: S3 + DynamoDB lock)は従来通り必要
- 並行実行制御: workspace や project 単位で lock して競合 apply を避ける
terraform は IaC エンジン、Atlantis はその実行オーケストレーター- Atlantis を入れても Terraform の原理(state/backend/provider)は変わらない
- 変わるのは「いつ・誰が・どこで実行するか」を PR に寄せて標準化できる点