CDP:Direct Object Uploadパターン

提供:AWS-CloudDesignPattern
移動: 案内, 検索
寄贈したアーキテクト

アップロード手順の簡略化

目次

解決したい課題

 写真や動画の共有サイトでは、多数のユーザーからサイズの大きいデータがアップロードされる。アップロード処理はサーバー側の負荷(特にネットワーク負荷)が高く、ある程度の規模のサイトでも、アップロード専用の仮想サーバーが必要になるケースがある。

クラウドでの解決/パターンの説明

 アップロード処理をインターネットストレージに任せる。つまり、クライアントから、仮想サーバーを経由することなく、インターネットストレージに直接アップロードする。これにより、Webサーバーでアップロード処理の負荷を考えなくてもよくなる。

実装

  • Webサーバー(EC2)上で、S3へのアップロードを行うHTMLのフォームを生成する。
  • アップロードフォームを使用し、ユーザー側からS3へ直接ファイルをアップロードする。
  • S3にファイル転送を終了した後にフォームに指定してあるURLへリダイレクトされるので、リダイレクト先のサーバーでアップロード終了の確認処理を行う。

構造

6wNg0ISJczU5Pz1m-99789.png

利点

  • アップロード用のEC2インスタンスを用意する手間とコストが不要になる。
  • S3のスケーラビリティーを生かし、アップロード処理の負荷を分散できる。
  • S3にデータがアップロードされるので、EC2インスタンス間での共有が容易になる。

注意点

  • S3と連携する実装が必要となるので、EC2のみを使用したアップロードに比べて仕組みが複雑になる。

その他

  • HTMLフォームは手動で作成することも可能なため、S3だけでHTMLフォームの配布とアップロードを完結させることも可能。
  • 認証したユーザのみがアップロード可能とするように、S3の署名付きURL機能を利用してセキュリティを高めることができる。[関連ブログ 1]

関連ブログ

  1. Amazon Simple Storage Service 開発者ガイド の「"署名付き URL を使用したオブジェクトのアップロード」( http://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/PresignedUrlUploadObject.html )

寄贈したアーキテクト

Ninja of Three

個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス