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
Tetsuya Kikuchi
August 15, 2025
Programming
1
120
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
110
Git Sync を超える!OSS で実現する CDK Pull 型デプロイ / Deploying CDK with PipeCD in Pull-style
tkikuc
4
580
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
4.5k
GitOps for Everything with Pluggable PipeCD
tkikuc
0
55
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
5.5k
プルリクが全てじゃない!実は喜ばれるOSS貢献の方法8選
tkikuc
17
2.8k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
3
540
ECSのサービス間通信 4つの方法を比較する 〜Canary,Blue/Greenも添えて〜
tkikuc
15
3.9k
ECS向けのドリフト検知機構を実装してみた
tkikuc
0
630
Other Decks in Programming
See All in Programming
rage against annotate_predecessor
junk0612
0
160
オープンセミナー2025@広島LT技術ブログを続けるには
satoshi256kbyte
0
150
Testing Trophyは叫ばない
toms74209200
0
450
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
1
510
個人軟體時代
ethanhuang13
0
300
Laravel Boost 超入門
fire_arlo
2
180
時間軸から考えるTerraformを使う理由と留意点
fufuhu
12
4k
AI時代のドメイン駆動設計-DDD実践におけるAI活用のあり方 / ddd-in-ai-era
minodriven
25
9.7k
Zendeskのチケットを Amazon Bedrockで 解析した
ryokosuge
3
250
Namespace and Its Future
tagomoris
6
690
Microsoft Orleans, Daprのアクターモデルを使い効率的に開発、デプロイを行うためのSekibanの試行錯誤 / Sekiban: Exploring Efficient Development and Deployment with Microsoft Orleans and Dapr Actor Models
tomohisa
0
230
Go言語での実装を通して学ぶLLMファインチューニングの仕組み / fukuokago22-llm-peft
monochromegane
0
110
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
302
21k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Code Review Best Practice
trishagee
70
19k
Site-Speed That Sticks
csswizardry
10
810
Building Applications with DynamoDB
mza
96
6.6k
Speed Design
sergeychernyshev
32
1.1k
A Tale of Four Properties
chriscoyier
160
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Being A Developer After 40
akosma
90
590k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
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