1. 概要
- Atlantisとは何か(OSSのTerraform自動化ツール)
- Terraform CloudとAtlantisの機能比較
- OSSかSaaSかを選ぶ判断基準
- Atlantisのセットアップと動作フロー
AtlantisはGitHub/GitLab/Bitbucketのプルリクエストに対してterraform plan/applyを自動実行するOSSツールです。Terraform Cloudと似た役割を持ちますが、セルフホストで無料で使えるのが最大の特徴です。
2. Atlantisとは
Atlantisはプルリクエストに対して以下を自動実行するサーバーです。
PR作成/更新 → terraform plan(結果をPRコメントに投稿)
→ atlantis apply コメント → terraform apply(結果をPRコメントに投稿)
# atlantis.yaml(リポジトリルートに配置)
version: 3
projects:
- name: production
dir: environments/production
workspace: default
terraform_version: v1.9.0
autoplan:
when_modified: ["*.tf", "../modules/**/*.tf"]
enabled: true
apply_requirements:
- approved
- mergeable
3. 機能比較
| 比較軸 | Terraform Cloud | Atlantis |
|---|---|---|
| 形態 | SaaS | セルフホストOSS |
| コスト | 無料〜有料 | サーバー費用のみ(ソフトウェアは無料) |
| State管理 | 組み込み | 別途設定(S3等) |
| PRコメント | 自動 | 自動 |
| applyの承認 | UI/API | PRコメント(atlantis apply) |
| ポリシー制御 | Sentinel(有料) | カスタムワークフロー |
| セットアップ | 低(GUI) | 中(サーバー構築・Webhook設定) |
| アップデート | 自動 | 自前で管理 |
| 監査ログ | 標準機能 | GitのPR履歴が実質的な監査ログ |
4. Atlantisのセットアップ概要
# Atlantis サーバーをEC2で動かす場合のTerraform例
terraform {
required_version = ">= 1.9"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
provider "aws" {
region = "ap-northeast-1"
}
variable "environment" {
description = "環境名"
type = string
default = "dev"
}
data "aws_ami" "amazon_linux_2023" {
most_recent = true
owners = ["amazon"]
filter {
name = "name"
values = ["al2023-ami-*-x86_64"]
}
}
resource "aws_instance" "atlantis" {
ami = data.aws_ami.amazon_linux_2023.id
instance_type = "t3.micro"
# AtlantisはGitHubからのWebhookを受信するためパブリックIPまたはALBが必要
root_block_device {
volume_size = 20
volume_type = "gp3"
encrypted = true
}
tags = {
Name = "${var.environment}-atlantis"
Environment = var.environment
ManagedBy = "terraform"
}
}
5. Atlantisを選ぶべきケース
- コスト最優先: チームメンバー数が多く、Terraform Cloud有料プランのコストが大きくなる場合
- データをクラウドSaaSに送りたくない: セキュリティポリシーでStateや設定ファイルを外部SaaSに送れない場合
- 既存Kubernetesクラスターがある: AtlantisのHelmチャートがあり、k8s上で動かすのが簡単
- カスタムワークフローが必要: planとapplyの間に独自の処理を挟みたい場合
6. Terraform Cloudを選ぶべきケース
- 運用負荷を最小化したい: Atlantisサーバーのメンテナンス(OS更新・バージョンアップ)をしたくない
- Terraform特化機能が必要: Sentinelポリシー・Run Tasksによるセキュリティスキャン
- チームが急成長している: ユーザー管理・アクセス制御をSaaS側に任せたい
7. 関連記事
- Terraform Cloud vs GitHub Actions — どちらで運用すべきか — SaaS同士の比較
- Terraform CloudのVCS連携設定ガイド — Terraform Cloud設定手順
- GitHub Actions: PR時にterraform planをコメントで返す — GitHub ActionsでAtlantis代替
- Terraform Cloudは無料でどこまで使える? — 料金比較
- Terraform CI/CDのブランチ戦略 — PRベースのapply設計
- CI/CDパイプラインとTerraform — 基本パターン
8. まとめ
- AtlantisはOSSのTerraform自動化ツール。PRコメントでplan/applyを制御する
- Terraform Cloudと機能的に似ているが、セルフホストで完全無料(サーバー費用を除く)
- Atlantisの弱点はサーバー運用負荷とSentinelのようなポリシー機能がないこと
- チームメンバーが多くTerraform Cloud有料プランが高額になる場合はAtlantisが有力な選択肢
- 新規ならTerraform Cloud、既存インフラ・コスト重視ならAtlantisが現実的
対象バージョン: Terraform >= 1.9 / Atlantis v0.28+ 公式ドキュメント: https://www.runatlantis.io/