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