Q10 — AWS SAA-C03 第4章
第 10/105 問 | ← 第4章
Q205. ある企業のアプリケーションは、データ収集のために複数のソフトウェア・アズ・ア・サービス(SaaS)ソースと統合されています。同社は、データを受信し、Amazon S3バケットにアップロードするためのAmazon EC2インスタンスを実行しています。このEC2インスタンスは、データのアップロード完了時にユーザーへ通知も送信します。しかし、同社はアプリケーションのパフォーマンスが遅くなっていることに気づき、可能な限りパフォーマンスを向上させたいと考えています。これらの要件を満たすとともに、運用オーバーヘッドを最小限に抑える解決策はどれですか?
- A. Auto Scalingグループを作成して、EC2インスタンスがスケールアウトできるようにします。また、S3イベント通知を設定し、S3バケットへのアップロード完了時にAmazon Simple Notification Service(Amazon SNS)トピックにイベントを送信するようにします。
- B. 各SaaSソースとS3バケット間のデータ転送を行うためにAmazon AppFlowフローを作成します。さらに、S3イベント通知を設定し、S3バケットへのアップロード完了時にAmazon Simple Notification Service(Amazon SNS)トピックにイベントを送信するようにします。 ✓
- C. 各SaaSソースごとにAmazon EventBridge(Amazon CloudWatch Events)ルールを作成し、出力データを送信できるようにします。S3バケットをそのルールのターゲットとして設定します。さらに、S3バケットへのアップロード完了時にイベントを送信する第2のEventBridge(CloudWatch Events)ルールを作成し、そのターゲットとしてAmazon Simple Notification Service(Amazon SNS)トピックを設定します。
- D. EC2インスタンスの代わりにDockerコンテナを使用し、そのコンテナ化されたアプリケーションをAmazon Elastic Container Service(Amazon ECS)上でホストします。また、Amazon CloudWatch Container Insightsを設定し、S3バケットへのアップロード完了時にAmazon Simple Notification Service(Amazon SNS)トピックにイベントを送信するようにします。
正解: B. 各SaaSソースとS3バケット間のデータ転送を行うためにAmazon AppFlowフローを作成します。さらに、S3イベント通知を設定し、S3バケットへのアップロード完了時にAmazon Simple Notification Service(Amazon SNS)トピックにイベントを送信するようにします。
解説
このシナリオでは、現在のアーキテクチャ(EC2で受信・アップロード・通知を1つのインスタンスが担当)がボトルネックとなっており、パフォーマンス低下の原因となっています。最も少ない運用オーバーヘッドで最大限のパフォーマンス向上を実現するには、アプリケーションロジック(特にI/O集中型の受信・アップロード)をマネージドサービスに移管し、通知機能を疎結合で実装することが重要です。選択肢BのAmazon AppFlowは、SaaSソースとAWSサービス(例:S3)間の安全かつスケーラブルなデータ連携を提供するフルマネージドサービスであり、EC2インスタンスのプロビジョニング・管理・スケーリング・監視などの運用負荷を完全に不要にします。また、S3イベント通知とSNSの組み合わせにより、アップロード完了通知もマネージドかつ低オーバーヘッドで実現可能です。他の選択肢はいずれもEC2またはECSといったコンピューティングリソースの管理を前提としており、運用オーバーヘッドが発生します(A:Auto Scalingの設定・モニタリング、C:EventBridgeルールの多数作成と管理、D:ECSクラスタ/タスク定義/Container Insightsの設定・保守)。したがって、運用オーバーヘッドが最小かつパフォーマンス向上効果が最大の解決策はBです。