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