AWS認定資格 WEB問題集&徹底解説

機械学習エンジニア–アソシエイト

AWS Batch の概要と試験出題ポイントは?

AWSサービスの一つであるAWS Batchはどんな内容なのでしょうか?また、AWS認定資格の機械学習エンジニア-アソシエイト(MLA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

AWS Batch 徹底解説 | AWS認定試験の頻出ポイントまとめ

1. サービス概要

AWS Batchは、大量のバッチコンピューティングジョブを効率的に実行するためのフルマネージドサービスです。ジョブの量に応じて最適な種類・量のコンピューティングリソース(EC2・Fargate・スポット)を自動的にプロビジョニング・スケーリングします。

インフラの管理が不要で、科学技術計算(HPC)・データ処理・機械学習の前処理・レンダリングなどの大規模並列処理に適しています。

2. 主な特徴と機能

2.1 主要コンポーネント

  • ジョブ定義(Job Definition): ジョブの実行方法(コンテナイメージ・vCPU・メモリ・IAMロール・環境変数)を定義。
  • ジョブキュー(Job Queue): 投入されたジョブを保持し、優先度とコンピューティング環境に紐付け。
  • コンピューティング環境(Compute Environment): ジョブを実行するEC2/Fargateリソースのプール。

2.2 実行基盤の選択

  • EC2(マネージド): 指定したインスタンスタイプ範囲で自動スケーリング。
  • Fargate: サーバーレスでコンテナジョブを実行(インフラ管理不要)。
  • スポットインスタンス: 大幅なコスト削減(中断耐性のあるジョブ向け)。

2.3 配列ジョブとジョブ依存関係

  • 配列ジョブ(Array Jobs): 1回の送信で多数の類似ジョブを並列実行(パラメータスイープ等)。
  • ジョブ依存関係: ジョブA完了後にジョブBを実行する依存関係を定義。

2.4 自動スケーリング

ジョブキューの負荷に応じてコンピューティング環境を自動でスケールアップ/ダウン。ジョブがないときはリソースをゼロまで縮小してコストを最小化。

3. アーキテクチャおよび技術要素

  1. ジョブ定義でコンテナとリソース要件を定義。
  2. ジョブをジョブキューに送信。
  3. AWS Batchがコンピューティング環境(EC2/Fargate)を自動プロビジョニング。
  4. ジョブをスケジューリングして実行→完了後にリソースを縮小。

コンテナはECS上で実行され、ジョブはDockerイメージ(ECR等)として定義されます。

4. セキュリティと認証・認可

  • ジョブIAMロール: ジョブ定義でジョブが使用するIAMロールを指定し、最小権限でAWSリソースにアクセス。
  • VPC: コンピューティング環境をVPC内に配置してネットワークを分離。
  • 暗号化: EBS・S3等のデータをKMSで暗号化。

5. 料金形態

  • AWS Batch自体に追加料金はなし。
  • ジョブ実行に使用したEC2・Fargate・EBS等のリソース料金のみ発生(スポット利用でコスト削減可能)。

6. よくあるアーキテクチャ・設計パターン

  • 大規模並列処理: 配列ジョブで数千の並列ジョブを実行(ゲノム解析・金融シミュレーション等)。
  • コスト最適化バッチ: スポットインスタンスのコンピューティング環境で大幅にコスト削減。
  • イベント駆動バッチ: S3アップロード → EventBridge → AWS Batchジョブ起動。
  • ワークフロー統合: Step FunctionsでBatchジョブをオーケストレーション(複雑な依存関係を管理)。

7. 設定・デプロイ手順(ハンズオン例)

  1. コンピューティング環境を作成(EC2/Fargate・スポット可否・インスタンスタイプ範囲を設定)。
  2. ジョブキューを作成してコンピューティング環境に紐付け・優先度を設定。
  3. ジョブ定義を作成(コンテナイメージ・vCPU・メモリ・IAMロール)。
  4. ジョブをキューに送信→AWS Batchが自動でリソースをスケールして実行。
  5. CloudWatch Logsで実行ログを確認。

8. 試験で問われやすいポイント

8.1 AWS Batchの役割

  • Q: 大量のバッチジョブをフルマネージドで実行し、リソースを自動スケーリングするサービスは?
    A: AWS Batch(ジョブ定義・ジョブキュー・コンピューティング環境でEC2/Fargate/スポットを自動管理)。

8.2 主要コンポーネント

  • Q: AWS Batchの3つの主要コンポーネントは?
    A: ジョブ定義(実行方法)・ジョブキュー(ジョブの保持と優先度)・コンピューティング環境(実行リソースプール)。

8.3 コスト最適化

  • Q: 中断耐性のあるバッチジョブのコストを最小化するには?
    A: コンピューティング環境にスポットインスタンスを使用する。

8.4 大規模並列とワークフロー

  • Q: 多数の類似ジョブを一括で並列実行したり複雑な依存関係を管理するには?
    A: 配列ジョブ(Array Jobs)で並列実行、複雑なオーケストレーションはStep Functionsと連携。

8.5 Lambdaとの使い分け

  • Q: AWS BatchとLambdaの使い分けは?
    A: Lambdaは短時間(最大15分)の軽量処理、Batchは長時間・大規模・高リソースを要するバッチ処理に適する。