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
Recruit
PRO
August 25, 2022
Technology
700
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
AIネイティブ時代における 開発組織の役割と拡張の可能性
recruitengineers
PRO
2
230
開発が速く安くなった後の話 AI時代のソフトウェアエンジニアリング組織論 #devsumi
recruitengineers
PRO
45
31k
双方向推薦システムにおける長期的マッチング最大化に向けた代理目的関数の設計と実証
recruitengineers
PRO
1
160
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
210
Model Routerを使った逐次LLM選択による毀損低減効果の検証
recruitengineers
PRO
2
84
ストリーム処理基盤のFlink移行検証と適材適所の実践
recruitengineers
PRO
2
120
AI 時代の Platform Engineering
recruitengineers
PRO
3
520
巨大プラットフォームを進化させる「第3のROI」
recruitengineers
PRO
2
3.7k
データ戦略を加速させる プラットフォーム エンジニアリングと進化的アーキテクチャ
recruitengineers
PRO
3
130
Other Decks in Technology
See All in Technology
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
カメラ×AIで挑む「ホワイト物流」― 車両管理、自動化の壁と突破口【SORACOM Discovery 2026】
soracom
PRO
0
170
エンタープライズデータへ安全につなぐ Production-ready なエージェント設計 ― AI × MCP リファレンスアーキテクチャ ― #AIDevDay
cdataj
1
180
どこまでAIに任せるか 〜確率論と決定論の境界決定〜
shukob
0
550
最高のシステムプロンプトを作るためにフィードバック機能を導入した話
alchemy1115
0
170
新たなDBアーキテクチャ「LTAP」にDeep Dive!!
inoutk
0
130
現場で使える AWS DevOps Agent 活用ノウハウ - Release Management 機能の検証結果を添えて / AWS DevOps Agent Release Management and Know-How
kinunori
4
620
実践が先生だった— 新卒サーバーエンジニア1年目のリアル
mixi_engineers
PRO
0
180
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
Webの技術とガジェットで子どもも大人も楽しめるワクワク体験を提供する / Qiita Tech Festa Day 2026
you
PRO
1
310
AI エージェント時代のデジタルアイデンティティ
fujie
0
980
Power Automateアップデート情報
miyakemito
0
270
Featured
See All Featured
Designing for Performance
lara
611
70k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
400
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
230
GraphQLとの向き合い方2022年版
quramy
50
15k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
360
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Six Lessons from altMBA
skipperchong
29
4.4k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Product Roadmaps are Hard
iamctodd
55
12k
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