目次
1. 結論
AWS Batchは、「大量の仕事をさばく自動工場」です。「何を(ジョブ定義)」「どのくらいの優先順位で(ジョブキュー)」やるかを決めておけば、AWSが勝手に「最適なスペックのサーバー(コンピューティング環境)」を用意して、仕事が終わったらサーバーを消してくれます。特にスポットインスタンスを賢く使うことで、コストを極限まで抑えた大量処理を可能にします。
2. SAAで出やすいポイント
- コスト最適化 (スポットインスタンス): コンピューティング環境として「スポット」を選択するだけで、自動的に安価なリソースを探して実行し、中断されたら再試行する管理を代行してくれる。
- 自動スケーリング: ジョブの数に応じて、ゼロから数百台のサーバーまで自動で増やし、終わったら自動でゼロにする。
- 依存関係の管理: 「ジョブAが終わってからジョブBをやる」といったジョブ間の順序制御が可能。
- 柔軟なリソース選択: Fargate(管理不要)かEC2(カスタマイズ可能)か、またはスポットかオンデマンドかを選択できる。
3. キーワードでの判断
| 問題文のキーワード | 疑うべきサービス/機能 | 判断理由 |
|---|---|---|
| 「数十万件のバッチ処理を効率的にスケール」 | AWS Batch | 大規模バッチの管理に特化 |
| 「スポットインスタンスを使ってバッチコストを最小化」 | AWS Batch | スポット活用の推奨ツール |
| 「計算資源の管理を自動化して大量のジョブを実行」 | AWS Batch | リソースプロビジョニングの自動化 |
4. ひっかけポイント
- Lambdaとの違い:
- Lambda: 短時間(15分以内)の軽量な処理。
- Batch: 長時間(数時間〜)、大量のメモリやCPUが必要な重い処理。
- Step Functionsとの違い:
- Step Functions: 「ワークフロー(全体の流れ)」の管理。Batchはその中の「一つの重い処理」として呼び出されることが多い。
- 管理の手間: サーバーレス(Fargate)を使えば管理はほぼ不要だが、EC2ベースの場合はインスタンスタイプなどの指定が必要。
5. 覚え方
- 「全自動の仕分け・加工工場」。
- 材料(ジョブ)を放り込んでおけば、工場の機械(EC2/Fargate)が勝手に動き出し、加工が終われば機械の電源を切ってくれるイメージ。
6. 関連サービス
| サービス名 | 関連する理由 |
|---|---|
| Spot Instances | AWS Batchのコスト最適化において最大の武器となる。 |
| Amazon ECR | バッチ処理の中身(プログラム)をコンテナとして保管しておく場所。 |
| Step Functions | 複数のバッチ処理を順番に繋いで、複雑な業務フローを作る。 |
7. Obsidian管理メモ
- 復習ポイント: 「HPC(高性能計算)」や「大量のバッチ処理」という言葉が出たら、AWS Batchとスポットインスタンスの組み合わせをチェック。
- 関連ノート: バッチ処理のアーキテクチャ設計
8. HTMLファイル名
aws-batch-scalable-job-processing.html