CDP:Private Distributionパターン
From AWS-CloudDesignPattern
特定ユーザへのデータ配布
Contents |
解決したい課題
インターネットストレージは可用性、耐久性が共に高く、サイズの大きなコンテンツやアクセス数の多いコンテンツの配布にはうってつけである。しかし、特定のユーザにのみコンテンツを配布するような用途の場合、作成したアプリケーションの認証の仕組みと連動する必要があり、インターネットストレージだけでアクセス制限を実現する事は難しい。
クラウドでの解決/パターンの説明
インターネットストレージで提供される制限付きURL発行機能を用いると、コンテンツに対して、アクセス元IPアドレスやアクセス可能な期間を設定することができる。URLをユーザーごとに発行し、ユーザには発行された制限付きURLでのみコンテンツをダウンロードさせるようにすれば、期限が切れたリンクや異なるIPアドレスを持つ他人がアクセスを試みてもコンテンツのダウンロードはできないので、実質的に特定ユーザへの配信を行う事ができる。
実装
- Amazon S3のapitoolやAWS SDKを準備する
- 自システムでユーザ認証を実施後、そのユーザーに公開する各コンテンツに対して、APIを用いて制限付きURLの一覧を生成する。
- 生成したURL一覧を用いて、動的にWebページを生成する。生成するHTML等のコンテンツ内で、制限付きURLをリンク(ダウンロード)先として利用する。
構造
利点
- 特定ユーザのみが期限付で利用できるので、プライベートコンテンツの配布として使うことが可能。
- 実際のコンテンツダウンロードはAmazon EC2などを通さず直接S3から行うので、負荷と障害に強いS3の特性をそのまま利用する事ができる。
注意
- このパターンを適用するには、認証システムや期限付きURLを発行するためのサーバが必要となる
- ユーザの認証が切れていなくても、URLの有効期限が失効してしまうとダウンロードできなくなってしまう
その他
このパターンを適用する場合、通常はAPIをアプリケーションに組み込んで使用するが、ログインしたユーザーであればどのユーザーでもアクセスできるようなコンテンツの場合は、CloudBerryExplorerなどのサードパーティツールを使用して手動で生成したURLを使って、Webページを作る事もできる。