セール開始時は通常の50倍のアクセスが集中する
ここで星野氏は、システムの運用に話を移す。楽天市場のシステムを運用する上で最大の挑戦は、定期的に開催している「楽天スーパーSALE」だという。「セール開始時は多い時で通常の50倍以上のアクセスが集中する」というから、挑戦しがいのある話だと想像できる。しかも、近年は楽天市場が急速に成長しているため、ピーク時のトラフィックもどんどん大きくなっているという。
絶対にシステムを止めずに、ピーク時のトラフィックをさばききるために、セールが終わったらすぐに次のセールの準備を始めているという。具体的にはシステムのアーキテクチャを考え、個々のコンポーネントのキャパシティを見積もり、対策を採るなどしているそうだ。
次のセールの準備ができたら、テストだ。このテストは本番環境で、本物のトラフィックを再現しながら実施しているという。当然、ある程度のアクセスが恒常的にやって来る日中にはできない。そこで、深夜に担当者が集まって本番相当のトラフィックをシステムに流してテストしているという。トラフィックといっても、どんなものでも良いわけではない。過去のセールのログを解析して、本番になるべく近いトラフィックを再現しているそうだ。
そして、セール当日は100名以上の担当者がオフィスに集まり、リアルタイムで監視する。新型コロナウイルスが流行し始めてからは、リモートとオンサイトのハイブリッド形態に形を変えたが、何かがあったときに、すぐにメンバーに声をかけられる環境を作っていることには変わりない。
何度も繰り返しているが、楽天市場のシステムは絶対に止めてはいけない。たとえ通常の50倍のトラフィックがやってきたとしてもだ。そして楽天には、これまで何度もセールを実施してきた経験とノウハウがあるという。そのノウハウから、トラフィックが増大してきたらあまり重要でない機能を落としてしまう決断を行うこともあるという。それも、ユーザーが買い物できる環境を提供し続けるためだ。最近は「どんなトラフィックが来ても問題なくお買い物ができる環境を提供できているんじゃないかな」と星野氏は語る。
とはいえ、ECの需要の高まりとともに毎年トラフィックは増大するばかり。セキュリティなど、新しい問題も次々起こる。こうした課題に「今ある技術だけで対応していくのは非現実的、常に新しい技術も取り入れながら戦っている」(星野氏)という。
具体的には、コンテナベースのアプリや仮想化ネットワークなど、スケールしやすいアーキテクチャにシステム全体を変更していっているそうだ。しかし、安定度を考えると新しい技術を入れることは不利に働く。アプリケーションを高品質に作ったとしても、新しいフレームワークや新しいインフラに載せてしまうと、安定度合いは従来のものに比べて落ちてしまう。しかし、現状にとどまっているわけにはいかないので、ある程度のリスクを覚悟して新しい技術に挑戦しているという。そして、いきなり新しい技術を本番環境に入れるわけにはいかない。早めに構想を練って、準備しているそうだ。
星野氏は、最近特に力を入れていきたい問題として、リダンダンシー(冗長性)を挙げた。クラスタレベルのリダンダンシーから、データセンターの配置を考えるリダンダンシーを考えているという。その延長として、マルチクラウド戦略も頭の中にあるという。
楽天は自前のデータセンターを持って、システムを運用していることで有名だったが、実は現在では一部パブリッククラウドも利用しているという。その動きをさらに進めて、マルチクラウドでシステムを構成し、リダンダンシーの高いサービスを提供しようというわけだ。
ただし、マルチクラウド化に向けた問題もある。各クラウドベンダーに依存しないようにソフトウェアを書かなければならないということはもちろん、ネットワークやセキュリティ、そして利用コストも考えなければならない。一昼夜でできることではない。星野氏は「だからこそ早め早めに進めていきたい」と語り講演を締めくくった。