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 EnterpriseやTerraform CloudのAPIを活用して、一...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Recruit
PRO
August 25, 2022
Technology
690
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Terraform EnterpriseやTerraform CloudのAPIを活用して、一歩踏み込んだTerraform運用自動化を! / HashiTalks_sudo
2022/08/25_HashiTalks: Japanでの、須藤の講演資料になります
Recruit
PRO
August 25, 2022
More Decks by Recruit
See All by Recruit
双方向推薦システムにおける長期的マッチング最大化に向けた代理目的関数の設計と実証
recruitengineers
PRO
0
54
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
140
Model Routerを使った逐次LLM選択による毀損低減効果の検証
recruitengineers
PRO
1
40
ストリーム処理基盤のFlink移行検証と適材適所の実践
recruitengineers
PRO
2
69
AI 時代の Platform Engineering
recruitengineers
PRO
2
400
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
3.4k
データ戦略を加速させる プラットフォーム エンジニアリングと進化的アーキテクチャ
recruitengineers
PRO
2
88
まなび領域における生成AI活用事例
recruitengineers
PRO
2
290
AI時代にエンジニアはどう成長すれば良いのか?
recruitengineers
PRO
1
530
Other Decks in Technology
See All in Technology
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
130
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
110
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
170
Snowflakeと仲良くなる第一歩
coco_se
4
470
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.9k
AIはどのように 組織のアジリティを変えるのか?
junki
3
790
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1k
フロンティアAIのゲート化と地政学リスク
nagatsu
0
140
「エンジニア進化論」2028年の開発完全自動化、エンジニアはどう進化するか
cyberagentdevelopers
PRO
6
5.1k
200個のGitHubリポジトリを横断調査したかった
icck
0
130
社内 AI エージェント Synapse と セマンティックレイヤーの育て方
hiroakis
3
1.9k
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
3
2.3k
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
The Limits of Empathy - UXLibs8
cassininazir
1
360
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
GitHub's CSS Performance
jonrohan
1033
470k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
A designer walks into a library…
pauljervisheath
211
24k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Transcript
Terraform Enterpriseや Terraform CloudのAPIを 活⽤して、⼀歩踏み込んだ Terraform 運⽤⾃動化を︕ 2022.08.25 HashiTalks: Japan
Yu SUDO & Shotaro IWASE
2022.08.25 HashiTalks Yu SUDO @ リクルート インフラソリューションユニット 2 SRE部 クラウドグループ
クラウドの横断基盤を管理・運⽤・改善 している組織。 AWS基盤チームSENTOのリーダー。
2022.08.25 HashiTalks Yu SUDO @ リクルート ねこを飼っています 娘が産まれました 3
2022.08.25 HashiTalks Shotaro IWASE @ NTTテクノクロス - デジタルツイン事業部 第三事業ユニット 熱帯⿂を飼っています
のんびり旅⾏/写真撮影 4
2022.08.25 HashiTalks 組織の紹介 SENTO基盤とSENTOチーム 5
2022.08.25 HashiTalks リクルートの主要事業 6
2022.08.25 HashiTalks ライフスタイル領域・SaaS領域の事業 7 旅⾏、飲⾷、美容、 Air Business Toolsを中⼼に 関連サービスやアプリを提供している事業領域
2022.08.25 HashiTalks 8〜12 Engineers リクルートのライフスタイル領域・SaaS領域のための AWS基盤 SENTO 104 AWS Accounts
8
2022.08.25 HashiTalks CCoE Cloud Center of Excellence SENTOチームの特性 IRE Infrastructure
Reliability Engineering 9
2022.08.25 HashiTalks CCoE 規範的・助⾔的活動 プロダクトに対する伴⾛ 新機能の検討・検証 EOSL対応 SENTOチームの特性 IRE 基盤コンポーネント
ID管理, 踏み台, VPC管理, 専⽤線, WAF, NWF, メールGW, リアルタイム監査, etc → Terraform活⽤︕ 10
2022.08.25 HashiTalks HashiCorp Virtual Strategy Day Japan vol.2 の発表もどうぞ︕ 11
2022.08.25 HashiTalks Terraform運⽤⾃動化の背景 12
2022.08.25 HashiTalks 定期的な構成差分チェックをしたい • プロダクトとSENTO基盤でアカウントを共有しており、SENTO基盤で管理している部分に ついてもプロダクトが操作することが可能 • Terraformで構築・運⽤している環境に対して、しばらく時間が経過してからソースコードを 変更したときに、plan時にそれまで認識していなかった差分を⽣じることがあった •
公式にDrift Detection機能が発表されるよりも前だった 100を超えるWorkspaceに対して⼀⻫に操作したい • 全アカウントに対して、再度Run(plan)をかけ直したいケースがあった • applyのapprove待ちになっているRun(plan)をすべてDiscardしたいケースがあった • Workspace数が100を超えているので、そういった操作が必要になったときに⼤きな負担 だった Terraform運⽤⾃動化の背景 13
2022.08.25 HashiTalks 47種類のJSON APIが公開されてる、 って知ってました︖ GUI上で実施可能なほぼすべての操作が APIとしても利⽤可能︕ → Runs API
と Organizations API、 Workspaces API で やりたいことが実現できる︕ ということで、2つの事例を紹介していきます https://www.terraform.io/cloud-docs/api-docs/run Terraform EnterpriseやTerraform Cloudの JSON API 14
2022.08.25 HashiTalks Terraform管理リソースの Drift Detection 15
2022.08.25 HashiTalks SENTOチームとプロダクトチームの責任共有 • SENTO基盤において、AWSアカウントの構築・管理(AWS+Terraform)はSENTOチーム • 基盤上でのサービス構築・運⽤はプロダクトチーム 基盤側の管理リソースをプロダクトが変更することを⼀部許容 • SCP(Service
Control Policy)でタグベースのガードレールはあるものの、限界がある • プロダクト側のカスタマイズで、Terraformコードと実際のリソースに乖離が発⽣することがある • 差分があるときに、リソースを元に戻すか、リソースに合わせてコードを変更するか、連携したい 差分を検知して知らせてくれる機能がなかった • PRが作成されて、Terraform Enterprise上でRun(plan)が実⾏されるまで気付くことができない Terraform管理リソースのDrift Detection 16
2022.08.25 HashiTalks Private subnet Drift Detectionのシステム構成 17 Amazon ECS Recruit
Product AWS Accounts GitHub Enterprise (Terraform Code) JSON API Notification to Slack SENTO Team AWS Step Functions Amazon EventBridge Workspace⼀覧を取得 各WorkspaceでSpeculative Planを作成 Plan結果をチェック 差分を検知、またはplanが異常終了したら通知 SENTO AWS Account SENTO VPC planを多数実⾏する=実⾏時間が15分を超えると想定 実⾏には Lambda ではなく ECS+Fargate を利⽤ Step FunctionsからECSタスクを起動することで、エラー時にリトライ EventBridgeで定期的にステートマシンを実⾏して差分を⾃動検知
2022.08.25 HashiTalks 2022年6⽉のHashiConf Europeで発表、同等の機能が公式に提供されるようです https://www.hashicorp.com/blog/terraform-cloud-adds-drift-detection-for-infrastructure-management Drift Detection公式サポート 18
2022.08.25 HashiTalks 多数のWorkspaceでの ⼀⻫Re-Run、⼀⻫Discard 19
2022.08.25 HashiTalks 全WorkspaceにDiscardをかけたいユースケース • planでは問題なさそうに⾒えるがapplyでコケるケースなど • 最近では、AWS Provider v4.0のS3のBreaking changesが原因で発⽣
• 100を超えるWorkspace数のため、Applyがコケた場合のリカバリの負担が⼤きい • 本番環境でapply承認待ちのRunはすべて⼿動でDiscardしていた 全WorkspaceにRe-Runをかけたいユースケース • 他のリソースの作成タイミングと近すぎる場合や、depends_onが意図通りにならない場合 など、applyでエラーになった後にRe-Runすると解消するケース • state import後の正常性確認として、Re-Runでplanを実⾏して差分がないことを確認 したい、というケース ⼀⻫Re-Run、⼀⻫Discard 20
2022.08.25 HashiTalks ⼀⻫Re-Run、⼀⻫Discardのシステム構成 21 SENTO AWS Account SENTO VPC Private
subnet Recruit Product AWS Accounts JSON API SENTO Team 各WorkspaceのCurrent runのステータスをチェックしてRun APIを実⾏ [⼀⻫Discard] planned状態であればdiscardを実⾏ [⼀⻫Re-Run] statusがfinal stateに該当する場合は新たなRunを作成 ⼀⻫Discard、⼀⻫Re-Runの実⾏にはLambdaを選択 Drift Detectionと異なりplan結果の確認が不要で 短時間で処理が完了する LambdaはJenkinsからAWS CLIでinvokeする Lambda function ⾃動化ツールのひとつとしてJenkinsを利⽤している ⼀⻫Discard、⼀⻫Re-Runのジョブを追加した 必要になったときにジョブを実⾏する invoke GitHub Enterprise (Terraform Code)
2022.08.25 HashiTalks まとめ 22
2022.08.25 HashiTalks Drift Detectionでプロダクトチームによるリソース変更を素早く検知できるように • moduleに機能を追加しようとして想定外のplan差分が出て混乱する、といったトラブルを 予防できるようになった • プロダクト側が検証等で⼀時的な設定変更をして元に戻すのを忘れた場合や、好ましくな い状態に変更された場合も、⾃動検知できるようになった
⼀⻫Re-Run、⼀⻫Discardの仕組みで業務負担が軽減した • 100超のWorkspaceに対して1つずつ Re-Run / Discard をする必要がなくなった 定期的に⾃動実⾏したい操作がある、業務フロー上⼿動操作が多く負担、 といった課題をお持ちの場合は、ぜひJSON APIを利⽤して⾃動化を検討 してみましょう︕ 運⽤⾃動化によって 23
ありがとうございました 24