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.4k
GCPでのバッチ処理パターンを考えてみる
SatohJohn
December 15, 2022
Tweet
Share
More Decks by SatohJohn
See All by SatohJohn
検索システムにおけるセキュリティ
satohjohn
0
58
Feature Flag 開発を標準化し、加速させる OpenFeature を導入する
satohjohn
3
2.2k
ADK Java が出たので AI Agent を作ろう
satohjohn
0
140
NotebookLM + Agentspace を使った(開発)体験
satohjohn
1
770
Open Feature 面白いぞ
satohjohn
0
99
Workforce Identity を使った 権限管理で Cloud Run を動かしてみた
satohjohn
0
670
Gemini + Vertex AI を使って作業を自動化「していく」
satohjohn
0
98
Cloud_Run_GPU___Gemma_2_を使った_LLM_アプリケーション開発のススメ.pdf
satohjohn
0
35
Firebase Authenticationのセッション管理術
satohjohn
2
2.5k
Other Decks in Programming
See All in Programming
The Flutter Journey of Building a Live Streaming App — With a Side of Performance Tuning
u503
1
100
Railsだからできる 例外業務に禍根を残さない 設定設計パターン
ei_ei_eiichi
0
400
Things You Thought You Didn’t Need To Care About That Have a Big Impact On Your Job
hollycummins
0
200
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
210
AI Coding Meetup #3 - 導入セッション / ai-coding-meetup-3
izumin5210
0
650
What's new in Spring Modulith?
olivergierke
1
120
ネイティブ製ガントチャートUIを作って学ぶUICollectionViewLayoutの威力
jrsaruo
0
140
CSC509 Lecture 04
javiergs
PRO
0
300
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
210
Six and a half ridiculous things to do with Quarkus
hollycummins
0
140
Domain-centric? Why Hexagonal, Onion, and Clean Architecture Are Answers to the Wrong Question
olivergierke
2
750
開発生産性を上げるための生成AI活用術
starfish719
3
300
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
5
210
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Navigating Team Friction
lara
189
15k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
54
3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
970
Designing Experiences People Love
moore
142
24k
Thoughts on Productivity
jonyablonski
70
4.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Why Our Code Smells
bkeepers
PRO
339
57k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
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