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
EC2 で運用していた定期実行のバッチ処理を AWS Batch + EventBridge にした
Search
Yuta Dammatsu
November 19, 2021
0
61
EC2 で運用していた定期実行のバッチ処理を AWS Batch + EventBridge にした
趣味で開発しているアプリのバッチ処理を EC2 → AWS Batch + EventBridge にした話です。
Yuta Dammatsu
November 19, 2021
Tweet
Share
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
The agentic SEO stack - context over prompts
schlessera
0
700
Mobile First: as difficult as doing things right
swwweet
225
10k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
80
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
200
Large-scale JavaScript Application Architecture
addyosmani
515
110k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
150
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Transcript
EC2 で運用していた定期実行のバッチ処理を AWS Batch + EventBridge にした
今回は自分が趣味で運用しているWebアプリの話 • どんなバッチ処理をしていたか → 対象サイトを10分ごとに Selenium でスクレイピング
従来のバッチ処理 • EC2 1台で実行 • 環境構築はSSHして必要なものを手動インストール → chromedriver とか入れるのがめんどくさい... •
スケジューリングは whenever という gem を使用 → crontab を使っているのとそこまで変わらずめんどくさい...
課題 • 環境構築するのがとても大変 • 各ジョブのモニタリングやログの出力ができていなかった • デプロイしたり、バッチ処理の設定を変更するのも面倒 • EC2をずっと動かすとお金がかかる →
約2000円/月
どうしていきたいか • 環境構築するのがとても大変 → Docker で環境構築したい。 • 各ジョブのモニタリングやログの出力ができていない → 管理画面で状況を見たい
& ログの設定もよしなにしたい • デプロイしたり、バッチ処理の設定を変更するのも面倒 → サーバーにSSHして設定するのはしたくない • EC2をずっと動かすとお金がかかる → バッチ処理時だけ動かしたい
None
AWS Batch とは
AWS Batch の概念 1. コンピューティング環境 → VPC, サブネットなどの設定 2. ジョブキュー
→ ジョブを管理するキュー 3. ジョブ定義🌟 → ECRのイメージの設定やメモリCPUの設定 4. ジョブ → ジョブ定義より生成される。
ジョブ定義について
好きな名前をつける 自分はとりあえず Fargate にし てみた。 これだけかかると明らかにおか しいみたいな秒数をつけておくと いいと思う。 リトライの回数を指定できる。
ECRのURIを設定 実行したいコマンドを書く。 Dockerfile の CMD に設定して いればそれでも良い。 ネットワークのアクセスが必要な らチェック メモリとCPUは任意で
その他の設定を開くと、 環境変数設定やログの設定が できる。 作成をクリック
AWS Batch 単体では定期実行はできない。 → キックするものが必要。
None
Amazon Event Bridge とは
名前と説明は好きなものを 定期実行なのでスケジューリン グを選択。 cron 式で記入。 (自動で実行時間のスケジュー ルが出てくれる。地味にありがた い。)
ターゲットは バッチジョブのキューを選ぶ ジョブキューとジョブ定義の ARN を記入。AWS Batchの画面を確 認する。 (選択肢にしてほしい) ジョブ名は好きなものをつける。
あとは作成を押すだけ。
ダッシュボード(各ジョブの詳細も見れる)
ログ(aws/batch/job 以下にログが流れてくる。)
まとめ • ECS のタスク定義みたいな感じでジョブ定義ができて便利。 • 各ジョブの状態もダッシュボードで見やすい。 • Event Bridge と組み合わせるとスケジューリングできる。
• 料金が2000円→300円に。