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
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Music & Morning Musume
bryan
46
6.7k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.3k
The World Runs on Bad Software
bkeepers
PRO
70
11k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
108
19k
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円に。