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
東京ガス内製開発チームにおけるTerraform活用の現在地とこれから
Search
あおしょん
January 23, 2025
1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
東京ガス内製開発チームにおけるTerraform活用の現在地とこれから
あおしょん
January 23, 2025
More Decks by あおしょん
See All by あおしょん
自身の思いと周りからの期待のギャップを埋める、最中の新米チームリーダーの話
sh1y0uh
0
530
Software Catalog – Endpointsを活用したMonitorの改善とか
sh1y0uh
0
430
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
640
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
250
WENDY [Excerpt]
tessaabrams
11
38k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
250
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
240
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
The agentic SEO stack - context over prompts
schlessera
0
830
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
570
Building a Scalable Design System with Sketch
lauravandoore
463
34k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 2025年1月23日 東京ガス株式会社
青木 翔平 東京ガス内製開発チームにおける Terraform活用の現在地とこれから
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 自己紹介 名前
青木 翔平 所属 東京ガス株式会社 リビング戦略部 デジタルプロダクト推進G SREチーム 経歴 SI -> 小売IT -> 2024年4月より現職 好き ベイブレードX ジョギング on asics 2
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. アジェンダ 1.
東京ガスについて 2. 東京ガス内製開発チームに入ったらTerraformは…? 3. 内製開発チームに入ってTerraform関連でやったこと 4. 内製開発チームが拡大してきてTerraform関連でやらなきゃなこと 5. まとめ 3
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 東京ガスについて 4
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 会社紹介:東京ガス 会社名
創立 従業員数 売上高(連結) 主な事業 東京ガス株式会社 明治18年(1885)年10月1日 単体:3,190名 連結:15,504名(2024年3月31日現在) 26,645億円(2024年3月末時点) エネルギー(ガス+電気)ソリューション、海外、都市ビジネス(不動産)など エネルギー需要の増大に伴い、クリーンで高効率なエネルギーとして、 1969年、日本で初めて LNG (液化天然ガス) を導入。 お客さまアカウント数は約1,300万件(*1) 都市ガス国内販売シェア約34%は国内No.1。 小売電力販売件数も387.1万件(*2) に到達、新電力No.1となっています。 5 *1 ガス・電気・サービス延べ契約数 2024年3月末時点 *2 2024年3月末時点
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. myTOKYOGAS について
家庭用のお客さま向け会員サイト。 ガスや電気の料金・使用量の確認や、パッチョポイントを貯める・使う、各種手続きをご提供しています。 2024年11月~紙の検針票の現場投函終了に伴い、さらなる利用者数や会員数の増加が見込まれます。 6
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 東京ガス内製開発チームに入ったらTerraformは…? 7
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. もう入ってた 8
とあるペンギンアイコンのSREチームのリーダーが単独で Terraformの内部ドキュメントも書いて、かつTerraformで 初めてAzureの環境を構築していた 本当の意味で一手に引き受けていたようだ
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 気になって行カウントしてみた $
find modules/ -name "*.tf*" -type f |xargs cat | wc -l 6163 $ find environments/dev01/ -name "*.tf*" -type f |xargs cat | wc -l 9138 $ find environments/dev02/ -name "*.tf*" -type f |xargs cat | wc -l 6588 $ find environments/sandbox/ -name "*.tf*" -type f |xargs cat | wc -l 4649 $ find environments/staging/ -name "*.tf*" -type f |xargs cat | wc -l 6959 $ find environments/production/ -name "*.tf*" -type f |xargs cat | wc -l 9531 • 入社直後の感想は「これを•ヶ月間一人で…?やばい」 • environmentのルートモジュールについては、少なからず構成差分があるため不要なリソースを作成 しないようにコード上の差分比較が大変だった。(入社数か月後に実際に自身で追加の環境を構築 した上での感想)
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 一人でやっていたことの弊害はあったようで… 10
当初はPRのApproveを開 発メンバーにやってもらっ ていたが途中から禁断の Self Approveをしていた Terraform、パブリック クラウド観点で他メン バーからのコメントがも らえない。ぴえん 他の仕事も多々あって、 コードの品質担保が出来な かった(究極の属人化)
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 現在のSREチームは一人じゃない 11
このパブリッククラウド だとこういう構成もあり かと! このPRは私がレビュー します! このTerraformコーディ ングに関するチケットは 私が対応します!
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 内製開発チームに入ってTerraform関連でやったこと 12
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. やったことは主に3点! 13
Terraformバージョンアップ戦略の整備 Terraformコーディング規約の作成 HCP Terraformの導入
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. Terraformバージョンアップ戦略の整備 14
• Terraform Version, Provider Version共に塩漬けとなって いたため、無理なく回せるバージョンアップ戦略を整備 しようと決意 • まずはNotion上でたたき台のドキュメントを作成して チーム内に展開、詳細なルールについてはチームメン バーからコメントをもらいながら全員が納得する形で策 定 • ドキュメントを元に自身とチームメンバーで実際にバー ジョンアップを実施、実施結果を元に更にドキュメント をブラッシュアップ
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. Terraformコーディング規約の作成 15
HashiCorp公式をStyle Guideを踏襲しつつも当チームにマッチした規約を作成 • ディレクトリ、ファイルの命名規則 • Module, サービスのディレクトリ構成 • tfファイルの分割単位 Directory/File構成 • リソースの命名規則 • Dynamic Blockの使いどころ • for_eachのの使いどころ • 除外するパラメータ Resource定義 • object, mapのの使いどころ • Dynamic Blockの使いどころ • Output Valuesの使いどころ • Local Valuesの使いどころ Variables/Values定義 • Moduleの種類 • ファイル構成 Module定義 • ファイル構成 • Data Source定義内容 Data Source定義
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. HCP Terraformの導入
16 HCP Terraformがいかに便利で何が出来るかは知りつつも…まずはチーム内のTerraform関連 ドキュメントを読みながらHCP Terraformを導入すれば解決出来る課題を探索 当時はHCP Terraformじゃな くてTerraform Cloudという 名前だったよ!
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. HCP Terraformの導入
17 • 2024年11月からHCP Terraform Plusの利用を開始 • 現在、HCP Terraformの設定をTerraformで記述してApply済み。既存tfstateのHCP Terraform移行にいそしみ中 HCP Terraform hcp-terraform aws-service-a-dev datadog-service-a-dev aws-service-a-prod datadog-service-a-prod Project: HCP Project: Service A HCL ‒ HCP Terraform Apply Workspace states states states
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. HCP Terraformの導入
18 HCP Terraformには色々な機能があるものの当チームとして特に嬉しかったことは… SREチーム PR作成時にPlanが自動実行さ れてPR画面でリンク辿れるの 最高! (今まではGitHub Actionsの Plan実行のURLを貼り付けて いた…) コスト気にせずHCP Terraformで何度もPlan, Apply出来るの最高! HCP Terraformコンソール画 面でのPlan, Applyの実行結果 が見やすいの最高!
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. HCP Terraformの導入
19 SREチーム QOTLの向上!! ( QOTL: Quality Of Terraform Life )
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. 内製開発チームが拡大してきて Terraform関連でやらなきゃなこと
20
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. やらなきゃなことも主に3点! 21
アドホックな環境払い出し みんな環境作れるように Terraformコードレビューを楽する
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. アドホックな環境払い出し 22
• 環境管理表で各環境の利用時間を調整している現状 • 開発メンバーは環境利用の調整に稼働を割きたくない(事実、timesで呟いている) • 新規メンバーも増えてきて、この状況に疑問を投げかける声もちらほら 開発メンバーのtimesのつぶやき
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. azure-service-b-loadtest アドホックな環境払い出し
23 せっかく、HCP Terraformを導入したのでephemeral workspaceでアドホックな環境を払い出す運用を確立したい (※他システム、外部サービスと連携不要な環境に限る) へいお待ち! 利用期限は1/31 17:00です! Apply 負荷テスト実施用環境 1/31まで負荷テスト 実施用の環境欲しい なあ 開発メンバー
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. みんな環境作れるように 24
とある日の開発チーム新メンバーとの1on1にて インフラの構築は SREチームの方が 全てやっているん ですか? はい、そうですね 前職だと各開発チーム がTerraformでインフ ラを作っていたんです けどそういう機会はな さそうですか? い、今のところは なさそうです… Aさん
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. みんな環境作れるように 25
• 開発チームでHCLを書きたい!というより新たな環境が欲しい時に開発チームが自分たちで環境を準備 出来るようにしたい、というのが目指すところ • インフラ構成が固まっている、すなわち変数がユーザー名、パスワードやマシンサイズなどのアーキテ クチャが変わらない要素のみであればセルフサービス化の仕組みを作って開発チームへ提供して良いの ではないか。 • あって良かった、HCP Terraformのno-code modules no-code module input: db_usernema db_password vm_size aws-service-a-devXX Provision Apply Aさん用開発環境 Aさん
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. Terraformコードレビューを楽する 26
当チームはレビューの負荷が一人に偏りがち TerraformのPR レビューお願い します! TerraformのPR レビューお願い します! 登壇資料のレビュー お願いします! テックブログの レビューお願い します!
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. Terraformコードレビューを楽する 27
せめてTerraformのコードレビューについては負荷を下げたい… TerraformのPR レビューお願い します! TerraformのPR レビューお願い します! 登壇資料のレビュー お願いします! テックブログの レビューお願い します!
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. Terraformコードレビューを楽する 28
Policy as Codeを導入して自動化出来るレビューは自動化していきたい Enforce policy as code まだ何も始まっていないので決意表明だけ…
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. まとめ 29
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. Terraform活用の現在地とこれから 30
• インフラはほぼ全てTerraformで管理している • SREチームがTerraformで環境構築している • バージョンアップ戦略が整った • コーディング規約が整った • HCP Terraformを導入した • HCP TerraformをTerraformで管理し始めた 現在地 • 全既存環境をHCP Terraformに移行する • コーディング規約に沿ってリファクタリング • 利用したい時に環境を払い出せるようにする • 開発チームが自身で環境を作れるようにする • Terraformコードレビューの負荷を減らす • 更にサービスを良くするための仕組みを考える これから
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. We are
hiring!! 31 ・東京ガスキャリア経験者採用 https://tokyo-gas.snar.jp/index.aspx ・東京ガス内製開発チーム Tech Blog https://tech-blog.tokyo-gas.co.jp/
Copyright© TOKYO GAS Co., Ltd. All Rights Reserved. ご清聴ありがとうございました! 32
None