ワールドビジネスサテライト砲を乗り越える時にやったこと

先日2013年11月25日(月)にテレビ東京さんのWBS(ワールドビジネスサテライト)に弊社サービスのrecme[レクミー]を取り上げていただきました。

というわけで、急激なアクセス増加に耐えるために打った対策を、時系列順にまとめておきます。

11月22日(金) 〜 放送3日前 〜

  • EC2インスタンスを沢山並べるために、デフォルトの20台制限を100台にしてもらうようにここのフォームから申請する。
  • ELBの暖気運転を申し込むため、AWSサポートのビジネスプランに申し込む。
  • ちなみにAWSサポートは1ヶ月単位の申し込みではなく日割りで清算してくれるようなので、必要な瞬間だけ申し込むことが可能とのこと。
  • EC2インスタンスはc1.medium(c3.largeにした方が良かったと思ってますが)を2つのゾーンに10台ずつ並べる。
  • 目標は秒間3,000アクセスを優雅に捌くこと。

11月23日(土) 〜 放送2日前 〜

  • もっともアクセス数が多いであろうトップページ+αのSQLクエリ数を減らす。
  • 具体的にはmemcachedを導入したり、Djangoにおいてselect_relatedを使ったり。

11月24日(日) 〜 放送前日 〜

  • RDSを最高にハイ!なスペックのものに切り替える。
  • ちなみにこのページの『エイトエクストララージ』で、Multi-AZオプションも付けるので1時間あたり950円(1ドル101円換算)の利用料金がかかる。高い!
  • パフォーマンスはサクッと試しただけで1500 Requests per secondを確認できたので、ほぼ大丈夫だと確信。
  • あとは放送を待つのみ。

11月25日(月) 〜 放送当日 〜

  • 放送3時間前くらいになって「コーポレートサイトも強化しないと!」という話になり、慌てて準備。
  • ELBの暖気運転の申請はとても間に合わないと思い、ELBは使わずc3.2xlargeにNginxを入れてLBとして使い、2台のc3.largeインスタンスをぶら下げる。
  • 心のどこかで「いやそこまでやらなくてもいいだろうな」という思いはあったが、とりあえずコーポレートサイトが見たことないくらい高速になってテンション上がる。

11月25日(月) 〜 23時30分 放送開始後 〜

  • 20台のサーバーの様子を見るも、余裕綽々。
  • 個人的には放送をチラ見しながら「ロードアベレージが60を超えたぞ! どうなってるんだ! 30秒以内にサーバーを追加せねば!」みたいな動き方をしてみたかったけどそんな漫画みたいな状況にはならず。


…という感じです。

具体的なアクセス数とかは今のところ未公開の方針なのでお伝えできませんが、久々にテンション上がりっぱなしの数日間でした。