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
Scala 3 で GLSL のための c-like-for を実装してみた
exoego
1
670
Bun に LCOV 出力を実装した
exoego
2
260
terraform-provider-aws にプルリクして マージされるまで
exoego
2
450
ライブラリをパブリッシュせずにすばやく試す
exoego
2
300
esbuild 最適化芸人
exoego
3
2.2k
いい感じに AWS を組み合わせたビルディングブロックでアプリ開発を支援する / TdTechTalk 2022 11
exoego
0
800
Empowering App Dev by Nicely-Crafted High-Level AWS Components
exoego
0
83
月間数十億リクエストのマイクロサービスを支える JVM+AWS フルサーバーレス開発事例 / Now and Future of Fully Serverless development at Chatwork
exoego
1
770
Scala と AWS でフルサーバーレス開発事例 / How Chatworks uses Scala and Serverless
exoego
3
1.5k
Other Decks in Programming
See All in Programming
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
13
3.2k
Infer入門
riru
4
1.6k
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
180
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
470
CSC305 Summer Lecture 04
javiergs
PRO
1
110
TanStack DB ~状態管理の新しい考え方~
bmthd
2
330
UbieのAIパートナーを支えるコンテキストエンジニアリング実践
syucream
2
700
コーディングエージェント時代のNeovim
key60228
1
100
画像コンペでのベースラインモデルの育て方
tattaka
3
1.9k
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
13
2.8k
Flutter로 Gemini와 MCP를 활용한 Agentic App 만들기 - 박제창 2025 I/O Extended Seoul
itsmedreamwalker
0
150
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
1k
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
96
6.2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
480
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Automating Front-end Workflow
addyosmani
1370
200k
GitHub's CSS Performance
jonrohan
1031
460k
Documentation Writing (for coders)
carmenintech
73
5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Designing for humans not robots
tammielis
253
25k
A designer walks into a library…
pauljervisheath
207
24k
How to Ace a Technical Interview
jacobian
279
23k
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クラスタ管理が不要 になるが、東京リージョンはまだ&お高い…