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
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話 /...
Search
Akira Kuriyama
June 26, 2024
Technology
0
110
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話 / Speeding Up Container Builds with Docker Build Cloud
Docker Build Cloudを導入してコンテナイメージビルド時間を80%削減した話を紹介します。
Akira Kuriyama
June 26, 2024
Tweet
Share
More Decks by Akira Kuriyama
See All by Akira Kuriyama
コンテナ脆弱性修正をRenovate,Dependabotのように行う / Fix Container vulnerabilities on CICD
sheepland
2
350
Design Doc のすすめ / The Importance of Design Docs
sheepland
0
290
Datadogのグラフにデプロイタイミングを表示する / deploy timing on datadog graph
sheepland
1
590
英語学習の始め方 / How to start learning English
sheepland
0
110
Other Decks in Technology
See All in Technology
Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる #jawsdays2025
non97
1
240
OPENLOGI Company Profile for engineer
hr01
1
20k
ウォンテッドリーのデータパイプラインを支える ETL のための analytics, rds-exporter / analytics, rds-exporter for ETL to support Wantedly's data pipeline
unblee
0
140
Autonomous Database Serverless 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
17
45k
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
1.1k
DevinでAI AWSエンジニア製造計画 序章 〜CDKを添えて〜/devin-load-to-aws-engineer
tomoki10
0
190
Pwned Labsのすゝめ
ken5scal
2
540
Amazon Athenaから利用時のGlueのIcebergテーブルのメンテナンスについて
nayuts
0
110
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.9k
Amazon Q Developerの無料利用枠を使い倒してHello worldを表示させよう!
nrinetcom
PRO
2
120
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
12
4.5k
実は強い 非ViTな画像認識モデル
tattaka
3
1.4k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
BBQ
matthewcrist
87
9.5k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Being A Developer After 40
akosma
89
590k
Statistics for Hackers
jakevdp
797
220k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Git: the NoSQL Database
bkeepers
PRO
428
65k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Docker and Python
trallard
44
3.3k
Transcript
Docker Build Cloudを導⼊してコンテナイメージビルド 時間を80%削減した話 株式会社スタディスト SREユニット Akira Kuriyama 2024/06/26
2 ⾃⼰紹介 栗山 聖 / Akira Kuriyama / @sheepland 株式会社スタディスト
開発本部 SREユニット 趣味 : 映画、漫画、SF小説
Copyright © 2024 Studist Corporation. all rights reserved. アジェンダ 3
1. コンテナイメージビルドにおける課題 2. Docker Build Cloudとは 3. 料⾦について 4. 効果 5. まとめ
4 1. コンテナイメージビルドにおける課題
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 5
• まずローカルではビルドキャッシュ効くので速い。 --mount=type=cacheも使える。 • しかしCI/CDのような毎回ビルドマシンが変わるケースで は、ビルドキャッシュが効かない • CircleCIでは「Docker レイヤーキャッシュ(DLC)」を有効化 することでビルドキャッシュ効くようになるがコストが⾼く なる。またDLC ボリュームはジョブで 3 ⽇間使⽤されないと 削除されてしまう
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 6
Registry Cache (要は--cache-from) Registry CacheによりCI/CDのような毎回ビルドマシンが変わる ケースであってもイメージレイヤー単位でのキャッシュが可能に よく使われる⼿法 docker build --push -t <registry>/<image> \ --cache-from type=registry,ref=${REGISTRY_URL}/${REPOSITORY_NAME}:buildcache --cache-to type=registry,ref=${REGISTRY_URL}/${REPOSITORY_NAME}:buildcache
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 7
弊社では2022年に導⼊し、イメージビルドが15分かかっていたの が5分強で終わるようになった。 ちなみに弊社ではマルチステージビルドを⾏っており、中間イ メージもキャッシュさせるため(mode=max)にDocker Hubに Registry Cacheイメージを保存。 Registry Cacheの効果
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 8
• Gemやnpmなどパッケージの変更があった場合にはキャッ シュが効かず、⼀からパッケージのインストールがされてし まい時間がかかる • cacheイメージ⾃体のpull、pullしたイメージのextractそれぞ れに時間がかかる Registry Cacheの課題
Copyright © 2024 Studist Corporation. all rights reserved. コンテナイメージビルドにおける課題 9
これらの課題を解決しイメージビルド時間をさらに短縮したい… そんな中 2024/01にDocker社が「Docker Build Cloud」を発表
10 2. Docker Build Cloudとは
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudとは 11 • 2024/01にDocker社から発表されたサービス • コンテナイメージビルドをDocker社のクラウド環境で⾏う • コンテナイメージビルドの効率化、⾼速化にフォーカス Docker Build Cloudとは?
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudとは 12 Docker Build Cloudの機能やメリットを紹介をします
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの機能紹介 13 16 vCPU、32GB RAMのマシンが使われる(Build Cloud Teamプ ランの場合) 単純にスペックが⾼いのでビルド⾼速化につながる CPU Core数も多いのでパッケージのインストールなど並列実⾏ が可能な部分はより⾼速化 ハイスペックなビルドマシンが使える
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの機能紹介 14 • ビルドキャッシュが存在するためRegistry cacheが不要に • --mount=type=cacheが効く ◦ --mount=type=cacheはビルドマシン側にキャッシュ を保存するためのオプション ◦ Gemやnpmなどパッケージの変更があっても、差分更新 ですむ ◦ 個⼈的にはこれが⼀番のメリット ビルドキャッシュが効く
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの機能紹介 15 docker buildx build --platform linux/amd64,linux/arm64 を指定するだけで⾼速なマルチアーキテクチャビルドが可能 今まではAMD(x86_64)、armのそれぞれのビルドマシンを⽤意し たり、Qemuエミュレーションを使⽤したりしていたが、それら が不要に マルチアーキテクチャビルドが簡単に
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの機能紹介 16 各CIツール(GitHub Actions, Circle CIなど)やローカル(Dockerコ マンド、Docker Compose)からスムーズに使うことができる。 https://docs.docker.com/build/cloud/ci/ を参照。 以下はdockerコマンドを使ってDocker Build Cloudを使う例 ローカルやCIツールから簡単に使える echo "$DOCKER_PAT" | docker login --username $DOCKER_USER --password-stdin docker buildx create --use --driver cloud "Org名/ビルダー名"
17 3. 料⾦について
Copyright © 2024 Studist Corporation. all rights reserved. 料⾦について 18
プラン名 料⾦ Docker Build Cloud Starter 無料 Docker Build Cloud Team $5/ユーザ/⽉ (年払い) $6/ユーザ/⽉ (⽉払い) Docker Build Cloud Business 要問い合わせ Docker Coreサブスクリプションに⼊ってなくてもDocker Build Cloudのplanに⼊れる。 CI/CDで使うだけなら1ユーザ分ですむ。
Copyright © 2024 Studist Corporation. all rights reserved. 料⾦について 19
まず、Docker Build Cloud上でイメージビルドを⾏うとビルド時間を消費します。 ある程度無料のビルド時間が付与されていますが、⾜りなくなったら追加でビルド時間を購⼊する必 要があります。 追加のビルド時間の⾦額 • 500 分 : $25 • 1,000 分 : $50 • 5,000 分 : $250 • 10,000 分 : $500 • 20,000 分 : $1,000 つまり、$0.05/min (16 vCPU、32GB RAM)。 ちなみにCircleCIの 「Linux VM / (x86) Remote Docker」の X-large(8 CPU / 32 GB RAM)は $0.06/min、2 X-large(16 CPU / 64 GB RAM)は $0.12/min。
20 4. 効果
Copyright © 2024 Studist Corporation. all rights reserved. Docker Build
Cloudの効果 21 イメージのフルビルド時間の⽐較 改善前: 6m30s ↓ Docker Build Cloud を使⽤ :3m20s (48%減) ↓ さらに Gemを--mount=type=cacheを使ってキャッシュ : 2m (69%減) ↓ さらに npmを--mount=type=cacheを使ってキャッシュ : 1m30s (77%減) ↓ 【WIP】さらに webpackを--mount=type=cacheを使ってキャッシュ : 40s (89%減)
22 5. まとめ
Copyright © 2024 Studist Corporation. all rights reserved. まとめ 23
Docker Build Cloudを使うことで、⼿軽かつ安価にイメージビル ド時間を短縮できました。 Docker Build Cloudの注意点など、詳しくはテックブログを参照 ください。
https://studist.jp/