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
SOCI Index Manifest v2が出たので調べてみた / Introduction...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tetsuya Kikuchi
August 15, 2025
Programming
480
1
Share
SOCI Index Manifest v2が出たので調べてみた / Introduction to SOCI Index Manifest v2
2025-08-15 に社内勉強会で発表した資料になります。
Tetsuya Kikuchi
August 15, 2025
More Decks by Tetsuya Kikuchi
See All by Tetsuya Kikuchi
More Approvers for Greater OSS and Japan Community
tkikuc
1
140
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
5
840
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
5.1k
GitOps for Everything with Pluggable PipeCD
tkikuc
0
92
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
6.8k
プルリクが全てじゃない!実は喜ばれるOSS貢献の方法8選
tkikuc
17
3.1k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
3
620
ECSのサービス間通信 4つの方法を比較する 〜Canary,Blue/Greenも添えて〜
tkikuc
16
4.5k
ECS向けのドリフト検知機構を実装してみた
tkikuc
0
790
Other Decks in Programming
See All in Programming
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
370
Kubernetes上でAgentを動かすための最新動向と押さえるべき概念まとめ
sotamaki0421
3
720
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
200
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
320
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
820
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
150
[RubyKaigi 2026] Require Hooks
palkan
1
240
Making the RBS Parser Faster
soutaro
0
570
ソフトウェア設計の結合バランス #phperkaigi
kajitack
0
160
🦞OpenClaw works with AWS
licux
1
290
感情を設計する
ichimichi
5
1.6k
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
150
Featured
See All Featured
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
730
Fireside Chat
paigeccino
42
3.9k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
500
How to Think Like a Performance Engineer
csswizardry
28
2.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
160
The Curious Case for Waylosing
cassininazir
0
320
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
220
Building Applications with DynamoDB
mza
96
7k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
120
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
GitHub's CSS Performance
jonrohan
1032
470k
Skip the Path - Find Your Career Trail
mkilby
1
110
Transcript
SOCI Index Manifest v2 が出たので 調べてみた 2025-08-13 Tetsuya Kikuchi 社内LT
会 [ 公開用] 1/20
AWS Community Builder (Containers, 2025 年~) 好きなサービス: ECS 菊池 哲哉
(@t-kikuc) 2/20
SOCI とは何か入門( おさらい) SOCI Index Manifest v2 で何が変わったのか 今日話すこと 3/20
1. SOCI とは 4/20
https://www.usenix.org/conference/fast16/technical-sessions/presentation/harter コンテナ起動が高速化すると嬉しいことの例: スケールアウト高速化 → SLI やUX の改善 Job 系やビルドのトータル処理時間短縮 コスト削減(例:
Fargate ではイメージpull 開始時刻から課金される) 特にML モデル等の巨大イメージで起動待ちが顕著に改善 コンテナ起動において76 %の時間がイメージPull に費やされているが、 6.4% ほどのデータしか使われていない (2016 年の研究) 背景: コンテナの起動を速くしたい 5/20
イメージの軽量化 軽量なベースイメージの利用 レイヤー数を減らす マルチステージビルド等で不要なファイルを削除 キャッシュ ※ Fargate ではキャッシュが効かない イメージのLazy Loading
Pull を速くする手法の例 6/20
必要最小限のファイルだけ取得したらコンテナ起動 → 他のファイルは、アプリケーション実行中に必要になった際に取得 実現するツールの代表例 stargz-snapshotter (containerd のサブプロジェクト) SOCI Snapshotter イメージのLazy
Loading 7/20
https://github.com/awslabs/soci-snapshotter Lazy Loading の一実装 SOCI: Seekable OCI の略。 読みは "so-CHEE"
AWS がOSS として公開している Fargate で標準サポートされている。K8s やEKS でも利用は可能 containerd snapshotter のプラグイン SOCI snapshotter 8/20
「どうやって任意のファイルをpull してるのか?」 9/20
SOCI の仕組み(v1) 左半分は通常のコンテナイメージ SOCI Index Manifest: レイヤーごとのzTOC を束ねたもの + 元となるイメージの識別子
zTOC: 「レイヤーの各ファイルがTAR アーカ イブ内でどのチャンクにあるか」のテーブル ※ SOCI Index := SOCI Index Manifest + zTOC 10/20
https://aws.amazon.com/jp/blogs/news/under-the-hood-lazy-loading-container-images-with-seekable-oci-and-aws-fargate/ コンテナ起動前に、SOCI Index Manifest とzTOC をDL する 未DL のファイルにアクセスすると、SOCI Index
を元にDL が行われる 実行時の仕組み 11/20
https://awslabs.github.io/cfn-ecr-aws-soci-index-builder/ A. SOCI CLI をCI/CD 等に組み込む B. SOCI Index Builder
CloudFormation でデプロイできるソリューション Push 検知→ フィルター→Index 作成 SOCI の使い方 12/20
強み: 既存のイメージ自体を変更する必要がない stargz-snapshotter では専用の形式(stargz,eStargz) にイメージを変換しないといけない SOCI はイメージが250MB 以上の場合に効果的 イメージが小さい場合は、Lazy Loading
によるオーバーヘッドの方が大きくなる タスク内に複数のコンテナが存在する場合、特定のコンテナイメージのみを Lazy Loading 可能 全てのイメージにSOCI Index を作成する必要がない SOCI の特徴 13/20
2. SOCI Index Manifest v2 では何が変わったか? 14/20
https://aws.amazon.com/jp/about-aws/whats-new/2025/07/aws-fargate-soci-index-manifest-v2-deployment-consistency/ 2025 年6 月末にv0.10.0 として登場 7 月頭にECS on Fargate でサポートされた
v2 登場 15/20
デプロイの途中でSOCI Index を削除/ 変更すると、 「一部タスクはLazy Loading されるが、他のタスクは遅い」など、起動時間の予測しにくさがありえた タイムアウト値の設定などに影響 一因: SOCI
Index Manifest → イメージ の一方向参照だったから v1 の課題: 一貫性の欠如 16/20
https://aws.amazon.com/jp/blogs/news/improving-amazon-ecs-deployment-consistency-with-soci-index-manifest-v2/ v2 でどうなったか https://github.com/opencontainers/image-spec/blob/main/image-index.md Container Image Index を活用 複数のimage manifest
を束ねる これ自体はOCI 標準のもの イメージとSOCI Index を双方向に紐づける → Image Index を削除/ 更新しない限り、SOCI Index は変わらない 17/20
https://github.com/awslabs/soci-snapshotter/blob/main/docs/soci-index-manifest-v2.md ECS on Fargate で初めてSOCI を使うユーザは、今後はv2 のみ利用可能 v1 からv2 への移行は
soci convert で可能 v2 の詳細: 考慮事項 18/20
まとめ 19/20
SOCI はコンテナイメージの遅延読み込みを実現し、コンテナ起動を高速化する ための技術 SOCI の強みは、イメージ自体に変更が不要な点 Index Manifest v2 によってデプロイの一貫性が向上した まとめ
20/20