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
JAWS-UG名古屋 サーバーレスなバッチ処理 / Serverless Batch Proc...
Search
TATSUNO Yasuhiro
December 22, 2017
Programming
1.1k
1
Share
JAWS-UG名古屋 サーバーレスなバッチ処理 / Serverless Batch Processing
re:Invent 2017 でどう変わる
JAWS-UG名古屋 2017忘年会 LT
TATSUNO Yasuhiro
December 22, 2017
More Decks by TATSUNO Yasuhiro
See All by TATSUNO Yasuhiro
ゆくKotlin くるRust
exoego
1
290
Scala 3 で GLSL のための c-like-for を実装してみた
exoego
1
1k
Bun に LCOV 出力を実装した
exoego
2
360
terraform-provider-aws にプルリクして マージされるまで
exoego
2
510
ライブラリをパブリッシュせずにすばやく試す
exoego
2
360
esbuild 最適化芸人
exoego
3
2.7k
いい感じに AWS を組み合わせたビルディングブロックでアプリ開発を支援する / TdTechTalk 2022 11
exoego
0
920
Empowering App Dev by Nicely-Crafted High-Level AWS Components
exoego
0
120
月間数十億リクエストのマイクロサービスを支える JVM+AWS フルサーバーレス開発事例 / Now and Future of Fully Serverless development at Chatwork
exoego
1
840
Other Decks in Programming
See All in Programming
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
5
1k
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
460
CSC307 Lecture 17
javiergs
PRO
0
310
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
2
800
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
340
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
2
1.3k
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
2.9k
GitHub Copilot CLIのいいところ
htkym
2
1.2k
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
130
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
640
The Arts and Crafts of Work in the AI Era — Toward Mastery in Software Development
kuranuki
1
700
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
270
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
130
How STYLIGHT went responsive
nonsquared
100
6.2k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
The Invisible Side of Design
smashingmag
302
52k
So, you think you're a good person
axbom
PRO
2
2k
My Coaching Mixtape
mlcsv
0
140
Writing Fast Ruby
sferik
630
63k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
300
The browser strikes back
jonoalderson
0
1.1k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
170
Paper Plane (Part 1)
katiecoart
PRO
0
8.2k
Transcript
サーバーレスなバッチ処理 re:Invent 2017でどう変わる 立野靖博 2017-12-20 JAWS-UG名古屋
名前: 立野靖博 所属: 来栖川電算 機械学習SaaS開発リーダー 経歴: 製造業系SE6年→現職2年、AWS9ヶ月 好きなAWS: Lambda, CloudFront
コミュニティ: FP in Scala読書会の主催など
2017年のAWSと私 AWS Lambda Amazon S3 Amazon DynamoDB Amazon CloudFront Amazon
ES Amazon API Gateway Amazon Cognito user 初AWS、初サーバーレスで製品開発 安くてスケールして管理が減って最高 AWS Lambda • 画像、動画、JS/HTML/CSS… • 一時的な認可URL発行 • リバースプロキシ • CDN • ビジネスロジック • 自動スケールアウト • API管理 • データベース • 自動スケールアウト • アカウント管理 • 認証 • リッチな検索 • スケールアウト • レプリカ
インフラをAWSにマネージさせて、 開発者として製品に集中できるから 一度でもサーバーレスを体験すると アレもコレもサーバーレス という考えが頭から離れなくなる
None
オンライン処理(API)は サーバーレスにできた バッチ処理はできるかな?
バッチ処理の具体例 月次売上集計 給料計算 不正取引検知 経営 科学・工業 開発・運用 CGレンダー 計算化学 天気予報
大規模テスト 画像動画の圧縮 バックアップ
メモリ数GB 要GPU等 数分~時間 日次や月次の 重め・長めな処理 一定期間・量のデータが 揃うまで処理できない バッチ処理の特性とLambda 定時実行やファイル検知 などで起動できる
Lambdaだけじゃ厳しい ではどうする? メモリ1.5GB迄 処理時間5分迄
今日のお話 • サーバーレスアーキテクチャでの バッチ処理 実装パターン例 • re:Invent 2017 後にどうなる
言い訳 行ってません 経験 9ヶ月 ツッコミどころあるかと思いますが LT後にお手柔らかにお願いします
サーバーレス バッチ処理 実装パターン
サーバーレスなバッチ処理の AWS実装パターン例 1. CloudWatchで定時実行 2. SNSで分散処理 3. StepFunctionで複雑な工程管理 4. Batchで何でもあり
パターン① 定時実行 定時実行バッチはCloudWatchをトリガに。 cron式も使えます AWS Lambda •ビジネスロジック Amazon CloudWatch •スケジューラ
指定時刻になったら Lambda起動
パターン② 分散処理 5分以内に終わるLambdaに分割するのが肝 SNSを間に挟むことで柔軟に AWS Lambda •ジョブの起動 Amazon S3 ファイル検知
Amazon SNS publish •Pub-Sub 480pに エンコード 720p 1080p サムネイル 生成 •ジョブ実行 疎結合 subscribe
パターン③ 複雑な工程管理 複雑な工程で長時間かかるバッチは Lambdaを小分けにしてStep Functions AWS Step Functions ジョブの分岐 並列ジョブ実行
•状態マシン •ジョブ(単機能のLambda) の順序の制御 https://aws.amazon.com/jp/step-functions/ を改変
パターン④ 何でもあり、最終奥義 Lambdaの分割ぶっちゃけ面倒くさい CPU/Mem/GPUがめっちゃ必要 特定のソフトウェアを実行したい AWS Lambda •トリガーを受けてジョ ブを登録 AWS
Batch •ジョブ(ビジネスロジック) の実行役 •CPUやメモリカスタマイズ •必要なEC2を自動で管理 Jobをsubmit 何らかの トリガー Batch
re:Invent情報
re:Invent 2017 直前(2017/11/15) • 以前は一度作った状態マシンは更新できず、 改修のたびに作りなおしが必要だった→ デプロイしんどかった • ようやく更新できるようになった AWS
Step Functions が状態マシンの更新をサポート https://aws.amazon.com/jp/about-aws/whats-new/2017/11/aws-step-functions-adds-support-for-updating-state-machines/
re:Invent 2017 • 上限 1.5 GB が 3.0 GBに倍増 •
Lambdaはメモリ多いほどCPUも速くなる ので、1.5 GBで5分以内に収まらなかった 処理もイケるかも • メモリ不足で Batch 使ってたところも減ら せそう AWS Lambda で Lambda 関数の最大メモリ容量を倍増 https://aws.amazon.com/jp/about-aws/whats-new/2017/11/aws-lambda-doubles-maximum-memory-capacity-for-lambda-functions/
re:Invent 2017 • 1ジョブのsubmitで大量の子ジョブを並列実行 できるようになった、らしい • ユースケース • パラメトリックスイープ(実験パラメータの探索) •
モンテカルロ シミュレーション(株価や人員や在庫な どの将来予測) • 単純に、ファイルがめっちゃ多いとか AWS Batch で配列ジョブによる大規模なジョブの送信の サポートを追加 https://aws.amazon.com/jp/about-aws/whats-new/2017/11/aws-batch-adds-support-for-large-scale-job-submissions/
re:Invent 2017 • フルマネージドなDockerクラスタ • EC2クラスタ管理の手間があるAWS Batchを置 き換えられそう? • Dockerで実行環境作りたいなら
Fargate良さげ。 単純なバッチ処理に使うだけなら、ジョブを submitするだけでよいAWS Batchがラクかも? • Load Balancerが入る関係かお高め。 • 東京リージョンはまだ… AWS Fargate のご紹介 https://aws.amazon.com/jp/about-aws/whats-new/2017/11/introducing-aws-fargate-a-technology-to-run-containers-without- managing-infrastructure/
まとめ
まとめ • Lambda や Batch で、さまざまなバッチ処理を サーバーレスに実装できる • 複雑・長時間処理・めっちゃ並列処理させた いときは
Step Functions や Batch • Lambdaの性能上限が上がったので、5分以内 を気にすることがちょっと減った • 新サービス Fargate でEC2クラスタ管理が不要 になるが、東京リージョンはまだ&お高い…