Question#50(SAP-C02)
ある会社はオンプレミスの IoT プラットフォームを AWS に移行しようとしています。プラットフォームは次のコンポーネントで構成されています。
- 収集・処理したすべての IoT データのデータストアとしての MongoDB クラスター。
- 5 分ごとに IoT デバイスに接続してデータを収集するため、Message Queuing Telemetry Transport(MQTT)を用いるアプリケーション。
- IoT データからレポートを生成するために定期的にジョブを実行するアプリケーション。各ジョブは 120–600 秒で終了する。
- Web サーバー上で稼働する Web アプリケーション。エンドユーザーはこの Web アプリから誰でもアクセス可能なレポートを生成する。
(2つ選択)
正解:A, D, E
本件でカギとなるのは「運用オーバーヘッドの最小化」と「既存要件の性能維持」です。まず、デバイスとの接続はサーバー側が5分おきに接続するのではなく、AWS IoT Core に各デバイスを直接接続して MQTT でパブリッシュさせるのがマネージドかつスケーラブルです。受信メッセージは AWS IoT ルールでトリガーし Lambda へ連携、変換してデータストアに書き込むのが最小運用です。ゆえに D は適切です。
データストアはオンプレの MongoDB をそのままEC2に載せ替えると運用(パッチ、バックアップ、可用性設計)が重くなります。**Amazon DocumentDB(MongoDB互換)**はフルマネージドでスケールやバックアップ、パッチ適用を肩代わりし、既存のMongoDBワイヤプロトコル互換のためアプリ変更も最小限です。したがって E が妥当です。 レポート生成は1本あたり 120–600 秒(=最大10分)なので Lambda(最大15分実行可) と Step Functions のワークフローでバッチ化し、生成物は S3 に保管、CloudFront で一般公開配信すると、Webサーバーや長時間稼働のコンピュート群の保守が不要になります。これによりスケーラブルかつ低オーバーヘッドで公開できるため A が最適です。
コメント