Q22 — AWS SAP-C02 第3章

第 22/75 問 | ← 第3章

Q247. ある企業では、市場データのストリーミングを継続的に取り込み・処理しています。データ流入率は一定です。また、集計統計を計算する夜間バッチ処理が毎日実行され、1回の実行に約4時間かかります。この統計分析はビジネスにとってミッションクリティカルではなく、特定の実行が失敗した場合でも、次回の実行で前回の未処理データポイントを自動的に拾い上げて処理します。現在のアーキテクチャでは、1年間の予約期間を持つAmazon EC2 Reserved Instancesのプールを常時稼働させ、ストリーミングデータの取り込みと、接続されたAmazon EBSボリュームへの保存を行っています。さらに、夜間処理の際にはOn-Demand EC2インスタンスを起動し、取り込みサーバー上のNFS共有から保存済みデータにアクセスして処理を実行し、処理完了後にこれらの夜間処理用インスタンスを終了させています。このReserved Instanceの予約期間が満了を迎えようとしており、企業は新たな予約購入か、あるいは新しい設計への移行のどちらが適切かを検討する必要があります。最もコスト効率の高い設計はどれですか?

正解: B. 取り込みプロセスを更新し、Amazon Kinesis Data Firehose を使用してデータをAmazon S3に保存するようにします。夜間処理にはAWS Batchを活用し、オンデマンド価格の50%を上限とするSpotインスタンスで実行します。

解説

Amazon Kinesis Data Firehoseを用いてデータをAmazon S3に保存することで、取り込みプロセスが簡素化され、EC2インスタンスへのEBSボリューム接続の必要性がなくなり、コスト削減が可能です。AWS Batchを活用すれば、Spotインスタンス上でバッチ処理ジョブを実行でき、オンデマンドインスタンスと比較して大幅なコスト削減が見込めます。オンデマンド価格の50%を上限とする最大入札額を設定することで、コストメリットを確保しつつ、ジョブの確実な完了も担保できます。 選択肢Aは、SpotインスタンスではなくオンデマンドEC2インスタンスを用いるため、選択肢Bより高コストとなります。 選択肢Cは、長期間(3年)のReserved Instancesを引き続き使用しており、Spotインスタンスに比べ柔軟性とコスト効率が劣ります。また、EBSボリュームを各インスタンスに個別に割り当てる構成では、データの集約が困難であり、EC2自体のコストも高くなります。 選択肢Dは、Amazon RedshiftはAmazon S3よりも高コストのサービスであり、またAWS Lambda関数を夜間実行する方式は、Lambdaの最大実行時間(15分)という制限により、4時間かかる処理には不適切です。同様のワークロードをAWS Batch+Spotインスタンスで実行した方が、はるかに低コストです。