Slide 1

Slide 1 text

アトランティスへ行ってみよう ゆるSRE勉強会#3 2023/12/8

Slide 2

Slide 2 text

©2023 Voicy, Inc. 自己紹介 名前:織田 薫(かおる)
 会社:株式会社Voicy
 職業:SRE
 趣味:ゴスペル・ぺんぎん
 特技:Ask me


Slide 3

Slide 3 text

©2023 Voicy, Inc.

Slide 4

Slide 4 text

©2023 Voicy, Inc. 課題 Voicy の Terraform まわりの課題として 下記のようなことがありました。 ・リファクタしたいよね ・CI/CDに載せたいよね ・etc…

Slide 5

Slide 5 text

©2023 Voicy, Inc. なぜリファクタ? Q.なぜリファクタが必要なのか? A.色々な理由がありますが・・・ . └── dev_stage_prod ├── main.tf ├── main.tf_dev ├── main.tf_stage ├── output.tf ├── provider.tf ├── variable.tf └── vpc.tf

Slide 6

Slide 6 text

©2023 Voicy, Inc. リファクタの方針 リファクタって言っても色々あるよね ● ディレクトリ構造の利用 ● ワークスペースの使用 ● 変数ファイルの活用 ● モジュールの使用 ● 環境変数の使用 ● 分岐戦略の採用

Slide 7

Slide 7 text

©2023 Voicy, Inc. 方針を決めた Voicyの場合は、下記のような形にしました shared module にはするが、Symlinkにはしない . ├── dev │ ├── main.tf │ ├── provider.tf │ └── variable.tf ├── prod │ ├── main.tf │ ├── provider.tf │ └── variable.tf ├── shared │ ├── iam.tf │ ├── network.tf │ ├── output.tf │ └── variable.tf └── stage ├── main.tf ├── provider.tf └── variable.tf

Slide 8

Slide 8 text

©2023 Voicy, Inc. ひたすらやる とりあえず、ひたすらリファクタしたのでした・・・ まぁ、ドリフトとか、微妙なバージョン違いとか色々・・・

Slide 9

Slide 9 text

©2023 Voicy, Inc. CI/CDはどうするか TerraformをCI/CDに乗せるにはどうすればよいか?

Slide 10

Slide 10 text

©2023 Voicy, Inc. 未知の大陸アトランティス そうだ、Atlantisへ(で)行ってみよう ・プルリクエスト駆動のワークフロー: PRで自動実行できる ・自動化されたプランと適用:plan/apply の自動実行 ・チームのコラボレーションと透明性:チーム内でレビューできる ・セキュリティとアクセス制御:実行承認 ・状態管理の簡素化:ローカルで状態管理する必要がない ・柔軟性と拡張性:様々なカスタマイズが可能 ・履歴の追跡と監査:証跡が取れる

Slide 11

Slide 11 text

©2023 Voicy, Inc. Terraformのバージョン問題 AtlantisでAPIキーなどの秘密情報が出てしまうのを防ぐため、 sensitive 属性をつけたい、となりました。 ・Terraformのバージョン古い・・・ ・sensitive 使うには、v0.14 以上必要 ・v0.14 ではCLIでは隠してくれるが、tfstate 上は隠してくれない ・v0.15 まで上げてなんとかなった

Slide 12

Slide 12 text

©2023 Voicy, Inc. ひたすらバージョンアップ とりあえず、ひたすらアゲイン・・・

Slide 13

Slide 13 text

©2023 Voicy, Inc. 今回できたこと Terraformリファクタ、Atlantis導入で実現したこと ・main.tf コピらなくていい ・環境が明確になった ・ローカルで terraform 叩かなくてよくなった ・github でPRすると、github actions が動いて、fmt/lint が動く ・atlantis plan/apply を叩くことで証跡残る

Slide 14

Slide 14 text

©2023 Voicy, Inc. こんな感じになりました PR plan/apply

Slide 15

Slide 15 text

©2023 Voicy, Inc. 今回できてないこと 一応、できてないことも・・・ ・Trraform のバージョンを最新化したい(stacksどうやろ?) ・PRしたら、plan/apply まで自動でやりたい(ちょっと怖い) ・fmt/lint はまだまだなので、つぶしたい

Slide 16

Slide 16 text

©2023 Voicy, Inc. We’re hiring 絶賛募集してます!