CDP:Private Cache Distributionパターン
提供:AWS-CloudDesignPattern
CDNを用いたプライベート配信
目次 |
解決したい課題
世界中のキャッシュロケーションを活用したコンテンツデリバリーのサービスを用いることで、世界中のユーザーに高速にデータを配信することが可能となった。しかし、特定のユーザーにのみコンテンツを配布する場合、利用者を認証する必要があり、そうした仕組みを構築するのは簡単ではない。
クラウドでの解決/パターンの説明
コンテンツデリバリーで提供される「署名付きURL認証機能」を用いる方法がある。ユーザーがコンテンツをダウンロードするためにWebサイトにアクセスする際に、あらかじめ設定しておいた「アクセス元IPアドレス」「ダウンロード可能期間」「アクセス元地域」等に適合した場合のみ、「署名付きURL認証機能」を発行すれば良い。より高い精度での特定ユーザーへの配信が可能となる。 また署名付きURL以外にも、クッキーに対して署名を付与する「署名付きクッキー認証」を利用することもできる。
実装
署名付きURL認証機能の場合:
- コンテンツデリバリーサービスである「CloudFront」の「apitool」やAWS SDKを準備する。
- EC2上のWebサーバーに秘密鍵を登録しておき、署名付きURLの発行準備をする。
- 自システムでユーザー認証を実施後、そのユーザーに公開する各コンテンツに対し、CloudFrontのAPIを用いて署名付きURL作成機能(公開鍵を登録)を利用してURLを作成する。
- 署名付URLをHTMLなどでリンク(ダウンロード)先として利用する。
署名付きクッキー認証機能の場合:
- コンテンツデリバリーサービスである「CloudFront」の「apitool」やAWS SDKを準備する。
- 自システムでユーザー認証を実施後、そのユーザーに公開する各コンテンツにアクセス制御を行うよう、パスや署名が入ったCookieを発行する。
- 発行されたCookieをもとに、CloudFrontからコンテンツをダウンロードする。
構造
利点
- IPアドレスと地域で特定されるユーザーのみが期限付で利用できるので、プライベートコンテンツの配布として使うことが可能。
- 実際のコンテンツダウンロードは直接コンテンツデリバリーから行うので、負荷と障害に強い構成となる。
注意点
- 認証システムや期限付きURL、Cookieを発行するサーバーが必要となる。
- ユーザーの認証が切れていなくても、有効期限が失効してしまうとダウンロードできなくなってしまう。