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
20160907_Akamai_Tech_Deep_Dive
Search
kakerukaeru
September 07, 2016
Technology
0
2.1k
20160907_Akamai_Tech_Deep_Dive
Akamaiを活用したCyberAgentのhogehogeというお題で、20160907 AkamaiTechDeepDiveでお話した奴
後半の画像配信部分のSlide
kakerukaeru
September 07, 2016
Tweet
Share
More Decks by kakerukaeru
See All by kakerukaeru
大規模ImageOptimizer利用案件から学ぶ 安心安全のCDN移行 / Fastly yamagoya 2022
kakerukaeru
1
1.2k
事業と歩む Ameba システム刷新の道 / the-road-to-ameba-system-renovation-aws-summit-online
kakerukaeru
0
1.6k
事業と歩むAmebaシステム刷新の道 / the-road-to-ameba-system-renovation-cadc
kakerukaeru
0
490
The Shining / ~all work and no play makes jack a dull boy~
kakerukaeru
0
260
AmebaとCDNのお付き合いの歴史 / ameba cdn waiwai
kakerukaeru
0
91
fastlyでええかんじにサイトリニューアル @ Yamagoya Meetup 2018 / e-kanzi Website renewal with fastly
kakerukaeru
0
400
ghe_ameba_arekore
kakerukaeru
2
2.1k
はじめるCassandra
kakerukaeru
1
280
ansible is nani
kakerukaeru
1
330
Other Decks in Technology
See All in Technology
Google Cloud の AI を支える裏側のインフラを垣間見る!
maroon1st
0
340
20240418_Google ColabにLLMが搭載されたようなのでPython x データ分析の勉強方法を考えてみる
doradora09
0
120
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
2
440
データベース02: データベースの概念
trycycle
0
150
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
240
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
250
Cracking the KubeCon CfP
inductor
2
220
Next'24 事例セッションの紹介とクラウド資格を活用したキャリア形成について語りMuscle
yasumuusan
1
430
コンテナセキュリティの基本と脅威への対策
kyohmizu
3
750
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
190
FrontDoorとWebAppsを組み合わせた際のリダイレクト処理の注意点
kenichirokimura
1
490
MySQL の SQL クエリチューニングの要所を掴む勉強会
andpad
2
6k
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
92
4.8k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
Why Our Code Smells
bkeepers
PRO
331
56k
Creatively Recalculating Your Daily Design Routine
revolveconf
210
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Visualization
eitanlees
136
14k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
120
39k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
125
32k
Rebuilding a faster, lazier Slack
samanthasiow
73
8.2k
The Pragmatic Product Professional
lauravandoore
25
5.8k
Transcript
Akamaiを活用した Amebaの画像配信基盤 株式会社サイバーエージェント 技術本部 Service Reliability Group 岩永 翔
agenda
agenda 3 ❏ 自己紹介 ❏ AkamaiとAmeba ❏ 画像配信基盤の紹介 ❏ atlas
❏ hayabusa ❏ 構成概要 ❏ これからの話
自己紹介
自己紹介 5 岩永 翔(いわなが かける) @kakerukaeru ❏ 株式会社サイバーエージェント ❏ インフラエンジニア
❏ コンテンツ配信担当 ❏ 認証とか課金の基盤も見てます ❏ HashiCorp製品が好き ❏ Akamaiさんもterraform対応してくれないかなー ❏ 渋谷でオススメのカレー屋はチリチリです
AkamaiとAmeba
AkamaiとAmeba 7 ❏ 200X年から利用
AkamaiとAmeba 8 ❏ 200X年から利用 ❏ DSD中心 / ION少なめ(画像配信
AkamaiとAmeba 9 ❏ 200X年から利用 ❏ DSD中心 / ION少なめ(画像配信 ❏ Amebaの画像はだいたいAkamaiに乗ってる
AkamaiとAmeba 10 ❏ 200X年から利用 ❏ DSD中心 / ION少なめ(画像配信 ❏ Amebaの画像はだいたいAkamaiに乗ってる
❏ 画像配信基盤の規模感(ピーク帯
AkamaiとAmeba 11 ❏ 200X年から利用 ❏ DSD中心 / ION少なめ(画像配信 ❏ Amebaの画像はだいたいAkamaiに乗ってる
❏ 画像配信基盤の規模感(ピーク帯 ❏ get ❏ 32Gbps ❏ 250,000 req/s
AkamaiとAmeba 12 ❏ 200X年から利用 ❏ DSD中心 / ION少なめ(画像配信 ❏ Amebaの画像はだいたいAkamaiに乗ってる
❏ 画像配信基盤の規模感(ピーク帯 ❏ get ❏ 32Gbps ❏ 250,000 req/s ❏ post ❏ 2,500,000 file/day
AkamaiとAmeba 13 ❏ 200X年から利用 ❏ DSD中心 / ION少なめ(画像配信 ❏ Amebaの画像はだいたいAkamaiに乗ってる
❏ 画像配信基盤の規模感(ピーク帯 ❏ get ❏ 32Gbps ❏ 250,000 req/s ❏ post ❏ 2,500,000 file/day ❏ offload ❏ 85% ~ 95%
AkamaiとAmeba 14 ❏ Akamaiの機能でやってること
AkamaiとAmeba 15 ❏ Akamaiの機能でやってること ❏ Tiered Distribution
AkamaiとAmeba 16 ❏ Akamaiの機能でやってること ❏ Tiered Distribution ❏ Adaptive Image
Compression
AkamaiとAmeba 17 ❏ Akamaiの機能でやってること ❏ Tiered Distribution ❏ Adaptive Image
Compression ❏ Front End Optimization
AkamaiとAmeba 18 ❏ Akamaiの機能でやってること ❏ Tiered Distribution ❏ Adaptive Image
Compression ❏ Front End Optimization ❏ Prefetch
AkamaiとAmeba 19 ❏ Akamaiの機能でやってること ❏ Tiered Distribution ❏ Adaptive Image
Compression ❏ Front End Optimization ❏ Prefetch ❏ modify Cache-key
AkamaiとAmeba 20 ❏ Akamaiの機能でやってること ❏ Tiered Distribution ❏ Adaptive Image
Compression ❏ Front End Optimization ❏ Prefetch ❏ modify Cache-key ❏ Cache-key統合
AkamaiとAmeba 21 ❏ Akamaiの機能でやってること ❏ Tiered Distribution ❏ Adaptive Image
Compression ❏ Front End Optimization ❏ Prefetch ❏ modify Cache-key ❏ Cache-key統合 ❏ QueryStringを含めたCache-Keyの生成
AkamaiとAmeba 22 ❏ Akamaiの機能でやってること ❏ Tiered Distribution ❏ Adaptive Image
Compression ❏ Front End Optimization ❏ Prefetch ❏ modify Cache-key ❏ Cache-key統合 ❏ QueryStringを含めたCache-Keyの生成 ❏ 意図しないCache効率の落ちそうなQueryParameterを 予めEdge側で削除 ❏ etc ...
画像配信基盤の 紹介
画像配信基盤の紹介 24 ❏ atlasについて
画像配信基盤の紹介 25 ❏ atlasについて ❏ 利用サービス
画像配信基盤の紹介 26 ❏ atlasについて ❏ 200x年から存在
画像配信基盤の紹介 27 ❏ atlasについて ❏ 200x年から存在 ❏ amebaと共に育ってきた基盤 ❏ アメブロ
/ スマートフォンプラットフォーム
画像配信基盤の紹介 28 ❏ atlasについて ❏ 200x年から存在 ❏ amebaと共に育ってきた基盤 ❏ アメブロ
/ スマートフォンプラットフォーム ❏ ブラウザゲーム
画像配信基盤の紹介 29 ❏ atlasについて ❏ 200x年から存在 ❏ amebaと共に育ってきた基盤 ❏ アメブロ
/ スマートフォンプラットフォーム ❏ ブラウザゲーム ❏ CommunityService
画像配信基盤の紹介 30 ❏ atlasについて ❏ 200x年から存在 ❏ amebaと共に育ってきた基盤 ❏ アメブロ
/ スマートフォンプラットフォーム ❏ ブラウザゲーム ❏ CommunityService ❏ 基本的なリサイズやクロップなどを提供
画像配信基盤の紹介 31 ❏ atlasについて ❏ 200x年から存在 ❏ amebaと共に育ってきた基盤 ❏ アメブロ
/ スマートフォンプラットフォーム ❏ ブラウザゲーム ❏ CommunityService ❏ 基本的なリサイズやクロップなどを提供 ❏ amebaにまつわるidに紐付く投稿APIを用意
画像配信基盤の紹介 32 ❏ atlasについて ❏ 200x年から存在 ❏ amebaと共に育ってきた基盤 ❏ アメブロ
/ スマートフォンプラットフォーム ❏ ブラウザゲーム ❏ CommunityService ❏ 基本的なリサイズやクロップなどを提供 ❏ amebaにまつわるidに紐付く投稿APIを用意 ❏ Storageも自前でホスティング ❏ ameba専用画像配信基盤
画像配信基盤の紹介 33 ❏ hayabusaについて
画像配信基盤の紹介 34 ❏ hayabusaについて ❏ 利用サービス
画像配信基盤の紹介 35 ❏ hayabusaについて ❏ 利用サービス
画像配信基盤の紹介 36 ❏ hayabusaについて ❏ 2014年からサービス開始
画像配信基盤の紹介 37 ❏ hayabusaについて ❏ 2014年からサービス開始 ❏ amebaの外の世界で作られたサービスのニーズを満たす 社内 Responsive
Image as Service
画像配信基盤の紹介 38 ❏ hayabusaについて ❏ 2014年からサービス開始 ❏ amebaの外の世界で作られたサービスのニーズを満たす 社内 Responsive
Image as Service ❏ Originを用意しドメインを申請するだけで利用可能
画像配信基盤の紹介 39 ❏ hayabusaについて ❏ 2014年からサービス開始 ❏ amebaの外の世界で作られたサービスのニーズを満たす 社内 Responsive
Image as Service ❏ Originを用意しドメインを申請するだけで利用可能 ❏ よりリッチに / 機能多め
画像配信基盤の紹介 40 ❏ hayabusaについて ❏ 2014年からサービス開始 ❏ amebaの外の世界で作られたサービスのニーズを満たす 社内 Responsive
Image as Service ❏ Originを用意しドメインを申請するだけで利用可能 ❏ よりリッチに / 機能多め ❏ リサイズ / クロップ ❏ フォーマット変換とauto拡張子指定での自動フォーマット選択 ❏ PSDレイヤーとスライス切り出し ❏ 最適化(圧縮) ❏ Autoキャッシング機能
画像配信基盤の紹介 41 ❏ hayabusaについて ❏ 2014年からサービス開始 ❏ amebaの外の世界で作られたサービスのニーズを満たす 社内 Responsive
Image as Service ❏ Originを用意しドメインを申請するだけで利用可能 ❏ よりリッチに / 機能多め ❏ リサイズ / クロップ ❏ フォーマット変換とauto拡張子指定での自動フォーマット選択 ❏ PSDレイヤーとスライス切り出し ❏ 最適化(圧縮) ❏ Autoキャッシング機能 ❏ などなど、よりリッチに社内ニーズを満たす機能を実装
構成概要 atlas
構成概要 / atlas 43 iOS client CDN On Premises front
proxy front proxy varnish cluster varnish cluster varnish cluster convert App varnish cluster Archive Storage front proxy atlas API front proxy MySQL front proxy S3 proxy post get
構成概要 / atlas 参照 44 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai On Premises varnish cluster convert App
構成概要 / atlas 参照 45 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai ❏ 100%にしていきたい On Premises varnish cluster convert App
構成概要 / atlas 参照 46 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai ❏ 100%にしていきたい ❏ pathルールでbackendのstorageを決定 On Premises varnish cluster convert App
構成概要 / atlas 参照 47 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai ❏ 100%にしていきたい ❏ pathルールでbackendのstorageを決定 ❏ backendの決定をするのはvarnish On Premises varnish cluster convert App
構成概要 / atlas 参照 48 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai ❏ 100%にしていきたい ❏ pathルールでbackendのstorageを決定 ❏ backendの決定をするのはvarnish ❏ front proxyはチョットシタ処理を挟むだけで基本右から左へスルー On Premises varnish cluster convert App
構成概要 / atlas 参照 49 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai ❏ 100%にしていきたい ❏ pathルールでbackendのstorageを決定 ❏ backendの決定をするのはvarnish ❏ front proxyはチョットシタ処理を挟むだけで基本右から左へスルー ❏ 800GB * 80 = 64TBのcache層 On Premises varnish cluster convert App
構成概要 / atlas 参照 50 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai ❏ 100%にしていきたい ❏ pathルールでbackendのstorageを決定 ❏ backendの決定をするのはvarnish ❏ front proxyはチョットシタ処理を挟むだけで基本右から左へスルー ❏ 800GB * 80 = 64TBのcache層 ❏ VarnishのCache ClusterでThundering Herd問題の対策 On Premises varnish cluster convert App
構成概要 / atlas 参照 51 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai ❏ 100%にしていきたい ❏ pathルールでbackendのstorageを決定 ❏ backendの決定をするのはvarnish ❏ front proxyはチョットシタ処理を挟むだけで基本右から左へスルー ❏ 800GB * 80 = 64TBのcache層 ❏ VarnishのCache ClusterでThundering Herd問題の対策 ❏ front proxyでvarnishのhash ringを所持 On Premises varnish cluster convert App
構成概要 / atlas 参照 52 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ Originにくるtrafficの90%ぐらいがAkamai ❏ 100%にしていきたい ❏ pathルールでbackendのstorageを決定 ❏ backendの決定をするのはvarnish ❏ front proxyはチョットシタ処理を挟むだけで基本右から左へスルー ❏ 800GB * 80 = 64TBのcache層 ❏ VarnishのCache ClusterでThundering Herd問題の対策 ❏ front proxyでvarnishのhash ringを所持 ❏ objectとcache serverを1対1にしてcache hit率を上げる On Premises varnish cluster convert App
構成概要 / atlas Storage 53 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ atlasのStorageは現在2種類 On Premises
構成概要 / atlas Storage 54 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ atlasのStorageは現在2種類 ❏ HotなデータをS3に。 ❏ Warmなデータをgo製の自作Archive Storageに。 On Premises
構成概要 / atlas Storage 55 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ atlasのStorageは現在2種類 ❏ HotなデータをS3に。 ❏ Warmなデータをgo製の自作Archive Storageに。 ❏ チョット前までは複数の Storageを抱えていた ❏ WebDAV ❏ Voldemort ❏ OpenStack Swift On Premises
構成概要 / atlas Storage 56 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ atlasのStorageは現在2種類 ❏ HotなデータをS3に。 ❏ Warmなデータをgo製の自作Archive Storageに。 ❏ チョット前までは複数の Storageを抱えていた ❏ WebDAV ❏ Voldemort ❏ OpenStack Swift ❏ file数が多すぎてinodeのキャッシュが乗り切らず Storageがスケールしくなってきた段階で 新規データをS3に逃がす対応を入れた On Premises
構成概要 / atlas Storage 57 iOS 自作 Storage群 Archive Storage
varnish cluster varnish cluster front proxy front proxy ❏ atlasのStorageは現在2種類 ❏ HotなデータをS3に。 ❏ Warmなデータをgo製の自作Archive Storageに。 ❏ チョット前までは複数の Storageを抱えていた ❏ WebDAV ❏ Voldemort ❏ OpenStack Swift ❏ file数が多すぎてinodeのキャッシュが乗り切らず Storageがスケールしくなってきた段階で 新規データをS3に逃がす対応を入れた ❏ またコスト面も加味し、定期的に S3からWarmなデータを自作Archive Storageにマイグレーションするようにしている。 On Premises
構成概要 hayabusa
構成概要 / hayabusa 59 iOS client CDN AWS Varnish +
hayabusa App ECS Management Service Origins Cache
これからの事
これからの事 61 ❏ Cache-Keyの統合 ❏ 歴史的経緯で対応ドメインが数十個ある
これからの事 62 ❏ Cache-Keyの統合 ❏ 歴史的経緯で対応ドメインが数十個ある ❏ 配信のconfigを分けてしまっていた事もあり、単一オリジンか つ同一コンテンツであるにもかかわらずCache-Keyが別れる ような状況
これからの事 63 ❏ Cache-Keyの統合 ❏ 歴史的経緯で対応ドメインが数十個ある ❏ 配信のconfigを分けてしまっていた事もあり、単一オリジンか つ同一コンテンツであるにもかかわらずCache-Keyが別れる ような状況
❏ 規約違反の画像が上がってpurgeしても、他ドメインでの キャッシュが残ってしまう状態
これからの事 64 ❏ Cache-Keyの統合 ❏ 歴史的経緯で対応ドメインが数十個ある ❏ 配信のconfigを分けてしまっていた事もあり、単一オリジンか つ同一コンテンツであるにもかかわらずCache-Keyが別れる ような状況
❏ 規約違反の画像が上がってpurgeしても、他ドメインでの キャッシュが残ってしまう状態 ❏ 煩雑化したCache-Keyを統合し、運用とパフォーマンスの観 点で最適化を図る
これからの事 65 ❏ Cache-Keyの統合 ❏ 歴史的経緯で対応ドメインが数十個ある ❏ 配信のconfigを分けてしまっていた事もあり、単一オリジンか つ同一コンテンツであるにもかかわらずCache-Keyが別れる ような状況
❏ 規約違反の画像が上がってpurgeしても、他ドメインでの キャッシュが残ってしまう状態 ❏ 煩雑化したCache-Keyを統合し、運用とパフォーマンスの観 点で最適化を図る ❏ Edge側でのCache-Keyの作り方を統一するということ
これからの事 66 ❏ Aqua ION化 ❏ サイトのHTTP/2化に伴う画像配信基盤のHTTP/2化対応 ❏ hayabusaもAkamai化
これからの事 67 ❏ Aqua ION化 ❏ サイトのHTTP/2化に伴う画像配信基盤のHTTP/2化対応 ❏ hayabusaもAkamai化 ❏
Cloud Monitor導入 ❏ Edge側のパフォーマンスや調査をリアルタイムで行うのはデ フォルトだと難しい。問題発生時の調査が遅れたりパフォーマ ンスの可視化が出来ていないとそれだけ、配信品質が下がっ てしまう ❏ ので、可視化していきます。
おわり 68 thank you :)