Slide 1

Slide 1 text

Terraform Plan/Apply結果の 自動通知 2022-06-08

Slide 2

Slide 2 text

自己紹介 山本 晃平 (Kohei Yamamoto) ● Web接客プラットフォームを提供する株式会社Sprocketのバックエンドエンジニア ● 言語: Go, Scala, Python, Terraform ● インフラ、ミドルウェア: Kubernetes, BigQuery, Dataflow, Apache Kafka ● バックエンド技術を広く浅く学んでいます。 ● 趣味: 合気道 ● Twitter: @yamamocket

Slide 3

Slide 3 text

トピック ● Terraformとは何か ● Terraform Plan/Apply結果をどう通知しているか ● 結果通知を導入にあたった経緯 ● 通知の実現方法の詳細

Slide 4

Slide 4 text

Terraformとは何か ● インフラリソースをコードで管理するIaCを実現するツール ● Planコマンド: インフラの変更差分を表示 ● Applyコマンド: インフラの変更差分を適用 ● CodeBuildを利用してTerraform Plan/ApplyをCI/CDに組み込んで いる

Slide 5

Slide 5 text

Terraform Plan結果の通知 ● GitHubのコメントとしてPlan結果を投稿

Slide 6

Slide 6 text

Terraform Apply結果の通知 ● Terraform Applyが成功したかどうかをSlackに通知

Slide 7

Slide 7 text

結果通知を導入に当たった経緯 結果通知がないとき

Slide 8

Slide 8 text

結果通知を導入に当たった経緯 結果通知がないとき つら い!
 つら い!


Slide 9

Slide 9 text

結果通知を導入に当たった経緯 結果通知があるとき

Slide 10

Slide 10 text

Plan通知の詳細 ● tfnotifyというOSSツールを使用 ● GitHubへのコメントだけでなく、Slackへの投稿なども可能 ● 使い方 ○ terraform plan | tfnotify plan ● 投稿のテンプレートは設定ファイルから指定可能

Slide 11

Slide 11 text

Apply通知の詳細 ● EventBridgeとLambdaで実装 ● CodeBuildの実行結果イベントにより、Lambdaを発火し、Slackの Webhook URLへポスト

Slide 12

Slide 12 text

まとめ・所感 ● Terraform Plan/Applyをどのように通知しているかを紹介 ● 特にPlanをGitHubコメントとして投稿することでTerraform開発体験 が飛躍的に良くなった。 ○ 今までAWSコンソールへいちいちログインするのが煩わしかっ た。 ● Applyの通知により、PRをマージした後GitHubへ再訪する必要がな くなった。