Cache Proxyパターン
キャッシュの設置
目次[非表示] |
解決したい課題
高負荷対策としてWeb/APサーバーを複数台利用するとコスト負担が重くなる。予算が少ない場合、Web/APサーバー数を増やさない方法を考えなければならない。
クラウドでの解決/パターンの説明
Webシステムのパフォーマンスを上げる代表的な方法に、コンテンツをキャッシュ化する方法がある。 これは、変化の(あまり)ない静的コンテンツや動的コンテンツをWeb/APサーバーの上流でキャッシュし、キャッシュの期限が切れるまで配信パフォーマンスの高い 上流のキャッシュサーバーでコンテンツ配信を行う方法である。 クラウドの場合は、仮想サーバーを容易に構築できるので、キャッシュサーバーが導入されていないシステムに対しても容易に導入が可能である。
実装
EC2上に、Varnishなどのよく使われているキャッシュサーバーソフトをインストールし、キャッシュサーバーとして利用する。
- Web/APサーバーの前にVarnishなどのキャッシュサーバーソフトを配置する。
- キャッシュサーバを、Web/APサーバの前に配置する。
- キャッシュサーバーに、オリジナルデータのサーバーやキャッシュ期限などを設定する。
構造
利点
- Web/APサーバーに手を入れずに、キャッシュを用いたコンテンツ配信が可能となる。
- 特に動的コンテンツの場合、コンテンツ生成の負荷を大きく低減できる。
- HTTPのヘッダーやURL、Cookieなどでキャッシュ化の対象にしたり、逆にキャッシュしないようにしたりなど、柔軟なキャッシュ設定ができる。
注意点
- SPOFを作らないようにするには、キャッシュサーバーも冗長化する必要がある。
- Web/APサーバーとして利用しているEC2はELBに間接的に配置されるので、仮にAuto ScalingによってWeb/APサーバーを増減させた場合、キャッシュサーバにアタッチするには工夫が必要である。
関連ブログ