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
55
EC2 で運用していた定期実行のバッチ処理を AWS Batch + EventBridge にした
趣味で開発しているアプリのバッチ処理を EC2 → AWS Batch + EventBridge にした話です。
Yuta Dammatsu
November 19, 2021
Tweet
Share
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Writing Fast Ruby
sferik
628
62k
Docker and Python
trallard
44
3.5k
Statistics for Hackers
jakevdp
799
220k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
740
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Navigating Team Friction
lara
187
15k
Stop Working from a Prison Cell
hatefulcrawdad
271
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円に。