個人事業主としてフリーエンジニアをしている木下です。
私事ですが最近本を出版しました。タイトルは「おうちで学べるサーバのきほん」という本です。
ちゃっかりこの場をお借りして自著を紹介している私以外でも、世の中ではこうしてWebページのURLを提示しそのページをより多くの人に閲覧してもらうことで、会社(お店)や自社製品のPRを行うことが一般的になっております。
しかし、「人気が出れば出るほど」あるいは「興味を持つ人が急に増加する」ことによって、「自社のホームページによるPR活動が阻害される」というのはご存知でしょうか?
普段は全く意識しない部分ですが、自社や自社の製品に興味を持つ人が増えることによってホームページにアクセスできなくなる現象が発生することがあります。
サイトに人が集まるのは嬉しいことです。集客を目的にサイトを運営してる方は多いと思います。
しかし、アクセスが集中すると「サイトがダウンする」ということを聞いたこともあると思います。今回はその仕組みとともに各レンタルサーバー各社の「同時アクセス対策」についてお話します。
Webサイトにおける同時アクセス数
テレビで紹介されたお店や商品を検索していざそのホームページを開こうとしたら、アクセスできなかったことはありませんか?
ちょっと前に体験したのは、いまテレビで紹介された食べ放題のお店。ちょっといいなと思って手に持っていたスマートフォンでブラウザを起動して検索、検索したらお店のホームページが検索結果に表示されました。
週末に家族でお出かけ、その帰りにお腹がすいたから食べ放題のお店に行って夕飯、家族の喜ぶ顔が目に浮かぶようです。 「よし、じゃあ一番近所のお店がないか店舗検索してみようかな。」そう思ってそのホームページにアクセスしたら…
画面に表示されるのは「503 Service Unavailable」や「Service Temporarily Unavailable」の文字。
はて?ほかのページは表示されるし、検索エンジンの検索結果にも見たいページがリンクとして表示されています。しかし肝心のテレビで放送されているお店のホームページは上記のエラーメッセージが表示されていて見られない・・・。
結局番組が終了するまでこのエラーは継続して、アクセスができるようになったのはその番組の放送日の翌日でした。
エラーメッセージが何を意味しているかを知っているのであれば、「後でアクセスしてみようかな…?」とブックマークなりURLをメモしておくなどの手を講ずるのですが、知らないor気にしないような人にとっては 「ご縁がなかったのかな…?」
とそっとページを閉じてそのようなページがあったことすら忘れてしまうかもしれません。 ホームページを運営している側の視点から見ると「せっかく興味を持ってもらったのにもったいない。」と思ってしまいます。
突然発生する「503エラー」。訪問者はアクセスできず、ビジネスならば機会損失が発生します。
同時アクセス数超過エラー
画面に表示された「503 Service Unavailable」や「Service Temporarily Unavailable」はHTTP 503エラーと呼ばれます。このエラーが表示される状態が理解できるといま何が起きているかが理解できるようになります。
結論から言えば、このエラーはホームページが格納されているWebサーバーへ一時的に接続できなかったために発生する、というエラーになります。では一時的に接続できなかった、という状況はどんな理由で発生するかといえば、
・接続数が多いためエラー(ホームページを訪れる人数が多い)
・データ転送量が多いためにエラー(大量のデータ通信が要求されている)
・サーバーがメンテナンス中により一時的に接続できなかった
Webサーバーでは概ねサーバーがこのいずれかの状態にあるときにHTTP503エラーとなってしまいます。 この三点において本記事で特に注目したいのが「接続数が多いためエラー」です。
アクセスが増える状況というのはテレビや雑誌のようなより一般的なメディアによってそれまでアクセスしてこなかった層が瞬間的に大量にアクセスする、という現象があります。近年ではSNSの普及によってTwitterやFacebookなどで拡散することによってホームページへのアクセス数が瞬間的に増加することもあります。
同時アクセス数は何もWebサーバーに限った話ではありません。
普段使っているWindowsでも同時アクセス数という制限が設けられています。
例えばパソコンのWindows10やWindows8.1などでコマンドプロンプト(管理者で実行)を開き、「net config server」 とコマンド実行してみると、画面の表示に「最大ユーザー数」と表示されている箇所に「20」といった数字が表示されるはずです。
これは、いま利用しているWindowsというOSで20の接続が可能ということを意味しています。
もしWindowsの接続数が超過してしまうとどうなってしまうか、ちょっと昔に経験した同時アクセス超過によるトラブルの事例をご紹介します。
「サーバーに接続できないのですが、なぜですか?」
サーバーを利用するユーザーからこのように問合せを受けました。
Windows Serverをほぼデフォルト設定で利用していたのですが、接続しようとするとエラーになる、というものです。そのユーザーの画面に表示されるエラーメッセージは「アクセスは許可されていません: クライアント アクセス ライセンスを超えました。コンピュータへの接続数が最大値に達しているため、これ以上このリモートコンピュータに接続できません。」
と表示されています。
「最近多いんですよねぇ・・・。」
ため息交じりの発言はユーザーにその気がなくてもこちらを責めているように聞こえるのでちょっと焦ってしまいます。
そのサーバーのユーザー数は元々3・4人程度だったのですが、人事異動や新入社員によってユーザー数が増えていました。それによってサーバーのデフォルト設定である「同時使用ユーザー数=5」を超過する人数でサーバーを利用する状況で稼働することになってしまった、ということが原因です。Windows Serverをパッケージで購入すると5CAL付属するのでそのまま利用していたら同時に利用するユーザー数が5ユーザー以上になってしまったということでした。
このときは余剰しているCALを対象のWindows ServerのCALとして割り当てることで同時使用ユーザー数を増加させ対処としました。
Windows Serverを使うとセットアップ時にライセンスモードを選択する画面にて「同時使用ユーザー数」あるいは「接続デバイス数または接続ユーザー数」を選択する画面が表示されます。Windows ServerではCAL(Client Access License)を用意することによってサーバーにアクセス可能な数を限定し、よりアクセス可能な人数や台数を増加させるためにはCALの購入を必要とします。
サーバーの台数がそれほどではない規模のシステムだったり、アクセスの頻度が低いサーバーがほとんどだったりするとこのCALは同時にアクセスするデバイスやユーザーの数量をCALとして購入し「同時使用ユーザー数モード」を選択することが多く、サーバーの利用頻度が高い環境ではクライアントとなるPC1台ないしユーザー1人毎にCALを割り当てる「接続デバイスまたは接続ユーザー数モード」を選択するのが一般的です。
過去のWindows Serverではサーバーに購入したCALの数量を登録する必要があり、その数量を超えるサーバー利用が発生した時には冒頭のエラーのように明確にサーバーを利用できなくするリミッターのようなプログラムが動作していました。
「うちはWindows Serverを使っていないから大丈夫。」
「レンタルサーバーだから気にしなくても大丈夫だよ。」
いえいえ、そんなことはありません。
実はこれと同じ現象が前出のHTTP503エラーなのです。アクセスする対象がWebサーバー上のホームページなのか、はたまたWindows Serverで共有されているフォルダやプリンタなどの共有資源なのか、が相違するだけで「同時アクセス数が制限されている」という現象自体のメカニズムは全く同一であるといえます。
※注:レンタルサーバーで提供されるWindowsServerではこのCALに関する規定が提供者によって異なりますので契約の際に確認をお勧めします。
同時アクセス数がなぜ重要なのか
これまでに解説したような同時アクセス数による超過によって一時的にアクセス制限が掛かっている状態のとき、アクセスしてきてくれた人が「後日(時間を置いて)またアクセスしよう」と思ってくれればいいのですが、なかなかアクセスしてくれないことも多いものです。
社内サーバーのユーザーであればそれほどシビアではないのですがWebサーバーにアクセスするホームページの閲覧者であれば社外のユーザーとなります。
特に、テレビで見掛けたくらいの情報を後日改めてアクセスしようと思ってくれる人は実際にアクセスしてくれた人の何割かというところでしょう。
興味を持ってくれた人全員がそのホームページを見てくれるわけではありません。
しかし、せっかく魅力的なホームページを制作してインターネット上で公開しているのに、そのページをアクセスしてくれた人すべてに公開できないのはもったいないものです。 しかも、せっかく別のメディアの力でたくさんの閲覧者が興味を持ってくれたのに。
ホームページを見たい人が増えれば増えるほどこの503エラーが発生する可能性が高まることになります。本来ホームページにアクセスしてくれる人は見込み客であり、自社の顧客になってくれる可能性を秘めた人と位置づけることができます。
その見込み客を自社のホームページに誘導し、ページ内のコンテンツによって自社の製品・サービスのファンになってもらうべく魅力的なページを制作しているはずです。自社のホームページまでの誘導には成功しているのですが、せっかく用意した魅力的なコンテンツを閲覧させることができなかった、という点で失敗をしています。
そしてこの失敗はホームページのコンテンツを提供してくれている、レンタルサーバーの選定によって回避したり緩和したりできる、という点に注目したいところです。
「503エラー」はアクセス集中時に発生するもので、サーバーそのものの障害ではない。コンピューターは同時にアクセスできる上限数が設定されており、サイトのアクセスが増えれば増えるほど「503エラー」が発生する可能性も高まってしまいます。
Webサーバーにおける同時アクセス数とはなにか
ここまでで普段気にしなかった同時アクセス数の上限を意識するということの重要性についてある程度ご理解がいただけたと思います。そうなると同時アクセス数とは何か?が気になってくると思います。 前出の例では実際に接続してきている人の人数やパソコンの台数のように錯覚してしまいますが、実はそういった単純な数え方ではありません。Webサーバーにおけるサイト同時アクセス数には公開されているコンテンツが大きく関わってきています。
この数え方をするためには、簡単に計算すると「アクセスしてきている人数(台数)×アクセスされているコンテンツのファイル数」で導き出された数字が同時アクセス数の上限値に達するかどうかによって計算をすることが可能になります。
例えばサイト同時アクセス数の上限が30と定められているWebサイトにおいて考えてみましょう。図のような画像、図、HTMLファイル、動画を各々1ファイルで構成されたWebページをブラウザで閲覧する場合には、同時に4つのファイルを目の前のコンピュータにダウンロードしブラウザ画面で表示することになります。
つまり一人のユーザーがWebページを閲覧することによってサイト同時アクセス×4が発生している状況ですこれが二人に増えれば同時アクセスは×8、三人では×12と倍に増えていきます。
Webサイトの同時アクセス数の上限が30と定められているので8人が全く同時にアクセスすることで8人×4ファイル=32アクセスとなり、上限である30を超えることになってしまいます。
※実際には1秒以下の世界でコンピュータの処理は完了するため、○ms単位で同時にアクセスするような処理が発生しなければエラーが発生することはありません。しかし、動画や音声のように巨大なメディアファイルが含まれている場合、この巨大なファイルをダウンロードするために掛かる時間によって同時アクセス数が上限に達する可能性がより高くなることになります。(詳細は後述します。)
それではホームページの1つのページに30以上のファイルがあった場合、その1ページを開くために同時アクセス数上限30を使い切ってしまうのではないか?という疑問が湧いてきます。近年のコンテンツでは30以上の画像や広告が1ページ内に多数用意されているページも珍しくはありません。
まず閲覧側のパソコンで動作するブラウザの基本動作で同時接続数は2~4程度になっています。結果として一回の接続で同時にどれだけファイルをDLするのか、という動作が制御(制限)されます。
つまり、1ページに30ファイル以上あったとしてもファイル自体は見る側のブラウザで順次DLされていきますので、上限30に到達することはなく同時に2~4ファイルずつDLされることになります。
しかもそのDL自体もコンマミリ秒という時間で完了してしまうことがほとんどであるため、「1ページで30ファイル以上をWebサイトに配置したとしても、一人で同時アクセス数30を使い切らない」ということになります。
ただし、コンテンツの中に大容量(例えば200MBの動画)があれば、その200MBの動画をDLするために、しばらくの間、そのファイルへの同時アクセス数×1が接続されっぱなしになることになります。 当然大容量ファイルへの接続も同時アクセス数にカウントされますので、そのファイルに対するアクセス(DL)が30人実行されているのであれば同時アクセス数は30アクセスに到達してしまうことになります。
DLサイトや動画サイトが混雑のためにつながらない、という状況が多くみられるのは同時アクセス数の制限と実際にDLするファイルの容量が大きいために待ちのユーザーが居座り続けるため、といえます。
このように、同時にアクセスしてくる人数もさることながら、どのコンテンツにアクセスが増大するかによっても同時アクセス数の考え方は変わってきます。そのため同時アクセス数上限についても「どのファイルにどれくらいの人がアクセスしてくるのか」を意識して同時アクセス数と付き合っていく必要があります。
同時アクセス数はウェブサイトの画像ファイル、htmlファイル等すべてのリクエスト数によるものですが、超高速で処理されてるため、エラーが発生することはありません。しかし、読み込みに時間のかかるような重たい動画ファイルを置いてる場合、同時アクセス数は簡単に上限に達してしまいます。
最大アクセス数の許容量を知る
まずは自身のホームページが格納されているWebサーバーがどれだけの同時アクセス数を捌けるようになっているか、を知ることが重要です。 レンタルサーバーによってはこういった最大アクセス数の許容量を公開していないこともあります。
サービス名 | プラン名 | 同時アクセス数 | データ転送量制限 | 拡張機能 |
---|---|---|---|---|
ロリポップ | ライト | 非公開 | 60GB/日 | なし |
スタンダード | 非公開 | 100GB/日 | 一時的に同時アクセス数拡張機能で拡張可能 | |
エンタープライズ | 非公開 | 無制限 ※ | 一時的に同時アクセス数拡張機能で拡張可能 | |
さくらサーバー | ライト | 非公開 | 40GB/日 | なし |
スタンダード | 非公開 | 80GB/日 | 一時的に同時アクセス数拡張機能で拡張可能 | |
プレミアム | 非公開 | 120GB/日 | 一時的に同時アクセス数拡張機能で拡張可能 | |
iCLUSTA+ | ミニ | 60 | 無制限 ※ | 一時的に同時アクセス数拡張機能で拡張可能 |
レギュラー | 80 | 無制限 ※ | 一時的に同時アクセス数拡張機能で拡張可能 | |
プロ | 100 | 無制限 ※ | 一時的に同時アクセス数拡張機能で拡張可能 |
※ 無制限とある個所は、いくらでも使えると言う意味ではなく、特に上限は設けていないと言う意味です。使い過ぎることによってレンタルサーバー事業者によって制限される場合もあります。 調べてみるとサイト同時アクセス数が公開されているサービスは意外と少ないようです。また安価なプランでは転送量や同時アクセス数の上限を一時的に拡張するサービスが用意されていないことが多いことが分かります。
最大アクセス数を増加する方法
一時的にアクセス数の増大に対処するための機能として、最大アクセス数を一時的に増大する機能が世の中には存在しています。
例)iCLUSTA+のスケールアップ機能
>スケールアップ機能
例)さくらレンタルサーバーのブースト機能
>リソースブースト
この機能を利用することによって、突破的なアクセス数や転送量の増加が起きたとしても、これを平常時と同様に処理しHTTP503エラーが発生することなくホームページのコンテンツを閲覧させることができます。ただしサービスによっては同時アクセス数だけ、ないし転送量だけ、という機能であることもあります。注意が必要です。
冒頭のテレビで紹介されたような一時的にアクセスが増大するような出来事がわかっていれば、事前にこの機能を設定しておくことによって大量のアクセスによるHTTP503エラーを回避することができるようになります。それでも上限値はありますので限界はありますが。 なにしろこの機能は無料の機能なので、平常時はそれほどアクセスがないホームページでも、アクセス増大がわかったところで簡単な設定ひとつで一時的に強化できるのがポイントです。
ただし基本料金内で提供される機能ゆえ、一度使用すると次に使用できるのは○日後あるいは月内で○回以内、という制限が設けられていることがほとんどです。
では恒常的にアクセス数が増加しているようであれば、どうしたらいいか?という点ですが、 これには、最大同時アクセス数の変更がオプションプランとして用意されているレンタルサーバーがいくつか存在しています。
たとえば
iCLUSTA+のサイト同時アクセス上限数はサイト同時アクセス上限数追加オプションというオプションサービスを追加契約することによって、ホームページを同時に閲覧できる人数を増加させることができます。
契約したプランによって60/80/100のようにサイト同時アクセス上限数が決められていますが、この上限アクセス数をオプション料金の追加投資によって増加させることができます。つまり一番安価なプランを使っていてもオプションを追加することで最上位プランと同じ同時アクセス上限数を備えたホームページを用意することができるようになります。
尚、iCLUSTA+では前出のさくらレンタルサーバーのブースト機能に該当する「スケールアップ機能」によって一時的にアクセス集中時の同時アクセス数上限を外すことによって、混雑を緩和する機能も用意されています。
iCLUSTA+では二つを組み合わせて急激なアクセス増に対処しつつ、恒常的なアクセス数増大にも対策を講ずることができるといえます。
同時アクセス数を公開してるサービスは少ない。同時アクセス数が増加する見込みがある場合、できればオプションで増設できるところが望ましい。
まとめ
今回は「同時アクセス数」に注目しました。
1 Webサーバーで公開するホームページでは、「人気が出れば出るほど」あるいは「興味を持つ人が急に増加する」ことによって、「自社のホームページによるPR活動が阻害される」という特徴があります。
2 阻害の理由として、アクセスする人が増加することに起因して「サーバーの同時アクセス数」が増加することで「同時アクセス数の上限」に引っ掛かってしまうことが要因です。
3 同時アクセス数の上限に引っ掛かった場合には、HTTP 503エラーとなり、そのページが表示されないことになります。
4 HTTP 503エラーは接続数意外にもデータ転送量の上限に達した場合や、サーバーがメンテナンス中によって表示されるケースもあります。
5 同時アクセス数の上限はシステムやサーバーサービスの提供者によって定められていることがほとんどです。
6 同時アクセス数は単純にアクセスしてくる人数や台数を数えているわけではなく、その人数・台数がいくつのファイルをダウンロードするかでカウントされています。
7 最大アクセス数を超えるアクセスが発生してしまった場合、一時的に最大アクセス数を拡張できるサービスを備えているサービスが存在しています。
※ただし、レンタルサーバープランの中位~上位プランで提供されていることが多く、安価な低価格プランでは機能自体が提供されていないことが多くあります。
※あくまで一時的に転送量やアクセス数の上限を拡張する機能であるため、恒久的なアクセスの増大に対処できるものではない、という点に注意が必要です。
8 恒常的なアクセス増大に対処するためには、より上位のプランへ変更したり、より転送量やアクセス数の許容量が大きい別のサービスへ乗り換えたり、といった対策が必要になってしまいます。ただし一部サービスではこの上限を緩和するサービスが有料オプションとして提供されていることもあり、その場合にはオプションを追加するだけで完了することになります。
せっかく話題になった、人気が出た、バズった、ときに一気に名を売り込むチャンスが到来したにもかかわらず同時アクセス数によって目に触れる機会が限定されるのはもったいないことです。普段意識しない同時アクセス数ですが、チャンスはいつどこからやってくるか分からないものです。その千載一遇のチャンスを逃さないために、アクセス数がそれほどではない今からでも考えておいて損はないのが「同時アクセス数」です。