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
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
220
Scala 3 で GLSL のための c-like-for を実装してみた
exoego
1
920
Bun に LCOV 出力を実装した
exoego
2
320
terraform-provider-aws にプルリクして マージされるまで
exoego
2
480
ライブラリをパブリッシュせずにすばやく試す
exoego
2
330
esbuild 最適化芸人
exoego
3
2.6k
いい感じに AWS を組み合わせたビルディングブロックでアプリ開発を支援する / TdTechTalk 2022 11
exoego
0
870
Empowering App Dev by Nicely-Crafted High-Level AWS Components
exoego
0
98
月間数十億リクエストのマイクロサービスを支える JVM+AWS フルサーバーレス開発事例 / Now and Future of Fully Serverless development at Chatwork
exoego
1
810
Other Decks in Programming
See All in Programming
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
190
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
300
AtCoder Conference 2025
shindannin
0
1k
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
380
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
610
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
690
Package Management Learnings from Homebrew
mikemcquaid
0
200
AI Agent の開発と運用を支える Durable Execution #AgentsInProd
izumin5210
7
2.3k
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
170
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
420
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
64
Typedesign – Prime Four
hannesfritz
42
2.9k
The Invisible Side of Design
smashingmag
302
51k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
4 Signs Your Business is Dying
shpigford
187
22k
Testing 201, or: Great Expectations
jmmastey
46
8k
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クラスタ管理が不要 になるが、東京リージョンはまだ&お高い…