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
GCPでのバッチ処理パターンを考えてみる
Search
SatohJohn
December 15, 2022
Programming
1
1.3k
GCPでのバッチ処理パターンを考えてみる
SatohJohn
December 15, 2022
Tweet
Share
More Decks by SatohJohn
See All by SatohJohn
Feature Flag 開発を標準化し、加速させる OpenFeature を導入する
satohjohn
3
1.8k
ADK Java が出たので AI Agent を作ろう
satohjohn
0
48
NotebookLM + Agentspace を使った(開発)体験
satohjohn
1
630
Open Feature 面白いぞ
satohjohn
0
81
Workforce Identity を使った 権限管理で Cloud Run を動かしてみた
satohjohn
0
450
Gemini + Vertex AI を使って作業を自動化「していく」
satohjohn
0
76
Cloud_Run_GPU___Gemma_2_を使った_LLM_アプリケーション開発のススメ.pdf
satohjohn
0
32
Firebase Authenticationのセッション管理術
satohjohn
2
2.4k
お客様とすすめる_フロントエンドの技術支援.pdf
satohjohn
1
1.1k
Other Decks in Programming
See All in Programming
WindowInsetsだってテストしたい
ryunen344
1
190
Spring gRPC で始める gRPC 入門 / Introduction to gRPC with Spring gRPC
mackey0225
2
520
DroidKnights 2025 - 다양한 스크롤 뷰에서의 영상 재생
gaeun5744
3
300
データベースコネクションプール(DBCP)の変遷と理解
fujikawa8
1
270
Select API from Kotlin Coroutine
jmatsu
1
180
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
41
27k
Practical Tips and Tricks for Working with Compose Multiplatform Previews (mDevCamp 2025)
stewemetal
0
130
AIネイティブなプロダクトをGolangで挑む取り組み
nmatsumoto4
0
120
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
280
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.5k
Is Xcode slowly dying out in 2025?
uetyo
0
110
エラーって何種類あるの?
kajitack
5
250
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1370
200k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
4 Signs Your Business is Dying
shpigford
184
22k
Gamification - CAS2011
davidbonilla
81
5.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Scaling GitHub
holman
459
140k
Designing for humans not robots
tammielis
253
25k
Making the Leap to Tech Lead
cromwellryan
134
9.3k
Unsuck your backbone
ammeep
671
58k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
GCPでのバッチ処理 パターンを考えてみる 3-shake SRE Tech Talk 2022/12/15 佐藤慧太@SatohJohn
自己紹介 佐藤 慧太@SatohJohn - toC向けアプリケーションの作成を やってます - GCP触ってます - 転職します(有給消化task実行中
- 結婚します(婚姻task実行中 2
今回話すこと GCPでのバッチ処理を実装するとしたら、どんな手段があるのか? それぞれの機能について、個人の感覚での紹介で話したいです 3
バッチ処理における観点 持論として - どのくらいの頻度で実施するのか? - どんな処理をするのか? - どれぐらい時間がかかるのか? で、基本的には使い分けるのが良いと思っております 4
どのくらいの頻度で実施するのか? - 定期的に実施したい - 1時間、1日に1度など - データが来た度に実施したい - 1回だけ実施したい -
同じジョブを再度実施したいこともある 5
どんな処理をするのか? - ETL的に他サービスのデータを整形して保存したい - 内部データの整理をしたい - データの整合性を担保したい、不要なゴミデータを削除したい - 集計、加工をして、別の storeにいれて、キャッシュとして利用したい
- 機械学習モデルのトレーニング、評価をしたい 6
どれぐらい時間がかかるのか? - 軽い処理(5分以内) - まぁまぁな処理(1時間以内) - 重い処理(それ以上) 7
個人の感覚におけるフローチャート 8
使えそうなGCPサービスの例 - Cloud Schedulerを使う - Cloud Functions - Cloud Run
Jobs - Batch - Vertex Pipeline - その他 - Google Kubernetes Engine - Big Query - Cloud Data Fusion 9
Cloud Schedulerを使う 10
Cloud Functions - HTTPまたはPubSubで起動するスクリプトが簡単にかける - 金額安く、簡単な処理がかけるのでお手軽 - 処理時間がかかる場合は別手段を検討すべき - 実装できる言語が限られるのが難点かも
11
Cloud Run Jobs - Cloud Functionsよりも実行時間長く、かつ、CPUメモリも多く使える - とはいえ1時間が限度なのでそれ以上は無理 - コンテナとして起動するので実装言語は何でもいい
- Taskとしてまとめられるので、結果がコンソールで時系列で見れる 12
Batch - Cloud Runよりもより長時間で、GPUを使ったタスクも実行できる - 特定のimageまたはscriptをCompute Engine上で動かすことができるようなもの - SSDとかFileStorageをマウントしたVMを指定して動かすということができる -
spot vmも使えるので金額は抑えやすい - Cloud RunのようにTaskとしてまとまるわけじゃない - jobIdを一意として実行されるので、定期的に同じを jobをやる場合 コンソール上だと命名規則規則などで若干工夫が必要 13
Vertex Pipeline - 機械学習のpipelineの処理に適したサービス - 評価データの結果を閲覧できる - バージョンの比較もできる - AI
pipelineとおんなじ感じでかける(らしい 14
その他 15
Google Kubernetes EngineのCronJob - Kubernetes上で完結できるため、管理はしやすいかな - 実行時間制限が基本ないので困ったらこれ - 制限することもできる https://cloud.google.com/kubernetes-engine/docs/how-to/cronjobs?hl=ja
- Kubernetesにシステムを寄せているのであれば使っていくのはあり 16
BigQuery - Scheduled Query - 外部リソースを使えるようにして定期的に外部データをテーブルに突っ込むことができる - 単純な集計はこれが一番良さそう - Data
Transfer Service - AWSのS3のデータなどの外部データを、 BigQueryに突っ込むことができる - データの整合が取れていれば問題なく行けるが、だいたいうまく行かないので、 Dataflowとかを 使うことが多い 17
Cloud Data Fusion - GUIを使ってpipelineを作成ができるETLツール - プログラミングしなくてもデータを整形できる - 定期実行の処理も内部で任せられる -
pipelineの結果もまとまるのである程度見やすい - ログは見やすいとは言えない 18
まとめ 今回紹介しているのは本日までの個人的な感覚です 他にもありますので一度触ってみて感触を確かめるのがいいかなど思います 19
まとめ 今回紹介しているのは本日までの個人的な感覚です 他にもありますので一度触ってみて感触を確かめるのがいいかなど思います 個人的にバッチ処理のおすすめはCloud Run Jobsです 20
おわり 21