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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Tetsuya Kikuchi
August 15, 2025
Programming
1
430
SOCI Index Manifest v2が出たので調べてみた / Introduction to SOCI Index Manifest v2
2025-08-15 に社内勉強会で発表した資料になります。
Tetsuya Kikuchi
August 15, 2025
Tweet
Share
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
790
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
4.9k
GitOps for Everything with Pluggable PipeCD
tkikuc
0
83
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
6.6k
プルリクが全てじゃない!実は喜ばれるOSS貢献の方法8選
tkikuc
17
3k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
3
600
ECSのサービス間通信 4つの方法を比較する 〜Canary,Blue/Greenも添えて〜
tkikuc
15
4.4k
ECS向けのドリフト検知機構を実装してみた
tkikuc
0
710
Other Decks in Programming
See All in Programming
kintone + ローカルLLM = ?
akit37
0
120
CSC307 Lecture 13
javiergs
PRO
0
310
DSPy入門 Pythonで実現する自動プロンプト最適化 〜人手によるプロンプト調整からの卒業〜
seaturt1e
1
300
CSC307 Lecture 14
javiergs
PRO
0
440
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
180
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
310
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
330
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
220
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
190
AI時代でも変わらない技術コミュニティの力~10年続く“ゆるい”つながりが生み出す価値
n_takehata
2
490
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3k
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
92
From π to Pie charts
rasagy
0
140
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
93
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
110
How to Talk to Developers About Accessibility
jct
2
140
RailsConf 2023
tenderlove
30
1.4k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
190
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
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