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
カーネルまで探検して理解するふたつの自動計装
Search
すみや
August 22, 2026
Technology
500
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
カーネルまで探検して理解するふたつの自動計装
すみや
August 22, 2026
More Decks by すみや
See All by すみや
EOLを迎えたベースイメージで動く属人化したNginxプロキシを無停止移行した話
sumiyae
1
4.1k
Renovateを活用した手離れの良いCDKプロジェクトの作り方
sumiyae
2
320
VIM × AIエージェントで始める記録の好循環
sumiyae
3
1.5k
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
7
1.7k
遅延読み込みの歩みから理解するSeekable OCI
sumiyae
2
470
CDKとLambda Aliasで実現する、SQS+Lambdaの、安全なリリース手法
sumiyae
1
220
Other Decks in Technology
See All in Technology
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
330
ガチで放置できるClaude Code実行環境の作り方.pdf
lamaglama39
0
1.5k
[EMNLP26] RIGEL: Self-Distilled Score Adaptation for Image and Video Captioning Evaluation
keio_smilab
PRO
0
110
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
2
370
DevelopersIO 2026 Tokyo 現時点の衛星通信サービスの現状を整理してみる
maroon1st
0
120
ウォンテッドリーの最近のプロダクトと技術の紹介
stomk
0
320
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
300
Claude Code on Bedrock で統制をかける小ネタ集/claude-code-bedrock-governance-tips
emiki
1
130
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
1
220
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
5
1.5k
小規模OSSモデルは サイバーセキュリティ業務に どこまで使えるか
bbrbbq
0
160
AWSセキュリティで活用するAI機能
cmusudakeisuke
1
160
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
How to Talk to Developers About Accessibility
jct
2
590
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
280
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
KATA
mclloyd
PRO
35
16k
The agentic SEO stack - context over prompts
schlessera
0
970
A better future with KSS
kneath
240
18k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Google's AI Overviews - The New Search
badams
0
1.6k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
280
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Transcript
カーネルまで探検して理解する ふたつの自動計装 Kernel/VM探検隊@東京 No19 2026/08/22 プラットフォーム部 SREチーム 江口 純矢 ©MNTSQ,
Ltd.
introduction 自己紹介 江口 純矢 (Eguchi Sumiya) 経歴など 新卒入社した会社でアプリケーションエンジニアを経てSREへ転身 現在はMNTSQ株式会社でSRE マイブーム
早起きして人が居ないカフェでゆっくり過ごす (コーヒーは飲めないので牛乳飲んだりしてます) ©MNTSQ, Ltd. 2
introduction 話すのはオブザーバビリティの用語「自動計装」について 計装(instrumentation) = システムを観測可能にするために、計測して記録するコードを組み込むこと 手動計装 自動計装 記録処理をコードに直接書いて計装 アプリのコードを変えずに計装 ©MNTSQ,
Ltd. 3
introduction 話すのはオブザーバビリティの用語「自動計装」について 計装(instrumentation) = システムを観測可能にするために、計測して記録するコードを組み込むこと 手動計装 自動計装 記録処理をコードに直接書いて計装 アプリのコードを変えずに計装 ©MNTSQ,
Ltd. 4
Agenda 1. introduction 2. 深まる自動計装への疑問 3. 探検その1: ライブラリを使用する自動計装 4. 探検その2:
ライブラリを使用しない自動計装 5. まとめ ©MNTSQ, Ltd. 5
深まる自動計装への疑問 なんとなく使ってた自動計装 (以降Datadogを例に) ① ライブラリを1個足して ②起動コマンドの先頭を ddtarce-run で挟んで ©MNTSQ, Ltd.
③ 環境変数を足す 6
深まる自動計装への疑問 ふと湧き上がる疑問たち 何でこれだけで動くの...??? ① ライブラリを1個足して ②起動コマンドの先頭を ddtarce-run で挟んで ©MNTSQ, Ltd.
③ 環境変数を足す 7
深まる自動計装への疑問 ふと湧き上がる疑問たち 自動計装には2種類あるらしい ©MNTSQ, Ltd. 8
深まる自動計装への疑問 ふと湧き上がる疑問たち ©MNTSQ, Ltd. 9
深まる自動計装への疑問 ふと湧き上がる疑問たち 疑問① なんで? ©MNTSQ, Ltd. 10
深まる自動計装への疑問 ふと湧き上がる疑問たち 疑問① なんで? 疑問② なんで? ©MNTSQ, Ltd. 11
深まる自動計装への疑問 ふと湧き上がる疑問たち 疑問① なんで? 疑問② なんで? 疑問③ なんで? ©MNTSQ, Ltd.
12
深まる自動計装への疑問 ふと湧き上がる疑問たち 疑問① なんで? 疑問② なんで? 疑問③ なんで? ©MNTSQ, Ltd.
13
深まる自動計装への疑問 一つずつ探検 ©MNTSQ, Ltd. まずは方式1の仕組みから 14
Agenda 1. introduction 2. 深まる自動計装への疑問 3. 探検その1: ライブラリを使用する自動計装 4. 探検その2:
ライブラリを使用しない自動計装 5. まとめ ©MNTSQ, Ltd. 15
探検その1: ライブラリを使用する自動計装 言語仕様を使い実現 (Pythonを例に) ©MNTSQ, Ltd. 16
探検その1: ライブラリを使用する自動計装 言語仕様を使い実現 (Pythonを例に) 前提:PythonはPYTHONPATHにsitecustomize.pyがあれば実行前にimportする 事前準備 Python実行直前 $ pip install
ddtrace $ ddtrace-run ddtrace/bootstrap/ sitecustomize.py PYTHONPATH Python実行中 $ python app.py site-packages/ sitecustomize.pyを PYTHONPATHに登録 ©MNTSQ, Ltd. sitecustomize.pyを import 諸々のスパンをDatadogへ転送 17
探検その1: ライブラリを使用する自動計装 言語仕様を使い実現 (Pythonを例に) 前提:PythonはPYTHONPATHにsitecustomize.pyがあれば実行前にimportする 事前準備 Python実行直前 $ pip install
ddtrace $ ddtrace-run ddtrace/bootstrap/ sitecustomize.py PYTHONPATH Python実行中 $ python app.py site-packages/ sitecustomize.pyを PYTHONPATHに登録 ©MNTSQ, Ltd. sitecustomize.pyを import 諸々のスパンをDatadogへ転送 18
探検その1: ライブラリを使用する自動計装 sitecustomize.pyで何が起きてる? importごとに差し替え ©MNTSQ, Ltd. 19
探検その1: ライブラリを使用する自動計装 sitecustomize.pyで何が起きてる? 言語ごとに仕組みも変わる... 数多くて importごとに差し替え 更新めっちゃ大変そう... ©MNTSQ, Ltd. 20
Agenda 1. introduction 2. 深まる自動計装への疑問 3. 探検その1: ライブラリを使用する自動計装 4. 探検その2:
ライブラリを使用しない自動計装 5. まとめ ©MNTSQ, Ltd. 21
探検その2: ライブラリを使用しない自動計装 どの言語でも通る場所はないか? 言語ごとに仕組みも変わる... どの言語でも通信時に 必ず通る場所 があれば.... 数多くて 更新めっちゃ大変 システムコールを見張る
©MNTSQ, Ltd. 22
探検その2: ライブラリを使用しない自動計装 どの言語でも通る場所はないか? プロセス Python プロセス syscall HTTPS php ユーザー空間
©MNTSQ, Ltd. カーネル空間 23
探検その2: ライブラリを使用しない自動計装 どの言語でも通る場所はないか? プロセス Python プロセス この辺を監視したい syscall → eBPF
https php ユーザー空間 ©MNTSQ, Ltd. カーネル空間 24
探検その2: ライブラリを使用しない自動計装 ざっくり「eBPF」とは? eBPF = トリガーを指定し発火時にカーネルが実行する処理を安全に登録できる仕組み トリガー例 処理例 ・カーネルの関数が呼ばれたら(kprobe) ・アプリの関数が呼ばれたら(uprobe)
・etc…. 発火のたびにデータを読んで記録 → ユーザー空間のAgent が回収し Datadog へ転送 ©MNTSQ, Ltd. 25
探検その2: ライブラリを使用しない自動計装 eBPFを用いてDatadogに転送 プロセス Python eBPF プロセス syscall HTTPS php
ユーザー空間 ©MNTSQ, Ltd. カーネル空間 26
探検その2: ライブラリを使用しない自動計装 HTTPSの中身はカーネル空間からは覗けない プロセス Python eBPF プロセス php ユーザー空間 ©MNTSQ,
Ltd. syscall HTTPS アプリ側で暗号化され カーネル空間から中が覗けない カーネル空間 27
探検その2: ライブラリを使用しない自動計装 アプリが暗号化する前に読むためにuprobeをトリガーに使用 プロセス Python eBPF プロセス syscall HTTPS php
ユーザー空間 ©MNTSQ, Ltd. アプリ側で暗号化され カーネル空間 SSL_writeの「開始」&「終了」 カーネル空間から中が覗けない をトリガーに指定 28
探検その2: ライブラリを使用しない自動計装 この方式の難点 プロセス Python eBPF syscall プロセス カーネル空間にeBPFを登録するための アクセス権限が必要
HTTPS php プロセスの外側から監視するため アプリ側で暗号化され ユーザー空間 カーネル空間 SSL_writeの「開始」&「終了」 ライブラリ使用方式に比べ粒度が荒い カーネル空間から中が覗けない をトリガーに指定 ©MNTSQ, Ltd. 29
探検その2: ライブラリを使用しない自動計装 やっと見えてきた違い ©MNTSQ, Ltd. 30
Agenda 1. introduction 2. 深まる自動計装への疑問 3. 探検その1: ライブラリを使用する自動計装 4. 探検その2:
ライブラリを使用しない自動計装 5. まとめ ©MNTSQ, Ltd. 31
まとめ 二つの自動計装での違い 疑問① 言語に依存する/しないの違いは? ©MNTSQ, Ltd. 疑問② 監視粒度の細かい/荒いの違いは? 32
まとめ 二つの自動計装での違い 疑問① 言語に依存する/しないの違いは? 疑問② 監視粒度の細かい/荒いの違いは? A. 言語の実行プロセスの中でライブラリごとに監視 vs プロセスの外からsyscallを監視
©MNTSQ, Ltd. 33
まとめ 二つの自動計装での違い 疑問③ Fargateで動く/動かないの違いは? ©MNTSQ, Ltd. 34
まとめ 二つの自動計装での違い 疑問③ Fargateで動く/動かないの違いは? A. 方式1はコンテナ内で完結 vs 方式2はホストのカーネルを使うが Fargateはカーネルへのアクセス権が無く不可 ©MNTSQ,
Ltd. 35
まとめ 探検の調査報告 ©MNTSQ, Ltd. 36
まとめ 二つの自動計装の違いを求めて探検の果てにたどり着いたのは プロセスとカーネルの境界だった ©MNTSQ, Ltd. 37