※当ブログではアフィリエイト広告を利用しています。
テニスの全米オープンで錦織圭選手が日本人初の決勝進出を決めたことで、同選手を支援してきた松岡修造氏のオフィシャルサイト(ブログ)が丸二日ほど非常に繋がりにくい状態となっています。
現在もつながりにくい状態が続いているため、サーバーがパンクしないためにすべきだった対策を3つ考えてみました。
松岡修造氏のオフィシャルサイトについて
松岡修造氏がコラムや応援メッセージなどを発信している公式サイトです。トップページでは修造氏の心の声を音声で聞けるなど、熱さが伝わってきます。
松岡修造オフィシャルサイト | SHUZO MATSUOKA OFFICIAL SITE
しかし錦織圭選手への応援メッセージがブログに記載されていたこともあってか9/7あたりからかなり繋がりにくい状況になっています。
他サイトのおおよそのトラフィックやPV数を調べられるSimilarWebで同氏のサイトを調べてみたところ、月間PV数はおおよそ20,000程度のようです。よって普段は月1,000円程度のレンタルサーバでも余裕を持って運用できるトラフィックです。9/7ごろから急激にトラフィックが増えているのは間違い無さそうです。
Service Temporarily Unavailableについて
現在修造氏のオフィシャルサイトで発生している「503 Service Temporarily Unavailable」が出るのはサーバーが完全にダウンした時ではなく、「つながりにくい」状態の時です。具体的には以下のような場合です。
- Webサイトへの「瞬間的」なアクセスが多い。
- Webサイトの構造上、1つのアクセスに対して「セッション」が多く発生してしまっている。
実際、オフィシャルサイトを開いてみるとレスポンスは非常に速いです。何度か更新してみると「Service Temporarily Unavailable」が出る場合、スタイルシートや画像が適用されていないHTMLが表示される場合、ほぼ全てのコンテンツが表示される場合があります。後者2つは同時接続数の上限を超えているための挙動だと思われます。
サーバーがパンクしないためにすべきだった対策
対策1 高性能なサーバーにお引っ越しする
「Service Temporarily Unavailable」の原因は同時接続数の上限を超えていることであるため、転送量制限が緩くスペックの良い高価なサーバーを使えば対策は可能です。しかし以下のようなデメリットがあります。
デメリット
- 現行サーバーからファイルを移動する必要がある(時間がかかる)
- 錦織圭選手の活躍によりどの程度トラフィックが増えるのか事前に推測するのは困難であり、サーバーのスペックを高くせざるを得ない
- 全米オープンが終わったらトラフィックは収束すると考えられ、数日のために高いサーバー代を払うのはもったいない
対策2 Amazon S3の静的Webホスティングにお引っ越しする
松岡修造氏のオフィシャルサイトは見たところコメントシステムのような動的にページを生成するものは無く、ブログも.html
などの静的コンテンツだけであるように見受けられます。(裏でブログシステムが稼働している可能性はあります)
コンテンツが全て静的ファイルであると仮定した場合、すべてのファイルをAmazon S3の静的Webホスティングに移行すれば、高性能なサーバーに引っ越しする方法に比べて以下のメリットがあります。
メリット
- 急激なアクセス(スパイク)にも耐えられ、トラフィックの見積もりが不要
- 極めて低価格(約4円/1GB + 転送量課金)であるため、数日のために高いサーバー代を払う必要がない
が、以下のようなデメリットもあります。
デメリット
- 現行サーバーからファイルを移動する必要がある(時間がかかる)
- 裏でブログシステムが動いている場合は新規エントリの投稿ができない
対策3 Amazon CloudFrontのカスタムオリジンを利用する
上記2つの方法はいずれも現行サイトからファイルを移動させる必要があるため、現行コンテンツが大量にある場合は移行に時間がかかるという欠点があります。また裏でブログシステムが動いている場合は動的にコンテンツを生成できない対策2のAmazon S3は使えません。
そこでAWSが提供するCDN(コンテンツデリバリネットワーク)であるAmazon CloudFrontのカスタムオリジンを利用すれば、前述の2つの方法のデメリットを克服した対策が可能です。
Amazon CloudFrontをカスタムオリジンで利用する方法については当サイトのこちらのエントリに詳しく書いています。簡単に言うと現在のサーバー(オリジンサーバー)を利用しつつAWSのCDNがトラフィックを肩代わりしてくれるという便利な方法です。
メリット
- 現行のサーバーからファイルを移転する必要がなく、現在の環境をそのまま使用できる
DNSレコードの切り替えだけでAWSの高速なCDN(コンテンツデリバリネットワーク)が利用できます。 - 急激なアクセス(スパイク)にも耐えられ、トラフィックの見積もりが不要
- 利用料金は転送量課金のみ(高いサーバー代を払う必要がない)
- ブログシステムから新規エントリを投稿できる(CloudFrontはPOSTにも対応)
- トラフィックが収束したらDNSレコードを元に戻すだけで以前の環境に戻すことができる
おわりに
AWSを使う時点で少しハードルが高いのは否めませんが、今回の松岡修造氏のオフィシャルサイトのような状況はまさにクラウドの出番といった形ではないでしょうか。錦織圭選手の決勝を本日に控えていることもあり、松岡氏のサイトからはまだまだ目が離せません。