1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS BatchとEventBridgeの使い分け

Posted at

AWS BatchとEventBridgeの活用:バッチ処理とイベント駆動型アーキテクチャの実現

はじめに

AWS BatchとEventBridgeは、AWS上でバッチ処理やイベント駆動型アプリケーションを構築する際に重要な役割を果たします。本記事では、それぞれの利用目的や使い分け、具体的な利用方法と例について解説します。

AWS Batchとは

AWS Batchは、スケーラブルなバッチ処理を実行するためのマネージドサービスです。コンテナイメージを利用してジョブを実行でき、インフラのプロビジョニングやスケジューリングを自動化します。

AWS Batchのアーキテクチャ

利用目的

  • 大量データの処理や定期バッチの自動実行
  • HPC(High Performance Computing) ワークロードの実行
  • 大量の非同期タスクの効率的な管理

利用方法

  1. コンピューティング環境の定義: コンピュート環境(EC2/Spot/Fargate)を作成し、ジョブを実行するインスタンスを指定します。
  2. ジョブキューの設定: ジョブを投入するキューを作成し、優先度やコンピュート環境を関連付けます。
  3. ジョブ定義の作成: Dockerイメージや実行コマンド、リソース要件を記述したジョブ定義を作成します。
  4. ジョブの投入: AWS CLIやSDKからジョブキューにジョブを投入し、実行を待ちます。

具体例

aws batch submit-job \
  --job-name data-processing \
  --job-queue my-queue \
  --job-definition my-job:1

上記のコマンドで、my-queueにジョブを投入して実行します。

EventBridgeとは

EventBridgeは、AWSサービスやSaaSアプリケーション、独自アプリケーションから発生するイベントをルーティングするイベントバスサービスです。サーバーレスアーキテクチャの中心的存在として、多様なワークロードの連携を実現します。

EventBridgeのイベントフロー

利用目的

  • AWSサービス間のイベント連携
  • 定期実行(スケジュール)やカスタムイベントのトリガー
  • 外部SaaSとの連携によるワークフロー自動化

利用方法

  1. ルールの作成: 受信するイベントパターンとターゲットを指定してルールを定義します。
  2. イベントバスの選択: デフォルトイベントバス、カスタムイベントバス、SaaSイベントバスのいずれかを利用します。
  3. ターゲットの設定: Lambda関数、Step Functions、SNS、SQS、Batchなど、さまざまなAWSサービスをターゲットに設定できます。

具体例

aws events put-rule \
  --name schedule-batch-job \
  --schedule-expression "cron(0 12 * *? *)"
aws events put-targets \
  --rule schedule-batch-job \
  --targets "Id"="1","Arn"="arn:aws:batch:ap-northeast-1:123456789012:job-queue/my-queue","RoleArn"="arn:aws:iam::123456789012:role/EventBridge-Invoke-Batch"

上記例では、毎日正午にBatchジョブをキューに投入するルールを設定しています。

BatchとEventBridgeの比較

項目 AWS Batch EventBridge
主な用途 バッチ処理の実行 イベントのルーティング
処理タイプ 長時間実行タスク イベント配信
スケジューリング ジョブキューによる管理 Cronやrateベースのスケジュール
スケーラビリティ コンピュートリソースの自動スケール イベント配信の自動スケール
料金体系 コンピュートリソースベース イベント数ベース
ユースケース データ処理、機械学習、レンダリング ワークフロー自動化、システム連携

まとめ

  • AWS Batchは、バッチ処理をスケーラブルに実行するためのサービス。ジョブのキューイングやコンピュートリソースの管理を自動化できる。
  • EventBridgeは、イベントのルーティングとスケジューリングを担うサービス。AWSサービスやSaaSとの連携を容易にし、Batchジョブのトリガーにも利用可能。
  • 両者を組み合わせることで、イベント駆動で柔軟なバッチ処理基盤を構築できる。

これらのサービスを適切に組み合わせることで、スケーラブルで信頼性の高いバッチ処理基盤を構築できます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?