0
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について

Posted at

本記事はSAA勉強用のメモとなります。

AWS Batch は AWS 上でバッチ処理(大量のジョブをまとめて実行する処理)を自動的にスケジュールし、最適な環境で動かしてくれるマネージドサービス です。
コンテナベースのワークロード(Docker など)との相性がよく、インフラ管理を最小限にして大量ジョブの実行を自動化できます。

🌟 AWS Batch のポイントをわかりやすく解説
✅ 1. 何をするサービス?

AWS Batch は、以下のような 「計算集約的な大量処理」 を自動化します

 大量ファイルの処理

 データ分析

 機械学習のトレーニング

 シミュレーション

 ETL バッチ

「ジョブをどれだけ、どのタイミングで、どの環境で実行するか」を AWS Batch が全自動で決めて実行 してくれます。

🧩 2. AWS Batch の主要コンポーネント

AWS Batch は次の構成要素で動きます

① ジョブ(Job)
実行したい処理の単位。
Docker イメージとコマンドを指定して送信するだけ。

② ジョブ定義(Job Definition)
ジョブのテンプレ。以下を定義できます

 使用する Docker イメージ

 CPU / メモリ

 環境変数 など

③ ジョブキュー(Job Queue)
ジョブが並ぶ待ち行列。
Batch はこのキューを見て順番にスケジュール。

④ コンピュート環境(Compute Environment)
実際にジョブを実行する場所。3種類

 Managed Compute Environment(AWS におまかせ)

 EC2 / Spot / Fargate などを自動で用意

 Unmanaged(自前の ECS クラスターを使う)

⚙️ 3. AWS Batch が自動でやってくれること

 必要な量の EC2 インスタンス(または Fargate)を起動/停止

 適切なインスタンスサイズの選定

 Spot と On-Demand の組み合わせ

 大量ジョブを優先順位や依存関係に基づき自動スケジューリング

 リトライや失敗時の再実行
 → バッチ処理のインフラ管理から解放される!

🎯 4. AWS Batch を使うメリット

✔ コスト最適化が勝手にされる
必要な時だけコンピュートリソースが立ち上がる。

✔ 大規模ジョブも簡単
数万ジョブも余裕で処理。

✔ インフラ管理不要
「EC2 の台数管理」「スケジューリング」などを全部 AWS が代行。

✔ Docker コンテナで動く
アプリをコンテナ化して投げるだけ。

✔ ECS / Fargate と統合
サーバーレス実行(Fargate)も可能。

📚 5. AWS Batch の利用イメージ
例:動画を大量にエンコードする

S3 に動画アップロード

Lambda が AWS Batch にジョブ投入

Batch が EC2/Fargate を自動起動

Docker でエンコード処理を実行

終わったらインスタンスは自動停止

結果を S3 に保存
→ 完全自動の処理ラインが構築できる

💡 6. どんな時に使う?

深夜に大量のデータを処理したい

機械学習の学習ジョブを大量に回したい

科学計算・シミュレーションを行いたい

大量の ETL ワークロードを処理したい

コンテナ化された大量処理を管理したくない

0
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
0
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?