ある企業は毎晩、Amazon S3に蓄積された数テラバイトの生ログデータをApache Sparkジョブで集計・変換し、結果をS3に書き込むバッチETLパイプラインを運用しています。処理は夜間の決まった時間帯(22時〜翌2時)に実行され、翌朝の業務開始までに完了すれば数十分の遅延は許容されます。このワークロードのコストを最大限に削減するための最適なAmazon EMR構成はどれですか?
夜間バッチ処理のように実行時間帯が限られており、数十分の遅延が許容できるワークロードにはSpotインスタンスが最適です。マスターノード(クラスター制御)とコアノード(HDFS=Hadoop分散ファイルシステムのデータ保持)をOn-Demandで安定性を確保しつつ、追加の処理能力を担うタスクノードのみSpotにすることでOn-Demand比最大90%のコスト削減が可能です。インスタンスフリートで複数のインスタンスタイプを指定するとSpot供給不足による中断リスクを低減できます。 選択肢BのAmazon EMR on EC2のすべてのノードをReserved Instancesで構成する方法は最大72%の割引がありますが、夜間の数時間しか使用しないクラスターでは稼働率が低く、Spotと比べてコスト効率が劣ります。 選択肢CのAmazon EMR on EC2のすべてのノードをSpotインスタンスのみで構成する方法は、マスターノードをSpotにするとSpot中断時にクラスター全体が失われるリスクがあります。マスターノードは最低限On-Demandにする必要があります。 選択肢DのAmazon EMR Serverlessを使用し、最大ワーカー容量の上限を設定して予算を管理する方法はインフラ管理不要の利点がありますが、Spotインスタンスのような大幅なコスト削減オプションがなく、夜間大規模バッチの最大コスト削減にはEMR on EC2+Spotが有効です。