Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
パッチ更新でterraform initが落ちた日
Search
gr1m0h
October 09, 2026
Technology
150
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
パッチ更新でterraform initが落ちた日
gr1m0h
October 09, 2026
More Decks by gr1m0h
See All by gr1m0h
品質と信頼性を地続きにする
grimoh
3
1.8k
システム監視入門
grimoh
5
1.1k
SRE Lounge Hiroshimaへの招待
grimoh
0
1.3k
サービス影響を出さずにWafCharmを導入する
grimoh
0
150
インシデント対応入門
grimoh
8
6.9k
フルリモートを支える技術
grimoh
0
140
マイクロモビリティシェアサービスを支える プラットフォームアーキテクチャ
grimoh
1
780
"君は見ているが観察していない"で考えるインシデントマネジメント
grimoh
4
4k
Enabling Client-side SLO
grimoh
7
5.9k
Other Decks in Technology
See All in Technology
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
1
200
攻撃 3 時間 vs 復旧 10 時間。アクセスキー流出の非対称性を体感するために CTF を作った話
kazzpapa3
1
130
自律的なチームを作るためにTechPMがやらないこと
ny7760
0
410
Claude for Google Workspaces ポン出し/claude-for-google-workspace-slide-conversion
emiki
0
13k
You Have Agency(サンキュー、Ruby)
snoozer05
PRO
5
640
AI時代の開発はウォーターフォールに回帰する? / development-with-ai-back-to-wf
okamototakuyasr2
0
160
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
310
re:Inventで、人生は変わったのか? / growth-builders-hub-1-reinvent-2026
mhrtech
2
180
Don't write the architecture only in the prompt.
neohsu
0
290
ドメインエキスパートは いかにして AI を使って プロダクト開発をするか
tatsuyashiraishi
1
250
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
210
OneLakeをデータソースにした AI Search(Foundry IQ)の ライフサイクル管理
ryuseiiida
0
220
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
620
Joys of Absence: A Defence of Solitary Play
codingconduct
1
560
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Designing Powerful Visuals for Engaging Learning
tmiket
1
630
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
960
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
870
GitHub's CSS Performance
jonrohan
1033
470k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Designing for Timeless Needs
cassininazir
1
540
Transcript
Fukuoka.sre #1 — 2026.10.09 パッチ更新で terraform init が落ちた⽇ Wataru Tsuda
/ gr1m0h 1
Wataru Tsuda @gr1m0h SWE, SRE @ Topotal, Inc. - 複数社で
SRE の技術⽀援に従事 - 社内の改善活動 - ⾃社サービスのQA活動 コミュニティ活動 - SRE Lounge Hiroshima - SRE Magazine - SORACOM UG Hiroshima Website: grimoh.net Fukuoka.sre #1 | gr1m0h 2
株式会社Topotal Build reliability, accelerate growth X Topotal お知らせを配信中 ENGINEERING SERVICE
PRODUCT サービスの価値を、エンジニアリングで引き出す つらいインシデント対応を、楽に、学びに、そしてゼロに。 SRE のワークフローを軸に、信頼性と開発速度を両⽴できる状態 をつくり ます。 対応前から対応後までを⼀貫して⽀え、迅速な復旧と確かな学び を組織の 仕組みに変えます。 — 開発〜運⽤のフィードバックループを速くす 対応前 属⼈化しがちな対応を、仕組みにする — る 事業成⻑を⽀えられる運⽤の⼟台をつくる 対応中 記録ではなく、復旧に集中できる状態にする — SRE の実践をチームの中に残す 対応後 積み上がった事実から、次の改善につなげる 成果物を渡して終わりではなく、社内に SRE が根づく状態を⽬指します。 インシデント管理の SaaS として開発‧提供しています。 導⼊企業(⼀部) 導⼊企業(⼀部) SRE を⼀緒に実践する仲間を探しています jobs.topotal.com 機能詳細‧無料トライアルはこち ら waroom.com 3
事件発⽣ tfaction を上げたら terraform init が落ちた v2.0.4 → v2.0.5 $
terraform init Error: No valid credential sources found Fukuoka.sre #1 | gr1m0h 4
違和感 2.0. 5 パッチバージョンの更新にすぎない 設定は何も変えていない Fukuoka.sre #1 | gr1m0h 5
⼿がかり 共通設定を anchor と merge key で取り込んでいた tfaction-root.yaml default: &default
aws_region: ap-northeast-1 terraform_plan_config: aws_assume_role_arn: arn:aws:iam<:123456789012:role/terraform-plan target_groups: - <<: *default working_directory: aws/dev/ Fukuoka.sre #1 | gr1m0h 6
何が起きていたか 「<<」がただの⽂字列キーとして残った 継承していたリージョンと IAM ロールが⼊らないまま、処理が進む YAML パース 成功 → 設定検証
エラーなし → AWS 認証 本来エラーが出るべき場所 スキップ → terraform init 失敗 実際に落ちた場所 Fukuoka.sre #1 | gr1m0h 7
原 因 js-yaml v4 → v5 依存ライブラリ側でメジャー更新があった load()のデフォルトが YAML 1.2
のCORE_SCHEMAに → merge key が解決されない nodeca/js-yaml 8
merge key の仕様 merge key は YAML 1.2 の仕様にない 2005
YAML 1.2 YAML 1.1 向けの Working Draft として定義 仕様から削除 anchor / alias & * 今も仕様にある merge key << 解釈するかどうかはパーサ次第 yaml.org「Merge Key Language-Independent Type for YAML Version 1.1」/ YAML 1.2.2 Specification Fukuoka.sre #1 | gr1m0h 9
解決 CORE_SCHEMA に mergeTag だけを⾜す Issue #4213 で報告 → PR
#4214 → v2.0.6 で修正 const schema = CORE_SCHEMA.withTags(mergeTag); const config = load(source, { schema }); YAML11_SCHEMAでは真偽値や数値の解釈まで変わる →変更範囲を merge key に絞った suzuki-shunsuke/tfaction Issue #4213 / PR #4214 Fukuoka.sre #1 | gr1m0h 10
学び① エラーにならず 設定だけが⽋ける パースも検証も通り、原因から遠い場所で失敗する Fukuoka.sre #1 | gr1m0h 11
学び② パッチ更新でも挙動は変わる 01 Renovate の⾃動更新は便利だが、この種の変化は防げない 02 パッチ更新でも、依存ライブラリ経由で挙動が変わることがある x.y.z 形式の OSS
でも、SemVer のルールに従っているとは限らない 03 merge key は「読みツールが1つに固定され、 そのツールが対応している」場合だけ 使う 複数のパーサが読む YAML では避ける Fukuoka.sre #1 | gr1m0h 12
ま と め merge key を解釈するかはパーサ次第 エラーにならず設定だけが⽋けることがある パッチ更新でも挙動は変わる ブログ gr1m0h.hatenablog.com/entry/2026/09/25/110000
X @gr1m0h 13
References 参考⽂献 gr1m0h, tfaction v2.0.5でAWS認証が失敗した原因を調べた(はてなブログ, 2026) https://gr1m0h.hatenablog.com/entry/2026/09/25/110000 suzuki-shunsuke/tfaction Issue #4213
https://github.com/suzuki-shunsuke/tfaction/issues/4213 suzuki-shunsuke/tfaction PR #4214 https://github.com/suzuki-shunsuke/tfaction/pull/4214 nodeca/js-yaml https://github.com/nodeca/js-yaml Merge Key Language-Independent Type for YAML Version 1.1 https://yaml.org/type/merge.html YAML Ain’t Markup Language Version 1.2.2 https://yaml.org/spec/1.2.2/ Fukuoka.sre #1 | gr1m0h 14