Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Cloud Run における非同期処理方式 - 2/22 GDG Tokyo LT資料 -
Search
Makoto.M
February 22, 2024
320
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cloud Run における非同期処理方式 - 2/22 GDG Tokyo LT資料 -
Makoto.M
February 22, 2024
More Decks by Makoto.M
See All by Makoto.M
大規模な Kubernetes クラスタ環境を運用していくための GKE Enterprise
makocchan0509
0
350
クラウドネイティブデイズ福岡 LTスライド - Synthetic Monitoringが Google Cloud で出た
makocchan0509
0
120
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
620
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
Speed Design
sergeychernyshev
33
2.2k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Designing for humans not robots
tammielis
254
26k
Navigating Weather and Climate Data
rabernat
0
560
エンジニアに許された特別な時間の終わり
watany
109
250k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Transcript
Cloud Run における非同期処理方式
自己紹介 • 仕事内容 ◦ Google Cloud を中心としたコンサル、インテグレーションに従事 ◦ 主にコンテナ領域を専門としながらアプリ、インフラ、マネジメント全般を 担当
• その他 ◦ リモートでの資格試験では自宅の浴室で受験 ◦ Google Cloud Champion Innovators (Modern Architecture, Serverless App Development) ◦ Google Cloud Partner Top Engineer 2024 間瀬 真 (@Makocchan_Re) ☜最近浴室受験で取得
本日お話しすること • Cloud Run を使って非同期的にデータの処理をしていた際につまづいた点とそ の対策について簡単に紹介します。
Cloud Run はいいぞ • サーバーレスなコンテナ実行環境 • HTTP等のリクエストをリッスンする Service タイプと 時刻やイベントドリブン
で起動する Job タイプがある。 • コンソールからデプロイする際には、最低 でもコンテナイメージと認証要否のたった 2 つの項目を入力するだけ!! • GKE 使う前にまずは Cloud Run じゃダメ なのか考えるようにしています。
とあるサービスでのアーキテクチャ • 外部から入力されるデータをバックエンド上でリアルタイムにMLモデルを使って分類 しDWHへ蓄積する。 • Cloud Run の アプリ は
Pub/Sub を介して非同期的に処理を実行する。 ① データアップロードと前処理 ②ファイルアップロード ③ファイルイベント ④ファイルイベント駆動での リクエスト送信 (Push) ⑤データ分類処理 ⑥分類結果の蓄積 Cloud Run (前処理アプリ) Cloud Storage (オブジェクトストレージ ) Pub /Sub (メッセージング) Cloud Run (分類アプリ) BigQuery (DWH) Service Service
課題 動画ファイルアップ 画像への分割 大量にPushリクエストが発生 ・分類アプリでの分類処理に時間がかかり、大量のデータを処理する際にオートスケールしても処理が 追いつかない状況に。 ・結果、Pub/Sub にてタイムアウト(最大10min)&リトライが発生して無限ループに。 処理が滞留 前処理アプリ
分類アプリ (一部割愛) 大量のファイルイベント
反省点と見直し方針 • 反省点 ◦ 分類処理にそれなりに時間がかかることを予測できていなかった。 • 前提 ◦ 分類処理で使うモデルは今後もチューニングが発生する。 ▪
つまり分類処理にかかる時間は変動することに ◦ ユーザーがアップロードするデータの仕様( fps, 動画の長さ)も変化する。 ▪ サービス仕様として縛ることが困難 • 見直し方針 ◦ データや分類処理に寄らず一定の負荷量で処理できるようにしたい。
見直し後のアーキテクチャ • Cloud Run を Service から Job へ変更し、 Pub/Sub
は Push から Pull 方式へ ◦ Pull によって大量データの処理がにおいても負荷のコントロールができるように • Cloud Workflows によって Cloud Run Job のオーケストレーションを実施 ① データアップロード Cloud Run (前処理アプリ) Cloud Run (分類アプリ) Eventarc Workflows ②ワークロード起動 ③前処理 & ファイルアップロード ④ Pull & データ分類処理 Job Job
当時採用してないけど、採用したかった案 • Cloud Tasks による流量制御の選択肢があったが、該当機能はプレビューだったので見送り • 採用できれば構成としてはかなりシンプルになる。 • Cloud Run
Jobs は 24h の時間制限があり常時起動できないので、 Pull 型の処理と相性が良くないと感 じている。 イベント駆動での リクエスト送信 (Push) Pub /Sub (一部割愛) Cloud Tasks リクエストの流量制御 + Buffer Task メソッドによるリ クエストルーティング Buffer Task メソッドによって Push 先のエンドポイントとして指 定可能になるが、現時点でもプレビュー Service
まとめ • Cloud Run と Pub/Sub Push を組み合わせた非同期処理はシンプルで実装しやす いが、流量制御が効かないことに注意 •
代替策として Cloud Run Jobs による処理が候補になるが、起動時間制限(~24h)が あるのでジョブのライフサイクルは考えなければいけない。 • Cloud Tasks の Buffer Task メソッド早く GA してほしい。
Cloud Run における非同期処理方式
Thank you