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.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GCPでのバッチ処理パターンを考えてみる
SatohJohn
December 15, 2022
More Decks by SatohJohn
See All by SatohJohn
BigQuery を検索ソースとした AI Agent の作り方って 〇〇 通りあんねん
satohjohn
0
170
Claude Codeで評価を楽にする
satohjohn
0
85
A2UI という光を覗いてみる
satohjohn
1
200
_Architecture_Modernization_から学ぶ現状理解から設計への道のり.pdf
satohjohn
2
1.3k
アーキテクチャモダナイゼーションを実現する組織
satohjohn
1
1.6k
Vertex_AI_Searchを使いこなす実践テクニック
satohjohn
1
240
アーキテクチャモダナイゼーションの書籍紹介
satohjohn
0
70
NVIDIA NeMo Agent Tooklit を使ってみた
satohjohn
0
140
Gemini Enterprise を恐れない - Securityと監査-
satohjohn
0
230
Other Decks in Programming
See All in Programming
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.7k
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
930
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
930
リアルな遅延を測る仕様
kota_yata
1
100
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
230
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
180
メールのエイリアス機能を履き違えない
isshinfunada
0
240
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
290
今さら聞けない .NET CLI
htkym
0
190
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
140
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
Building a Meta Ray-Ban display app
akkeylab
0
150
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
470
Exploring anti-patterns in Rails
aemeredith
3
460
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Documentation Writing (for coders)
carmenintech
77
5.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
520
Code Reviewing Like a Champion
maltzj
528
40k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
290
Building Applications with DynamoDB
mza
96
7.2k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Speed Design
sergeychernyshev
33
2k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
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