Q10 — AWS SAA-C03 第17章

第 10/89 問 | ← 第17章

Q1310. ある会社では、ユーザーが自社のウェブサイトを通じて写真をアップロード・保存できるようにしています。このウェブサイトには世界中のユーザーがいます。ユーザーがアップロードするすべての画像は、中央集約型の Amazon S3 バケットに保存されます。同社は、全世界のユーザーがウェブサイト経由で写真をアップロードする際の速度を向上させたいと考えています。これらの要件を満たすために、ソリューションズアーキテクトは何を推奨すべきでしょうか?

正解: D. S3 Transfer Acceleration を S3 バケットで有効化します。ファイルのアップロードには S3 Accelerate エンドポイントを使用します。

解説

世界中のユーザーに対する写真アップロード速度を最適化するには、以下の選択肢 D が最も適しています:D. S3 Transfer Acceleration を S3 バケットで有効化し、S3 Accelerate エンドポイントを使用してファイルをアップロードする。 なぜ選択肢 D が正しいのか: S3 Transfer Acceleration は、地理的に分散したユーザーによるアップロード/ダウンロードを高速化するために設計された機能であり、CloudFront と同様に AWS のグローバルなエッジロケーションを活用します(ただし、大容量データ転送に特化)。AWS のバックボーンネットワークを介した最適化されたネットワーク経路を用いて、エッジロケーションと S3 バケット間の遅延を低減し、スループットを向上させます。Transfer Acceleration を有効化するには、S3 バケットで該当機能をオンにし、アップロード先のエンドポイントを加速用 URL(例:bucketname.s3-accelerate.amazonaws.com)に更新する必要があります。 パフォーマンス上の利点: 遠隔地のユーザー(例:アジアから米国リージョンのバケットへアップロード)は、ネットワークホップ数の削減により、顕著な速度向上(通常50~70%高速化)を実現できます。特に写真や動画などの大容量ファイル、あるいは数千人のユーザーが同時にアップロードするような高並列性シナリオに最適です。 コスト効率: データ転送量に基づく課金(例:加速転送で 0.04~0.08 USD/GB)ですが、ユーザー生成コンテンツにおけるパフォーマンス向上の恩恵は、そのコストを十分に上回ります。キャッシュが必要でない限り、CloudFront ディストリビューションなどの追加サービスは不要です。 他の選択肢が不適切な理由: A. CloudFront + S3 Standard:CloudFront はエッジロケーションでのコンテンツキャッシュによりダウンロード速度を向上させますが、S3 へのアップロードを加速しません。アップロードは依然として直接 S3 バケットに行われるため、グローバルなユーザーにとっては遅延が発生します。 B. CloudFront とカスタムオリジン設定:選択肢 A と同様、CloudFront はアップロード加速には最適化されていません。TTL などのオリジン設定を変更しても、アップロード遅延という根本的な課題は解決されません。 C. S3 Transfer Acceleration + 標準 S3 エンドポイント:Transfer Acceleration の有効化は正しいものの、標準の S3 エンドポイント(例:bucketname.s3.amazonaws.com)を使用すると、加速機能の恩恵を受けることができません。加速機能を利用するには、選択肢 D のように加速用エンドポイントを使用する必要があります。 選択肢 D の実装手順: 1. Transfer Acceleration の有効化:S3 コンソールで対象バケット → [Properties] → [Transfer Acceleration] → [Enable] を選択。※ Transfer Acceleration はすべてのリージョンでサポートされていますが、us-east-1(US Standard)や eu-west-1(EU Ireland)など特定のリージョンでは特に優れたパフォーマンスを発揮します。 2. アップロードエンドポイントの更新:ウェブサイトのアップロード処理を修正し、URL のドメイン部分を標準エンドポイント(s3.amazonaws.com)から加速エンドポイント(s3-accelerate.amazonaws.com)に置き換えます。   例:    標準エンドポイント:https://my-bucket.s3.amazonaws.com/photos/    加速エンドポイント:https://my-bucket.s3-accelerate.amazonaws.com/photos/ 3. パフォーマンス検証:curl や AWS CLI を使用して、複数のリージョンからアップロード速度を測定します。   例(AWS CLI):    # 加速エンドポイントでのアップロードテスト(バケット名とファイルを適宜置換)    aws s3 cp local-file.jpg s3://my-bucket/photos/ --endpoint-url https://s3-accelerate.amazonaws.com    標準アップロードとの比較を行い、改善効果を検証します。 代替案を検討すべきケース: ・ダウンロード速度も同時に向上させる必要がある場合:頻繁にアクセスされるコンテンツをエッジロケーションでキャッシュするため、CloudFront + S3(選択肢 A)を検討します。 ・非常に小さなファイル(例:1 MB 未満)の場合:Transfer Acceleration のコスト対効果が低く、最小限の性能向上しか得られない可能性があります。 結論:選択肢 D は、AWS の最適化されたネットワークインフラを活用して、S3 へのグローバルな写真アップロードを直接かつ効果的に高速化する、最も適切なソリューションです。