SHARP製マスクの販売サイトがダウン
中国産の使い捨てマスクが多い中、国産のマスクはとても安心できますね。しかもそれがSHARPが作っているとなるとなおさらです。どこの通販サイトでも国産マスクを変えることなどほとんどないのに、一般販売に乗り出したのだからすごい。
しかし、NHKでも報じられて全国から注目される事態になってしまうとサーバー負荷はものすごいことになっていたようです。
シャープが21日に発売した自社工場製マスクの特設サイトにアクセスが殺到し、同じサーバーを利用してネット上で操作ができる同社製の家電の操作も一時できなくなった。午後10時現在でも不具合は解消されておらず、22日以降の販売を一時的に見合わせるという。
引用元:https://www.asahi.com/articles/ASN4P4DFKN4PPLFA00D.html
サイトがダウンすることで見えてくること
インフラ屋目線ではすごい胃が痛くなるような展開ですが、こういう障害で出てくるエラーで、中の構成がどう組まれているのかが垣間見えてきたりします。エラーから分かるのは以下の3点
- ハウジングラックの物理サーバー環境で、クラウドを使ってないこと
- プロキシサーバーの構成が組まれていること
- DDoS対策等の攻撃対処の設定が入っていること
グローバルIPアドレスからわかること
グローバルIPアドレスを確認すると「NTTコミュニケーション」が持つIPアドレスであることがわかります。このIPアドレスはクラウド向けのものではありませんでした。クラウド事業者はだいたいクラウド向けのIPアドレスレンジを決めていて、その中にないことで判断ができます。
また、負荷が増えたことに対処できていないのはWebサーバだけではなくて、バックエンドにいるアプリケーションサーバーまたはDBサーバーも動かないのが見えてきました。さらにはメールサーバーも機能してなかったようですね。大変。
DDoS対策等の攻撃対処がくまれている
攻撃対策が組まれているときに、何度も何度もアクセスすると「F5アタック」等と呼んだりしますが、攻撃にみなされるようになってしまいます。そうなってしまうと、もう自宅からはしばらくアクセスしても弾かれてしまうのです。実際には家庭用のグローバルIPアドレスは一定期間で変わるようになっているのでずっとではないですが、1日くらい続くこともあります。
ここからどう対処してくるのか?
対処方法はいくつかあります。伝統的にみてきた手法は3つです。
1.CDNの下にできるだけ入れる
1日経過したところで、これまでCDNの外にいた部分がだいぶCDNに入っていました。これでだいぶ負荷を下げられたのではないかと思います。実際にユーザー情報を登録するところとかの負荷は下げられないですが、それ以外の負荷が下がるのは大変ありがたいはずです。
しかし、そのぶんCDNに支払うコストが上がるので、これはしんどい対策だと思います。
2.意図的にアクセスを失敗させる
いくつかのサイト運営でみましたが、5回に1回はわざとエラーを返していました。ほんとに抽選制にしていたんですね。そうすることで負荷を1/5にすることができていました。アクセスする側はフラストレーション溜まりますが、マスク欲しいからしかたなく何度もきますね。抽選制になっているなんて思わないし。実際にやってるかはわかりません。
3.ひたすら負荷分散をまじめに作る
おそらくはこの3つ目を必死にやっているのだと思います。一番良いのはクラウドにある程度負荷を分散させることですが、作りこみが必要になってしまうのでそれもだいぶ厳しいですかね。Databaseに何を使っているかまでは推測できませんでしたが、Oracleならいろいろとやりようがあるでしょう。MySQLでこれを耐えるとしたらそうとうしんどいように思います。
とあるiPhoneの予約サイトはxTbpsのアクセスに耐えるように設計されていました。(それでも危うかった)その設計にかかったコストは千万単位でした。ほんとあれはしんどかった。。
ということで、明日以降のサーバー管理者の戦いっぷりを見守りたいと思います。私もマスクを調達したい・・・ので参戦します。みなさまご武運を!!