14. 14
a long long time ago…
2 . C I / C D ラ イ フ サ イ ク ル
$ terraform apply
構うもんかよ
15. 15
a long long time ago…
2 . C I / C D ラ イ フ サ イ ク ル
$ terraform apply
俺しかいねえ
んだからよ….
開発者( 私) がローカルPC から
直接terraform コマンドを実行
terraform を触るのは
自分1 人のみ
16. 16
a long long time ago…
2 . C I / C D ラ イ フ サ イ ク ル
$ terraform apply
01
03
自分以外のSREの方がjoinしてくれた時
にレビューフレンドリーな形にしておき
たい!
将来的にはSREではないアプリエンジニ
アもterraformを使って必要な修正が自分
たちでできるようにしたい
誰でも簡単に安心してインフラを変更で
きるようにしたい!
Applyの度にドキドキしたくない!
02
モチベーション
17. 17
現在の構成 ~plan実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
plan
$ terraform plan
$ terraform plan
$ git push
on push
Result
18. 18
現在の構成 ~plan実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
plan
$ terraform plan
$ terraform plan
$ git push
on push
Result
開発者が変更した
Te r r a f o r m のコードを
ブランチにpush
19. 19
現在の構成 ~plan実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
plan
$ terraform plan
$ terraform plan
$ git push
on push
Result
Pushをトリガーに
C Iを起動
20. 20
現在の構成 ~plan実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
plan
$ terraform plan
$ terraform plan
$ git push
on push
Result
tflintとterraform
fmt を実行し結果をPR
にコメント
21. 21
現在の構成 ~plan実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
plan
$ terraform plan
$ terraform plan
$ git push
on push
Result
管理している全てのアカ
ウントにplan を実行し
結果をPR にコメント
22. 22
現在の構成 ~plan実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
plan
$ terraform plan
$ terraform plan
$ git push
on push
Result
管理している全てのアカ
ウントにplan を実行し
結果をPR にコメント
23. 23
現在の構成 ~plan実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
plan
$ terraform plan
$ terraform plan
$ git push
on push
Result
ここまででlint も OK で
Plan結果の差分もPR に
コメントされているので
レビュワーをアサイン
ビュイーは各種コメント
結果を見ながらレ
ビューを実施
24. 24
現在の構成 ~apply実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
apply
$ terraform apply
$ terraform apply
Merge
on pus
h
only master
Result
25. 25
現在の構成 ~apply実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
apply
$ terraform apply
$ terraform apply
Merge
on pus
h
only master
Result
レビューが終わっ たら
PR をm a s t e rブランチ
にマージ
26. 26
現在の構成 ~apply実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
apply
$ terraform apply
$ terraform apply
Merge
on pus
h
only master
Result
m a s t e rブランチのみ
C Iでterraform appl
y
そ全環境向けに実行
27. 27
現在の構成 ~apply実行時~
2 . C I / C D ラ イ フ サ イ ク ル
$
terraform
apply
$ terraform apply
$ terraform apply
Merge
on pus
h
only master
A p p l y結果を Sl ack にコ
メントして通知
Result
30. 30
この構成で気づいたこと
3 . C I / C D 以 外 の シ ー ン
やっぱローカルで
terraformコマンド
打ちてえなぁ
…
$ terraform plan
$ terraform import
31. 31
この構成で気づいたこと
$ terraform plan
$ terraform import
terraform 実行のため
のa w s c r e d e n t i a lが
ローカルに必要だが
IAM の管理とセキュリ
ティー麺が課題
3 . C I / C D 以 外 の シ ー ン