Terraformのデプロイパイプラインに使用できるツールをまとめてみる
by
msato
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
Terraformのデプロイパイプラインに使用 できるツールをまとめてみる 2023/7/24 AWS事業本部 佐藤雅樹
Slide 2
Slide 2 text
2 自己紹介 resource “my_profile” “this” { name = “佐藤雅樹” company = “クラスメソッド株式会社” department = “ソリューションアーキテクト” twitter = “@chari7311” Interest = [ “DevOps”, “IaC” ] }
Slide 3
Slide 3 text
3 本セッションについて 想定聴講者 - TerraformのCI/CDパイプライン導入を検討している - 現在のTerraformのデプロイ方法に課題を感じている - Terraformのデプロイパイプラインにどういったツールを使 用できるか知りたい ゴール - 各種ツールの特徴を知り、自組織のTerraform デプロイ運 用について考えていただくキッカケを作る
Slide 4
Slide 4 text
4 前提・注意事項 - AWSリソースをTerraformで管理する想定となっています - 所々AWS固有の単語やサービス名が出てきますが、ご了 承ください
Slide 5
Slide 5 text
なぜTerraformのデプロイパイプラインが必 要なのか?
Slide 6
Slide 6 text
Terraformデプロイフロー(ローカル・手動) 6
Slide 7
Slide 7 text
7 手動デプロイの課題1:手作業による作業ミス
Slide 8
Slide 8 text
8 手動デプロイの課題2 シークレットの管理
Slide 9
Slide 9 text
9 解決策 デプロイパイプライン導入
Slide 10
Slide 10 text
10 デプロイパイプラインに使用できるツール - Terraform Cloud - Atlantis - CIツール(GitHub Actions等) - CIツール(Codeシリーズ) - GitOpsツール(Flux、PipeCD等)
Slide 11
Slide 11 text
11 Terraform Cloud
Slide 12
Slide 12 text
12 Terraform Cloud Pros - Terraformのデプロイに最適化されている - 少ない工数でデプロイパイプラインを構築可能 - ツール用のインフラの構築・運用が不要 - Stateファイルの管理機能等、その他機能も充実 Cons - デフォルト設定では、VCS上でPlan等の実行結果が見れな い - その他の方法より料金が高い
Slide 13
Slide 13 text
13 Atlantis
Slide 14
Slide 14 text
14 Atlantis Pros - Terraformのデプロイに最適化されている - 少ない工数でデプロイパイプラインを構築可能 - VCSと同じUIを使用して、Terraformの操作が可能 - Pull Requestのコメントベース - OSS製品のため、Atlantinsの利用自体には料金がかから ない Cons - ホスティングするインフラ(EKS、ECS等)の構築・運用が必 要
Slide 15
Slide 15 text
15 CIツール(GitHub Actions, GitLab CI/CD等)
Slide 16
Slide 16 text
16 CIツール(GitHub Actions, GitLab CI/CD等) Pros - アプリケーションのデプロイとツールを統一できる - ツール用のインフラの構築・運用が不要(SaaS製品の場合) Cons - パイプライン処理の作り込みが必要 - (Terraform CloudやAtlantinsと比較して) - 環境の数が増えるとデプロイ設定用のファイルが増えて管 理が大変
Slide 17
Slide 17 text
17 CIツール(Codeシリーズ等)
Slide 18
Slide 18 text
18 CIツール(Codeシリーズ等) Pros - アプリケーションのデプロイとツールを統一できる - AWS認証情報を外部に保存する必要がない - ツール用のインフラを構築・運用する必要がない - AWSの製品であるため、導入ハードルが低い Cons - パイプライン処理の作り込みが必要 - (Terraform CloudやAtlantinsと比較して) - 環境の数が増えるとデプロイ設定用のファイルが増えて管 理が大変 - デプロイトリガーの柔軟性が低い
Slide 19
Slide 19 text
19 GitOpsツール(Flux、PipeCD)
Slide 20
Slide 20 text
20 GitOpsツール Pros - Pull型のGitOpsによって、「IaCコード = 実際のインフラ設 定」の状態を保ちやすい - Kubernetesのデプロイとツールを統一できる - AWS認証情報を外部に保存する必要がない Cons - ホスティングするインフラ(EKS等)の構築・運用が必要 - Kubernetesの知識も必要
Slide 21
Slide 21 text
21 まとめ どのツールも一長一短 - 規模感やチームの体制を考慮して選定 - 誰にでも勧めやすいのは、Terraform Cloud - スモールスタートなら、既存利用のCIツール ブログ記事: Terraformのデプロイパイプラインに使用できるツー ルをまとめてみた
Slide 22
Slide 22 text
No content