CDP:Rewrite Proxyパターン
提供:AWS-CloudDesignPattern
URL書き換えプロキシーの設置
目次 |
解決したい課題
負荷対策の一つに静的コンテンツをインターネットストレージやコンテンツデリバリーサービスに配置する方法がある。だが、静的コンテンツのアクセス先をインターネットストレージに変更する必要があり、コンテンツ内のURLの書き換えやWebサーバへのフィルター設定など、既存システムに手を入れる必要がある。
クラウドでの解決/パターンの説明
既存システムに手を入れずアクセス先を変更する方法として、Proxyサーバーを配置する方法がある。コンテンツを格納したサーバーの手前にプロキシーサーバーを配置し、そこで静的コンテンツのアクセス先をインターネットストレージやコンテンツデリバリーサービスに変更する。
実装
ApacheやNginxなど、よく使われているソフトを用いてProxyサーバーを構築し、既存システムの前に設置する。
- ELBと(静的コンテンツを格納した)S3の間に、Nginxなどコンテンツの内容を書き換えることができるプロキシーサーバーを配置する(EC2上で動作させる)。
- Proxyサーバーに、コンテンツ内のURLの書き換えルールを追加する。
- 必要に応じて、ProxyサーバーにAuto Scalingを適用する。
構造
利点
- プロキシーサーバーにてアクセス先を書き換えることで、既存システムを修正せずに静的コンテンツへの負荷分散が可能になる。
注意点
- SPOFを作らないようにするために、プロキシーサーバも冗長化しておく必要がある。
- Web/APサーバーはELBに間接的に配置されるので、Auto ScalingによってWeb/APサーバー(EC2)が増減しても、ELBに自動的にアタッチできない。
その他
- Proxyサーバの代わりに、CloudFrontのマルチオリジン機能を利用することもできる。この場合、CloudFrontにURLのパスパターンごとにオリジンを設定する。例えば/cssのパスで来た場合は、特定のS3にコンテンツを取りに行くように設定する。