突発的な大量アクセスがあった場合に備えよう
- 投稿日:2017年10月25日
- 作成者:watanabe.k
- カテゴリ:その他
あるECサイトで大幅割引のタイムセールを実施していて、いざアクセスしようとしたら、なかなか繋がらない。繋がっても画像が表示されるのに時間がかかってまともに見られない、なんて経験ありませんか。
ウチはセールもやらないし、そもそも大量にアクセスされることもないだろう。だからページが見られなくなることなんてない!なんて思っていてはいけません。
セールなどのように、ある程度アクセスが集中することが事前に予測できるならば、爆発的なアクセス増に備え、準備をしておくことが大切です。
ユーザーの立場で考えた場合
画面が表示されるのに時間がかかるとそれだけでストレスになりますよね。諦めて離脱するユーザーも結構いるはずです。
商品やサービスに関する広告を出し、ページにも力を入れて作成し、商品も多めに準備してホームページに訪問してもらうためにお金をかけて工夫をしたのに、いざ当日にアクセスが集中してユーザーがまともにホームページを見ることができない…。
そんな状態では、ユーザーが商品を買ってくれるどころかページの閲覧をやめ、他のホームページに行ってしまいます。
リアル店舗なら、セール時などは店員やレジの台数を増やし、お客さんを捌ききるための対策を取ります。
ところがネット店舗では、一定数以上のお客さんが来た場合、サーバーに負荷がかかり、その表示すらままならなくなってしまうこともあるのです。
お店となるホームページがまともに見られなくなったら、それは本末転倒ですよね。
このように、突発的な大量のアクセスがあってもサーバーが落ちたり、ホームページ
が重くなったりするリスクを回避する方法があります。
それがCDNです。
CDNとは何か
CDNはContent Delivery Network(コンテンツ・デリバリー・ネットワーク)の略で、アクセスの集中による負荷を分散し、Webコンテンツを安定して配信する仕組みです。
通常Webページでは、HTMLや画像データがWebサーバー上に格納されています。
キャンペーン等をおこなった場合、短時間による大量アクセスによってサーバーの処理能力を超えた場合、サーバーの稼働が停止してしまいます。ユーザー側から見れば、503エラーやタイムアウトの画面を見せられるわけで、ストレスも溜まります。
そこで、上記のwebサーバーとユーザーの間にキャッシュサーバーというものをはさみ、webサイト上のHTMLやCSS、画像データといったコンテンツのデータをキャッシュ(コピー)させるようにします。
そうすると、ページへのアクセスがあった際、直接オリジナルのサーバーへ情報を読みにいくのでなく、キャッシュサーバー読みに行くようになります。こうすることでオリジナルサーバーの負荷を減らすことができるのです。
CDNは繁忙期に店員の数やレジの台数を増やす対策と似たようなものですね。
CDNを導入すれば、ホームページへのアクセス集中によるサーバーダウンを回避できるようになります。
導入費用はデータ転送量によって変わってきますが、月間50TiBの転送量であれば20万円~40万円ほどで利用可能です。
忘れてはならないならない注意点
1回目のアクセスは、キャッシュサーバーではなく必ずオリジナルのサーバーの情報を読みに行きます。なぜかというとファイルをコピーするために必要だからです。
2回目以降はキャッシュサーバーに行きます。多くのCDNでは、キャッシュさせる期間を設定できます。
キャッシュさせる期間を過ぎると再度、オリジナルのサーバーを読みにいき、キャッシュサーバーには行かなくなるため注意が必要です。
たとえばセール期間内だけキャッシュサーバーを使い、それ以外の期間は利用しない、といった使い分けが可能です。
キャッシュの期間を長くするとオリジナルサーバーへのアクセスは減りますが、ページを更新した場合に、オリジナルとキャッシュサーバーとの間に差異が生じる可能性があります。
例えばページにある画像を変更したときに、ユーザーによっては古い更新前の画像が表示されてしまいます。これは変更前のキャッシュサーバーの情報を表示しているからですね。
とはいうものの、キャッシュの期間を短くしすぎるとオリジナルサーバーへ読み込みにいく回数が増え、結局サーバー負荷が増えてしまい、CDNを導入したメリットが薄くなってしまいます。
まとめ
今後、画像や動画コンテンツを多用したホームページが多くなることが予想されます。
キャッシュサーバーの導入は大量のアクセスの対策以外にも、サイトの表示速度も改善されるというメリットもあるため、CDN導入を検討してみてはいかがでしょうか。