Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
アトランティスに行ってみよう
Search
Kaoru
January 15, 2024
Programming
0
77
アトランティスに行ってみよう
Kaoru
January 15, 2024
Tweet
Share
More Decks by Kaoru
See All by Kaoru
小規模な会社のSREのリアル
okaru
0
22
Techbrew in Tokyo April 2024
okaru
0
14
TiUG #1 LT
okaru
0
4
TechBrew in 東京 SRE大集合 信頼性を高める取り組み LT
okaru
0
380
AI駆動開発(AI-Driven Development) 勉強会(第1回) LT
okaru
0
650
Serverless Meetup Tokyo #19 LT
okaru
0
260
Other Decks in Programming
See All in Programming
The Design of Everyday APIs - PyCon 2024
roguelynn
0
190
TypeScriptでもLLMアプリケーション開発 / LLM Application In Typescript
rkaga
5
1.3k
TCAとKMPを用いた新規動画配信アプリ 「ABEMA Live」の設計
tomu28
2
140
otelcol receiver 自作RTA / Pepabo Tech Conference #22 春のSREまつり
arthur1
0
960
GoでParserを書く
karupanerura
3
350
Findy - エンジニア向け会社紹介 / Findy Letter for Engineers
findyinc
2
74k
一文字エイリアスのすすめ
fujimura
0
200
RailsConf 2024: Riffing on Rails: sketch your way to better designed code
kaspth
1
220
How to improve maintainability and readability of your automated tests? ( #scrumniigata )
teyamagu
PRO
1
130
freeeのエンジニアが 就活で出そうな コーディングテストを 解説してみる
freee
1
170
Direct Style Effect Systems The Print[A] ExampleA Comprehension Aid
philipschwarz
PRO
0
410
The Cutting Edge Of Versioning (LambdaConf 2024)
chriskrycho
0
250
Featured
See All Featured
In The Pink: A Labor of Love
frogandcode
138
21k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Designing with Data
zakiwarfel
96
4.8k
Music & Morning Musume
bryan
41
5.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
The Brand Is Dead. Long Live the Brand.
mthomps
49
30k
How to name files
jennybc
65
94k
Design by the Numbers
sachag
274
18k
Become a Pro
speakerdeck
PRO
13
4.6k
Why Our Code Smells
bkeepers
PRO
331
56k
Clear Off the Table
cherdarchuk
86
310k
Transcript
アトランティスへ行ってみよう ゆるSRE勉強会#3 2023/12/8
©2023 Voicy, Inc. 自己紹介 名前:織田 薫(かおる) 会社:株式会社Voicy 職業:SRE 趣味:ゴスペル・ぺんぎん 特技:Ask
me
©2023 Voicy, Inc.
©2023 Voicy, Inc. 課題 Voicy の Terraform まわりの課題として 下記のようなことがありました。 ・リファクタしたいよね
・CI/CDに載せたいよね ・etc…
©2023 Voicy, Inc. なぜリファクタ? Q.なぜリファクタが必要なのか? A.色々な理由がありますが・・・ . └── dev_stage_prod ├──
main.tf ├── main.tf_dev ├── main.tf_stage ├── output.tf ├── provider.tf ├── variable.tf └── vpc.tf
©2023 Voicy, Inc. リファクタの方針 リファクタって言っても色々あるよね • ディレクトリ構造の利用 • ワークスペースの使用 •
変数ファイルの活用 • モジュールの使用 • 環境変数の使用 • 分岐戦略の採用
©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
©2023 Voicy, Inc. ひたすらやる とりあえず、ひたすらリファクタしたのでした・・・ まぁ、ドリフトとか、微妙なバージョン違いとか色々・・・
©2023 Voicy, Inc. CI/CDはどうするか TerraformをCI/CDに乗せるにはどうすればよいか?
©2023 Voicy, Inc. 未知の大陸アトランティス そうだ、Atlantisへ(で)行ってみよう ・プルリクエスト駆動のワークフロー: PRで自動実行できる ・自動化されたプランと適用:plan/apply の自動実行 ・チームのコラボレーションと透明性:チーム内でレビューできる
・セキュリティとアクセス制御:実行承認 ・状態管理の簡素化:ローカルで状態管理する必要がない ・柔軟性と拡張性:様々なカスタマイズが可能 ・履歴の追跡と監査:証跡が取れる
©2023 Voicy, Inc. Terraformのバージョン問題 AtlantisでAPIキーなどの秘密情報が出てしまうのを防ぐため、 sensitive 属性をつけたい、となりました。 ・Terraformのバージョン古い・・・ ・sensitive 使うには、v0.14
以上必要 ・v0.14 ではCLIでは隠してくれるが、tfstate 上は隠してくれない ・v0.15 まで上げてなんとかなった
©2023 Voicy, Inc. ひたすらバージョンアップ とりあえず、ひたすらアゲイン・・・
©2023 Voicy, Inc. 今回できたこと Terraformリファクタ、Atlantis導入で実現したこと ・main.tf コピらなくていい ・環境が明確になった ・ローカルで terraform
叩かなくてよくなった ・github でPRすると、github actions が動いて、fmt/lint が動く ・atlantis plan/apply を叩くことで証跡残る
©2023 Voicy, Inc. こんな感じになりました PR plan/apply
©2023 Voicy, Inc. 今回できてないこと 一応、できてないことも・・・ ・Trraform のバージョンを最新化したい(stacksどうやろ?) ・PRしたら、plan/apply まで自動でやりたい(ちょっと怖い) ・fmt/lint
はまだまだなので、つぶしたい
©2023 Voicy, Inc. We’re hiring 絶賛募集してます!