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
[HashiTalks Japan 2022]Terraform 構成管理 NG祭
Search
AEON
October 17, 2023
Programming
0
200
[HashiTalks Japan 2022]Terraform 構成管理 NG祭
HashiTalks Japan 2022 登壇資料です。
https://www.youtube.com/watch?v=-w6oujPDTpc
AEON
October 17, 2023
Tweet
Share
More Decks by AEON
See All by AEON
AEONにおける、プロダクトオーナーとプロダクトマネージャー制へのチャレンジ / TECHPLAY-PdM-Night-20240417
aeonpeople
1
180
レガシーをぶっ壊せ。AEONで始めるDevRelの話 / Qiita Night 2024-2-22
aeonpeople
3
1.4k
イオンスマートテクノロジーで実践しているAKSアップグレード戦略/the-aks-upgrade-strategy-of-AEON
aeonpeople
3
860
Azureコストは水道代/The_47th_Tokyo_Jazug
aeonpeople
3
750
HashiCorp製品導入の背景と今後の展望/Background of HashiCorp product introduction and future prospects
aeonpeople
0
650
働き方を変革する。Employee DXのチャレンジ / AEON TECH HUB 20240221 Session01
aeonpeople
3
590
エンジニアが事業を創る、事業会社イオンネクストの開発組織 / AEON TECH HUB 20240221 Session02
aeonpeople
4
1k
AEON TECH HUBで目指すもの / AEON TECH HUB 20240221 Session04
aeonpeople
1
490
マイクロサービス導入により生まれた組織課題に対するソリューションとしてのTiDB/Developers Summit 2024 TiDB Sponsor Session
aeonpeople
8
4.3k
Other Decks in Programming
See All in Programming
Runtime Objects in Rust
mitsuhiko
0
210
Exploring Type-Informed Lint Rules in Rust based TypeScript Linters
unvalley
3
610
FoodGram
iseruuuuu
0
230
CQRS meets modern Java
simas
PRO
2
470
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
410
Balkan Ruby 2024 — How and why to run SQLite on Rails in production
fractaledmind
0
110
otelcol receiver 自作RTA / Pepabo Tech Conference #22 春のSREまつり
arthur1
0
220
Jetpack Composeとデザインシステム
rmakiyama
0
220
Ruby on Fails - effective error handling with Rails conventions
talyssonoc
0
280
WinActorの勉強を継続する方法
tamai_63
0
130
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
12
4.3k
freeeのエンジニアが 就活で出そうな コーディングテストを 解説してみる
freee
0
150
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
Ruby is Unlike a Banana
tanoku
96
10k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
The Power of CSS Pseudo Elements
geoffreycrofte
62
5k
Writing Fast Ruby
sferik
622
60k
Bash Introduction
62gerente
605
210k
For a Future-Friendly Web
brad_frost
172
9k
Designing for Performance
lara
601
67k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
41
4.5k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Transcript
1 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 青木 翔平 Terraform 構成管理 NG祭
2 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 青木 翔平 Shohei Aoki プロフィール イオンスマートテクノロジー株式会社 インフラエンジニア(現在は完全にAzure Only) https://www.linkedin.com/in/shohei-aoki-7653a2202/
3 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 組織のNG コーディングのNG 本日話すこと
4 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 組織のNG コーディングのNG 本日話すこと
5 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology だいたいの組織構成(当時の) インフラチーム アプリチーム 運用チーム 上位層 ワイ
6 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology ヤル気に満ち溢れるワイ インフラチーム アプリチーム 運用チーム 上位層 ワイ クラウドの構成管理と いったらTerraformだ ぜ!
7 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 温度差 インフラチーム アプリチーム 運用チーム 上位層 ワイ クラウドの構成管理と いったらTerraformだ ぜ! ふーん、いいんじゃない ふーん、いいんじゃない ふーん、いいんじゃない ふーん、いいんじゃない ふーん、いいんじゃない ふーん、いいんじゃない
8 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology ゴリ押しで導入 IaC
9 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 規模感
10 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 環境変更要求の矢 インフラチーム ◦◦のシステムと繋げるため にスグに環境変更よろしく ◦◦のトラブルの暫定対応 のためにスグに環境変更よ ろしく ◦◦のためにストレージアカ ウントの追加スグによろしく ◦◦のイベント前にDBのス ペックアップよろしく Terraformのコード修正 間に合わん…
11 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology そうすると何が起こるか… 変更 変更 変更 変更 TF反映 TF反映 変更 TF 反映 変更要求 TF Apply △★※? 変更 設定権限 持つ人たち インフラチーム
12 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 構成管理出来てなくね…?
13 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 共感する仲間を増やす - 新しい考えや取り組みを推進しても組織全体で活用されないを自己満の域を出ない。 - 1人で啓蒙活動を続けるにも限界があるので同じチームに自分の考えを共感してもらえる仲間を 増やしていくしかない。 - 共感する仲間が増えそうにないならその組織での推進はキッパリ諦める!(…諦める?) 強い意思で設定変更ロールを割り当てない - 人が自ら環境変更できる手段を全て潰す。 - なんならクラウドのアカウントは閲覧者権限のみ付与する。 - TerraformのCDパイプラインでしか設定変更できない環境を作り、強制的にTerraformを覚 えざるえないようにする。 - もちろん、ネガティブにならないように組織のメンバー全員が取り組みやすいような仕組みを作る。 定期勉強会やハンズオンマニュアルの作成など。 どうすべきだったか?(個人の所感)
14 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 組織のNG コーディングのNG 本日話すこと
15 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 弊社のチームでもちゃんとコーディング規約に変数名について下記を記載しています。 命名規則のNG リソース名や変数名は可読性のために単語の分離に“_”(アンダーバー)を利用 するスネークケースを採用する。 これで「可読性に優れた」命名がされるだろ、と思っていた時期がワイにもありました…
16 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology 命名規則のNG !?
17 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology たしかに「名称から意味がわかるようにすること」はルール化していなかった… とくにコーディングをオフショアに任せる場合はコーディング規約に記載されていない (場合によっては記載されていても)ことは順守しない。 命名規則のNG ちょっとネチッこいんじゃないの…?というくら い守って欲しい規則は明文化しておこう
18 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology どのシステムでも使うリソースはModule化してデプロイを効率化しよう! ModuleのNG
19 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology ModuleのNG …ん? Descriptionがn/aとな?
20 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology Moduleの説明が書かれていないとModule自体の解析に時間がかかり過ぎる。 その内Moduleのメンテナンスをしなくなり使わなくなる。(Moduleの意味) ModuleのNG Module作成者がいなくなっても再利用・保 守が継続するようにREADMEはちゃんと書 こう
21 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology ズバリ、現在azurermのバージョン更新が止まっている。 VersionのNG 理由は色々 バージョンアップの定期運用をちゃんと決めていなかった。 バージョンアップに伴いTerraformリファクタリングするリソースが確保できない。
22 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology とはいえバージョンアップを放置しているとTerraformの実行に影響が出てくる。 terraform applyしても設定が反映されないパラメータが出てくる。 Azureの新機能が増えてもTerraformで管理できない。 VersionのNG 早い話が… コーディングしたら終わりじゃないから運用・保守の ルール/体制をしっかり決めておこうね それなりにコストがかかるのでしっかり予算確保を… • リファクタリングしていく体制 • (必要あれば)Terraform Cloud Businessのライセンス費用
23 ©AEON Smart Technology Co.Ltd. and/or its affiliates. All rights
reserved. イオンスマートテクノロジー株式会社 AEON Smart Technology まとめ 仲間がいればなんとでもなる 色々あるけど結局 逆に仲間がいないとなんともならない