ある製薬企業が医薬品の研究データ(ゲノム解析データ)を AWS で処理するシステムを設計しています。データセットは数百テラバイトで、処理は週 1 〜 2 回の大規模バッチとして実行されます。処理には高い CPU とメモリのリソースが必要で(1 ジョブあたり数千コア)、処理完了後はリソースを解放してコストをゼロにしたいと考えています。最も適切なアーキテクチャはどれですか?
- A. AWS Batch のコンピューティング環境でスポットインスタンスを使用し、ジョブキューからゲノム解析ジョブを処理する。Spot 中断に備えてチェックポイント機能を実装し、Spot Fleet で複数のインスタンスタイプを指定して可用性を高める。S3 にデータを保存し処理後はクラスターが自動的にゼロにスケールする
- B. AWS Lambda で並列処理を実装し、数千の Lambda 関数を同時実行してゲノム解析を行う
- C. EC2 On-Demand インスタンスの大型クラスターを 24 時間稼働させ、ジョブが来たら処理を開始する
- D. Amazon EMR クラスターを常時稼働させ、Spark でゲノム解析を実行する。処理がない時間は最小ノード数で待機させる
解答と解説を見る
正解: A
AWS Batch はバッチコンピューティングに最適化されたマネージドサービスで、ジョブが来た時だけリソースを起動し、完了後は自動的にゼロにスケールします。スポットインスタンスにより On-Demand 比 60〜90% のコスト削減が可能で、Spot Fleetで複数インスタンスタイプを使うことで中断リスクを軽減します。チェックポイント機能で中断耐性を持たせれば長時間ジョブも安全に実行できます。 C: On-Demand クラスターの 24 時間稼働はジョブがない時間のコストが膨大になり「処理後にコストをゼロに」という要件に反します。 D: EMR の常時稼働も同様に、ジョブがない時間のコストが発生します。最小ノードの維持費用も積み重なります。 B: Lambda の最大実行時間は 15 分であり、大規模ゲノム解析バッチには不適切です。またメモリは最大 10GB で「高い CPU とメモリ」要件に対応できません。
📚 関連サービスの解説: Amazon S3