Q45 — AWS DOP-C02 第2章
第 45/100 問 | ← 第2章
DevOpsエンジニアが、Amazon EC2上で実行されるカスタムWebアプリケーションを管理しています。このアプリケーションは、Amazon Kinesis Data Streamsを使用してネットワークログを収集および処理します。DevOpsエンジニアは、同様にAmazon EC2上で実行されるKinesisコンシューマーアプリケーションも管理しています。 データの急増により、Kinesisコンシューマーアプリケーションが遅延し、処理可能な状態になる前にKinesisデータが破棄されています。 DevOpsエンジニアは、処理能力を拡張するソリューションを実装する必要があります。 どのソリューションが、これらの要件を最も高い運用効率で満たすことができますか?
- A. Kinesisコンシューマーアプリケーションを変更し、ログをAmazon S3に永続化します。Amazon EMRを使用してAmazon S3上のデータを直接処理し、顧客インサイトを取得します。結果をAmazon S3に保存します。
- B. Amazon CloudWatchのGetRecords.IteratorAgeMillisecondsメトリクスに基づいて追加のEC2インスタンスを起動し、Kinesisコンシューマーアプリケーションを水平方向にスケールアウトします。Kinesis Data Streamsの保持期間を延長します。 ✓
- C. KinesisコンシューマーアプリケーションをAWS Lambda関数として実行するように変換します。Kinesis Data StreamsをLambda関数のイベントソースとして構成し、データストリームを処理します。
- D. Kinesis Data Streamsのシャード数を増やして全体的なスループットを向上させ、コンシューマーアプリケーションがデータをより迅速に処理できるようにします。
正解: B. Amazon CloudWatchのGetRecords.IteratorAgeMillisecondsメトリクスに基づいて追加のEC2インスタンスを起動し、Kinesisコンシューマーアプリケーションを水平方向にスケールアウトします。Kinesis Data Streamsの保持期間を延長します。
解説
正解はBです。データの急増によりKinesisコンシューマーアプリケーションが遅延し、レコードが破棄される場合、CloudWatchの関連メトリクスに基づいて追加のEC2インスタンスを起動することでアプリケーションを水平方向にスケールアウトすると、処理能力が向上します。また、Kinesis Data Streamsの保持期間を延長することで、データが早期に破棄されるのを防ぐことができます。選択肢Aは、ログをS3に永続化しEMRで処理する方法ですが、複雑性とコストが増加し、必ずしも最高の効率とは限りません。選択肢CはLambda関数への移行ですが、リソース制限やコールドスタートの問題が発生する可能性があります。選択肢Dはシャード数の増加ですが、これはコンシューマーアプリケーション自体の処理能力不足を直接解決しません。以上より、Bが最も高い運用効率で要件を満たします。