type
status
date
slug
summary
tags
category
icon
password
书籍
理論


プリサインドURLを使用してオブジェクトをS3にアップロードする手順は以下の通りです:
- 署名付きURLの生成:
- AWS SDKまたはAWS CLIを使用して、
GetObject
またはPutObject
操作用の署名付きURLを生成します。 - 署名付きURLには、有効期限やアクセス権限が含まれます。
- URLの提供:
- 生成したプリサインドURLを、認証されたユーザーに提供します。このURLを通じて、ユーザーはS3にアクセスできます。
- ブラウザまたはアプリケーションでアップロード:
- ユーザーは提供されたURLを使い、ブラウザやアプリケーションからオブジェクトをアップロードします。URLにリクエストを送るだけで、認証や権限チェックを済ませることができます。
- S3での確認:
- アップロードされたオブジェクトは、指定されたS3バケットに保存されます。
プリサインドURLを使用することで、署名の管理やアクセス制御を簡単に行えます。
実践
略
一問道場
問題 #378
ある会社がウェブアプリケーションを運営しており、そのアプリケーションは安全に画像や動画をAmazon S3バケットにアップロードします。この会社は、認証されたユーザーのみがコンテンツを投稿できるようにする必要があります。アプリケーションは、ブラウザインターフェイスを通じてオブジェクトをアップロードするために使用されるプリサインドURLを生成します。ほとんどのユーザーは、100 MB以上のオブジェクトのアップロードが遅いと報告しています。
ソリューションアーキテクトは、認証されたユーザーのみがコンテンツを投稿できることを保証しながら、アップロードパフォーマンスを向上させるために何をすべきですか?
A. Amazon API Gatewayを設定し、エッジ最適化されたAPIエンドポイントを作成して、リソースとしてS3サービスプロキシを設定します。このリソースのPUTメソッドを設定して、S3のPutObject操作を公開します。API GatewayをCOGNITO_USER_POOLS認証を使用してセキュリティで保護します。ブラウザインターフェイスには、プリサインドURLの代わりにAPI Gatewayを使用してオブジェクトをアップロードさせます。
B. Amazon API Gatewayを設定し、リージョン別のAPIエンドポイントを作成して、リソースとしてS3サービスプロキシを設定します。このリソースのPUTメソッドを設定して、S3のPutObject操作を公開します。API GatewayをAWS Lambda認証でセキュリティで保護します。ブラウザインターフェイスには、プリサインドURLの代わりにAPI Gatewayを使用してオブジェクトをアップロードさせます。
C. S3バケットにS3転送加速エンドポイントを有効にします。このエンドポイントを使用してプリサインドURLを生成します。ブラウザインターフェイスには、このURLを使用してオブジェクトをS3マルチパートアップロードAPIでアップロードさせます。
D. Amazon CloudFrontディストリビューションを対象のS3バケットに設定します。CloudFrontキャッシュビヘイビアのPUTおよびPOSTメソッドを有効にします。CloudFrontオリジンをオリジンアクセスアイデンティティ(OAI)を使用するように更新します。OAIユーザーにS3バケットポリシーで3:PutObjectの権限を付与します。ブラウザインターフェイスには、CloudFrontディストリビューションを使用してオブジェクトをアップロードさせます。
解説
この問題に対する解説は、各選択肢がどのようにS3へのアップロードパフォーマンスを改善し、認証されたユーザーのみがコンテンツを投稿できるようにするかに焦点を当てています。
A. API Gateway + Cognito User Pools
- 説明: Amazon API Gatewayを使用し、エッジ最適化されたAPIエンドポイントでS3のPutObject操作を公開します。COGNITO_USER_POOLS認証を使用して、API Gatewayをセキュアにします。
- 問題点: API Gatewayのエッジ最適化は、主にグローバルなアクセスに最適化されていますが、アップロード速度向上には特に関与しません。また、大きなファイルのアップロードにはAPI Gatewayのオーバーヘッドが発生するため、パフォーマンスが低下する可能性があります。
- 結論: パフォーマンス向上を最優先にする場合、API Gatewayは最適ではありません。特に大きなファイルのアップロードにおいて、遅延が発生する可能性があります。
B. API Gateway + Lambda Authorizer
- 説明: API Gatewayを使用し、AWS Lambda認証を利用して認証を行います。この設定は、セキュリティには有効ですが、パフォーマンスには影響を与える可能性があります。
- 問題点: Lambda認証によるオーバーヘッドがあり、大きなファイルのアップロードに対するパフォーマンス向上には寄与しません。API Gatewayはマネージドサービスとして便利ですが、速度には制限があります。
- 結論: 同様に、パフォーマンスの問題を解決するためには、他の選択肢を検討するべきです。
C. S3 Transfer Acceleration + Multipart Upload
- 説明: S3転送加速を有効にすると、アップロードのパフォーマンスが改善される可能性があります。特に、大きなファイルや遠距離からのアップロード時に有効です。転送加速により、データが最寄りのエッジロケーションからS3バケットに転送され、帯域幅が最適化されます。マルチパートアップロードを使用すると、ファイルが複数の部分に分割され並行してアップロードされるため、全体のアップロード速度が向上します。
- 結論: この方法は、パフォーマンス改善に最も効果的です。特に、100 MB以上の大きなオブジェクトに対して顕著なパフォーマンス向上が期待できます。
D. CloudFront Distribution + OAI
- 説明: CloudFrontは、静的コンテンツの配信を最適化するためのCDN(コンテンツ配信ネットワーク)ですが、アップロードパフォーマンスを向上させるためには必ずしも効果的ではありません。CloudFrontのキャッシュを利用してS3バケットへのPUTおよびPOSTメソッドを処理することができますが、アップロードは通常、S3転送加速やマルチパートアップロードで行う方が効率的です。
- 問題点: CloudFrontはコンテンツ配信の最適化には優れていますが、大きなファイルのアップロードに対しては、転送加速やマルチパートアップロードの方がより適切です。
- 結論: CloudFrontを使用することでコンテンツ配信のパフォーマンスは向上しますが、アップロードのパフォーマンス向上には転送加速の方が効果的です。
結論
最も適切な選択肢は C です。S3転送加速を使用すると、アップロード速度が改善され、大きなオブジェクト(100 MB以上)のアップロードにおいて特にパフォーマンスが向上します。また、マルチパートアップロードを使用することで、大きなファイルを並行してアップロードし、処理時間を短縮できます。
- 作者:みなみ
- 链接:https://www.minami.ac.cn//%E8%B3%87%E6%A0%BC%E5%8B%89%E5%BC%B7/178d7ae8-88e2-80df-a215-ecbafb50ca5d
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章