歴史は繰り返す的なトラブルが今度はJALで発生しました。3月9日午前0時からJALスマイルキャンペーン開始とともにアクセスが集中してウェブサイトがダウン、一晩経ったあとも復旧できずに、キャンペーン応募以外の通常の航空券購入や便の変更なども不可能な状況になりました。
行われたセールは4月14日から6月30日まで(4月29~30日、5月3~7日を除く)の搭乗期間を対象に、国内線のチケットを片道6600円で購入できるというものだったので、魅力に感じた人が購入しようと集中したのでしょう。
大きなキャンペーンやセールとともに、ウェブサイトがダウンすることは、ECサイトが各種立ち上がった当時は日常茶飯事、とてもよくあったことですが、最近は聞かなくなってきていました。JALは各種のシステムで大きなシステム障害を経験して再発防止策を重ねてきた会社だけに今回のトラブルには驚きました。
ウェブサイトで高負荷によるレスポンス遅延や無応答が発生すると、利用している人は、再度、ウェブサイトにアクセスします。それでも駄目ならリトライをするということを繰り返すため、指数関数的にトランザクションの数が増えてしまいます。特にセールの場合は「しばらく経ってから操作してください」とメッセージを出すことができたとしても、待てばセール品が完売してしまうため、繰り返して操作する人が増えます。こうして、よりサーバーの高負荷が発生しやすい状況になります。
通常、ウェブサイトを設計するときには、過負荷が生じた場合は、トランザクションをsorryサーバーに流して、業務を行うサーバーの過負荷による停止を防ぐようにしていますが、JALの場合はうどなっていたのでしょう。
クラウドで運用されているのだとすればリソースの追加、オンプレミスだとしても負荷分散装置の設定変更等が策として考えられると思いますが、このような付け焼き刃的な対応ではどうにもならなかったようで、キャンペーンそのものを中止するという対応に至りました。セール以外の通常のお客さんにも影響を与えてしまった以上、致し方ない判断だったのではないかと思います。
販売中止を決定したのは下記のセールです。
国内線航空券 タイムセール
① 4月14日(金)~5月31日(水)搭乗分
② 6月1日(木)~6月30日(金)搭乗分
下記のセールは販売が継続されます。
- 国内線ダイナミックパッケージセール(スマイル割)
- 国際線航空券キャンペーン
- 海外ダイナミックパッケージハワイ限定タイムセール
せっかく、新型コロナウイルスによる影響も軽微になってきて、これから旅行の機運を盛り上げよう!と企画したイベントだったと思うのですが、水を差す結果になってしまいました。
今後、JALからは発生原因や再発防止策の発表をしてもらい、業界でこのような事案が発生しないようになっていけば良いと思います。
【2023年3月24日追記】
原因発表
セールの開始に伴いトランザクション数が事前想定の2.5倍に達して、負荷分散装置(ロードバランサー)の処理能力を超えて停止したことが原因です。
通常は予約発券システムは毎時3万人がアクセスしているものの、過去に実施したタイムセールでは毎時20万人程度がアクセスしたため、今回は40万人がアクセスしても大丈夫なように対応していたとのことです。しかし、今回のキャンペーンはで毎時100万人程度の規模だったので処理能力をオーバーしたことになります。
ロードバランサーの過負荷に対して、JALが契約しているCDNで流入を制御することで復旧させたものの、ロードバランサーの先にある予約発券ゲートウェイがアクセスの殺到に耐えられなかったとしています。
ただ、ロードバランサーの過負荷がどうしてCDNで助けることができたのか、空席照会はリアルタイムの情報を見せなければいけないので、CDNにキャッシュさせてはいけないのではないか?等、今ひとつ理解できませんでした。
コメント