東京マラソンに物申す!チャリティー申し込み、予想通りのアクセス集中でトラブル発生><
目次
東京マラソン チャリティー枠、予想通りの激しい争い!今年は4時間で締め切りに!
東京マラソンのチャリティー枠、本日朝10時に応募開始になりましたね!予想以上の激戦でしたが、なんとか枠を確保できました!!1時間程度格闘していて、やっとのことで掴んだ枠です!
予想はしていましたが、今年は物凄く激しい闘いでした。なんと、募集していた3700枠が4時間半で埋まってしまったんです!昨年もすごかったですが、それでも締切まで4日は期間ありました。今年はその余裕もなく、まさかの当日どころか4時間半での埋まりでした><
↓こんな感じでメール来ました!今年は、日本財団の「夢の奨学金事業」に寄付させて頂きました!
このような激戦になったことにより、twitterなどではちょっとした騒ぎになっていました。サーバーエラーが多発して、応募できない人が多数いたからです。というより、もっと酷いことも起きていて・・・
今回はその騒ぎのまとめと、エンジニアの自分から見た問題点を軽く指摘させて頂きます><
恐怖の画面… 502サーバーエラー
まず、本日たくさんのランナーが見すぎてトラウマになったのがこの画面だと思います。。。サーバーエラーの画面ですね。エントリーページにいってもこの画面。なんとか申し込みページにたどり着いても、またこのエラー。そして頑張って頑張って入力完了しても、またこの画面現れて・・・本当に大変でした。
twitterを見ていると、ここに書かれているnginxという文字に相当イラッときていた人も結構いたみたいです。wikipediaとかで調べると「フリーのhttpサーバー」と出てくるので、もっとお金かけろよ!と言いたくなった様子。気持ちはわかりますが、、、
nginxは業界標準で超高速なサーバーです。色んな大規模なwebサーバーで使われているので、このnginxサーバーには罪はないです>< (このページもnginxで動かしてます)
↓nginxのサーバーでの説明例。本当は超高速なマシンなんです><
二年連続の恐怖!「募金したけど、申し込めていない状況」でエラー多発!!
で、一番の問題はただサーバーにつながりにくかった事ではないです。もっと大きな問題です。それが、「募金したけど、申し込めていない状況」です。
東京マラソンは「個人情報登録ページ」⇒「募金ページ」⇒「大会エントリー」という手順で進んでいきます。で問題は、この「募金ページ」と「大会エントリー」の間でエラーが多発したことです。ここでエラーが起きるということはつまり、「10万円寄付したのに、東京マラソンにはエントリー出来ていない状態」なんです!
お金だけ振り込ませて、大会には出場させない… まさに振り込み詐欺みたいな手法です>< こんな恐ろしい状態に、今年はかなりの人数の人が陥ったようです。twitter上ではかなり混乱していました。あの脳科学者の茂木先生もこの件ツイートしてましたし。
実はこの現象、去年も発生していました!
この現象、今年かなり問題になっていましたが、実は去年も起きていたんですよね・・・その証拠が↓の自分の去年のツイートです。
募金10万円振り込んだけど、大会エントリーページに30分ぐらい入れなくて涙ながらにツイートした記憶が><
けど、去年はあまり問題になりませんでした。何故なら、枠が4700あり、1日目では全枠埋まらなかったからです。だから、「募金したけど、申し込めていない状況」になった人はいるけど、あまり問題にならなかったんです。しばらくしたら、ちゃんと大会エントリーできたので。
でも、今年は死活問題です。募集枠がすぐに埋まりましたからね。じゃあ10万円払って、エントリー出来ていない人はどうすれば?という話です。
↓このようなお詫び文章が公式ページに。。かなり問題になってます
完全に想定できたトラブル。去年以上の超絶的な混雑も予想はできたはず!
ここからは、エンジニアとしての自分としての意見です。この問題はかなり重症な問題だと思います。それは完全に想定できたトラブルだからです。まず、このような現象が去年も起きていたこと。改善の余地が1年あったのに、何も変わっていないどころか退化してるように見えるぐらいです… ><
そして、この超絶混雑は事前に予想できたはずなんです。チャリティー枠は4700から3700に減りました。去年も2日ぐらいで4000人ぐらいは埋まっていたので、今年は1日で埋まることは想定できたはずです。さらに、それにより皆焦るので、さらに競争激化するのは予想の範囲のはず。。。でも、何か対策されているようには見えなかったです>< うーん…
混むのなんて、応募開始の数時間だけ… もう少し、クラウドリソースの活用を!
東京マラソンのページの負荷なんて、普段はたかが知れています。そこまで大きなアクセスはないはず。ただ、チャリティー枠の応募など、特定の日の一定の時間だけ膨大なアクセスがくる… ソレだけなんですよね。
昔だったら、このような状況に対して、ピークにあった性能のサーバーを購入する必要があり、すごく無駄だったんですよね。例えば、ピーク日に合わせて超巨大サーバーを購入しても、他の日は超スカスカのはず。これだとお金の無駄になってしまいます。
でも、今はAmazonのクラウドなど、いろんなサービスがあります。そういうクラウドサービスを使うと、時間課金で性能を増やせるので、1日だけ膨大なサーバーを立てて、他の日は少量のサーバーにするとか出来ちゃうんですよね… そういったクラウド資源の活用をして頂ければ、もう少し良い状況になったのではと思います。
↓Amazonのクラウドサービスの説明ページ。簡単にサーバー台数とか増やせるんです
「10万円募金」⇒「大会エントリー」と分けること自体が、トラブルの原因!
上記のようなクラウドの話はいいとして、自分が去年から思っていたのが「処理を分けちゃいけないとこで分けている」ということです。ソレに関連して、自分がツイートしたのがコチラ。
これ、どういう意味か簡単に説明します。サーバー処理には「トランザクション」という考え方があります。これは「一連の連結した処理」という意味です。「その間では絶対に連動しないといけない処理」という意味です。例えば、「銀行での振込」「相手口座への入金」は一種のトランザクションです。なぜなら、「銀行での振込」だけ成功して、「相手口座への入金」は失敗したなんて状態は有り得ないからです。自分のお金だけ減って、相手の口座のお金が増えないなんて許されません。だからこそ、「銀行での振込」⇒「相手口座への入金」の処理は何が何でも完全連動するようになっています。
「10万円募金」⇒「大会エントリー」はまさにトランザクションだ!
この考え方からいくと、今回の「10万円募金」⇒「大会エントリー」ってトランザクションに近いと思うのです。「10万円募金」が成功して、「大会エントリー」は失敗なんてあってはいけない事。だから、「10万円募金」⇒「大会エントリー」が完全連動するようなシステムをつくるのが、ユーザーにとって一番良いことなんですね。募金ボタンを押した瞬間に、大会エントリーされるのが一番安全のはず。そしたら、失敗した人はお金はとられないし、お金が引かれたなら必ず大会に出られるはずなんです。
でも、たぶんそうしないのは数年前まで募金の要件が「10万以上の募金額を皆から集める」だったからです。数年前は自分だけでなく、皆でお金を集めて10万以上募金し、その上でエントリー可能になるという仕組みでした。この場合、複数人が募金するので、どうしてもトランザクション(一連の処理)には出来ないんですよね… だから募金システムとエントリシステムが分かれてしまったのかと。
でも、今はもうそんな仕組みはないはずです。「募金金額を入力して、エントリーボタンを押せば大会登録完了」というシンプルな画面遷移でいいはずなんです>< 色々予算の制約とかあると思いますが、今年大きな問題になってしまった以上、来年には改善を望みたいと思います^^
とりあえず… 来年は絶対今年以上にやばい争いに!
今回のようにシステムの問題はありますが… ものすごいチャリティー枠が激戦になってきているのは変わらない事実です。サーバーがまともに動くようになったなら、今度は30分程度で応募締め切りになってしまうようになる気がします。それぐらい、皆この応募開始日を意識しています。
一昨年は余裕だったんですけどね、実は確定申告すれば4万円返ってくるとか、東京マラソンのコースが変わってタイムが狙える大会になったとか、そのへんが関係しているんでしょうか。確かにお得ですからね。都心住まいの人なら、変に地方大会にいくより、実質6万円払って東京マラソンに出たほうが、調整とかもしやすいですし、タイムも狙えますからね。自分のような考えの人も多いかと。
とりあえず、もうチャリティー枠は今までのただの先着枠とは違います。もはや、ネットの争いに勝った人が貰える抽選枠並の激戦枠になろうとしています! 負けないように頑張らないと!というより、今年獲得枠獲得できたことに感謝して、一生懸命練習に励みたいと思います!><
⇒「〇ランニング」カテゴリ記事一覧
その他関連カテゴリ