Terraformのデプロイパイプラインに使用できるツールをまとめてみる
by
msato
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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