$30 off During Our Annual Pro Sale. View Details »
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
1.1k
JAWS-UG名古屋 サーバーレスなバッチ処理 / Serverless Batch Processing
re:Invent 2017 でどう変わる
JAWS-UG名古屋 2017忘年会 LT
TATSUNO Yasuhiro
December 22, 2017
Tweet
Share
More Decks by TATSUNO Yasuhiro
See All by TATSUNO Yasuhiro
ゆくKotlin くるRust
exoego
1
140
Scala 3 で GLSL のための c-like-for を実装してみた
exoego
1
860
Bun に LCOV 出力を実装した
exoego
2
300
terraform-provider-aws にプルリクして マージされるまで
exoego
2
470
ライブラリをパブリッシュせずにすばやく試す
exoego
2
310
esbuild 最適化芸人
exoego
3
2.5k
いい感じに AWS を組み合わせたビルディングブロックでアプリ開発を支援する / TdTechTalk 2022 11
exoego
0
840
Empowering App Dev by Nicely-Crafted High-Level AWS Components
exoego
0
90
月間数十億リクエストのマイクロサービスを支える JVM+AWS フルサーバーレス開発事例 / Now and Future of Fully Serverless development at Chatwork
exoego
1
800
Other Decks in Programming
See All in Programming
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
150
認証・認可の基本を学ぼう後編
kouyuume
0
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
260
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
0
250
チームをチームにするEM
hitode909
0
370
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
270
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
3
390
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
140
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.3k
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
940
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
400
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
130
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Curious Case for Waylosing
cassininazir
0
190
4 Signs Your Business is Dying
shpigford
186
22k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
180
For a Future-Friendly Web
brad_frost
180
10k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
22
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
23
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
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クラスタ管理が不要 になるが、東京リージョンはまだ&お高い…