CodeZine(コードジン)

特集ページ一覧

”決済のニューノーマル”を打ち立てたPayPay、1,000TPSの決済システム実現で乗り越えた3つの試練【デブサミ2021】

【19-C-2】1秒あたり1,000決済への道のりとオブザーバビリティ

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/03/17 12:00

 2018年6月の創業以降、「100億円あげちゃうキャンペーン」やポイント還元キャンペーンなど数々のユニークな取り組みを展開し、2021年1月には登録ユーザー数3,500万人超を達成したスマートフォン決済「PayPay(ペイペイ)」。その躍進の影には、トランザクションの急激な増加や想定外の障害といった試練に立ち向かい、奮闘するエンジニアたちの姿があった。講演「1秒あたり1,000決済への道のりとオブザーバビリティ」では、PayPayが直面した3つの試練を取り上げながら、最低1,000TPSに対応できるシステム作りで取り組んだことや、加盟店やPOSゲートウェイ会社とのエンドツーエンド負荷試験、オブザーバビリティの重要性、そして「決済のニューノーマル」の開拓者としての覚悟など、New Relicの大谷和紀氏がPayPayの平川宗則氏に聞いた。

目次
PayPay株式会社 プロダクト本部 テクノロジー2部 部長 平川宗則氏(上)、New Relic株式会社 シニアカスタマーサクセスマネージャー 大谷和紀氏(下)
PayPay株式会社 プロダクト本部 テクノロジー2部 部長 平川宗則氏(上)、New Relic株式会社 シニアカスタマーサクセスマネージャー 大谷和紀氏(下)

3カ月でユーザー1,000万人増、次々現れるボトルネック

 システム上では、いつ、なぜ発生するのか分からない、発生の原因を調べても理由がはっきりしないちょっとした異常が起こる。こうしたよく分からないものを、システムのメトリクスやログ情報、監視などを通じて可視化し、原因を特定して対処しながら安定稼働につなげるのが「オブザーバビリティ(可観測性)」の基本的な考え方だ。

 このオブザーバビリティを継続的に実践しながら、「3つの試練」を乗り越えて決済システムの強化を続けてきたのが、PayPayだ。

PayPayの成長を促した3つの試練
PayPayの成長を促した3つの試練

 1回目の試練は、創業から約3カ月後にサービスをリリースした直後、マーケティング部から「100億円あげちゃうキャンペーンを打つ」と言われたときだ。システムのモニタリング体制は準備してあったが未知数のアクセス数を受け入れなければならないという状況に、社内では戦々恐々だったと、PayPayの平川宗則氏は明かす。

 負荷試験は当然実施した。しかし、運営側の未熟さも手伝い、負荷試験で問題ないと確認した構成や設定が本番環境とは一部ずれていたことなどが、キャンペーン開始直後に次々発覚。「監視用のダッシュボードも、マイクロサービスごとの担当者がそれぞれ個別に用意したものだったため、観点がバラバラ。マイクロサービスのボトルネックがどこにあるのか、把握するのが難しい状態だった」と平川氏は述べる。

 そうした反省を受けて、平川氏たちは認識できていない微細な変化を捉え、速やかにボトルネックまで掘り下げられるよう、オブザーバビリティ向上を支援する「New Relic APM」を導入した。同時に、モニタリングルームを設置。50以上の主要指標を大型モニターに常時投影し、特にキャンペーン期間は朝昼夜のピークタイムはエンジニアが自分たちの目で監視する体制を敷いた。

 このほか、カスケード障害を防止するためのサーキットブレーカーや、想定以上のアクセスがあった場合に処理の完了を優先した流入制限も導入した。この取り組みについてNew Relicの大谷和紀氏は、想定外の現象が起こっても緩やかにサービスを劣化させつつ、その影響をシステム全体に波及させない「グレースフルデグラデーション」が実践されていると評価。多少の犠牲があってもシステムは落とさない仕組みを取り入れたことが、その後の強化にもつながったのではないかと分析した。

 その後、いくつかのキャンペーンを乗り越え、登録者数も1,000万人を突破。さらに弾みをつけるべく、2019年10月1日に開始した経済産業省の「キャッシュレス・消費者還元事業」と合わせて、5%還元対象店舗でさらに最大5%追加のポイント還元を行う「まちかどペイペイ」キャンペーンを実施した。そしてこれが、平川氏たちにとっての第2の試練となる。

 キャンペーンは功を奏し、わずか3カ月で登録者数は約2,000万人に倍増した。だが、平川氏たちは新たな課題に直面する。同キャンペーンを開催した際に新規で増えたのは、これまでキャッシュレスを使ったことがない顧客層だ。レジでエラーが出て使えなかったとき、最悪の場合は二度と使ってもらえない可能性もある。

 もう1つ、コンビニなどの加盟店のPOSシステムや、PayPayとレジ間をつなぐ決済ゲートウェイサービスがボトルネックになるケースが、この時期から増え始めた。

 「どこに問題があるにせよ、ユーザーからすれば『PayPayが使えなかった』という体験に変わりはない。社会インフラになったことを自覚し、そこへの期待に応えられる品質や体制を整えなければならない。POS関連は自分たちのシステムではないとしても、そこのプロセス含めて負荷対策や安定性を担保することが私たちの使命であると痛感した」(平川氏)

 ここで、PayPayは大きな決断をする。それは、これまで進めていた新機能の開発をすべて、1カ月半停めて負荷対策に取り組むことだった。「当時は130人ほど開発メンバーがおり、運用に最低限必要なメンバーを残して、約80名が負荷対策専任チームに割り当てられた」(平川氏)

 このチームの中でも特に負荷試験だけを行う専任チームはまず、負荷試験を自動化し、毎週実施して結果を継続的に確認する仕組みを作った。また、加盟店ごとにダッシュボードを作り、加盟店と決済ゲートウェイとのエンドツーエンドの負荷試験も実施。加盟店単位でモニタリングやアラートの確認を行いながら、ボトルネックの洗い出しを行った。

 新機能開発とサービスの信頼性はトレードオフと言われがちだが、その点はどう克服したのか大谷氏からの質問が出ると、平川氏は「一番重要なのがセキュリティで、次に安定稼働などシステムとしての信頼性。これらすべてが実現できた上での新機能開発だという意識は、エンジニアから経営層まで、会社全体で共有されていた。その意味で、リソースの確保や対応の優先順位で悩むことはなく、エンジニアとしてありがたい環境だ」と答えた。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:【デブサミ2021】セッションレポート

もっと読む

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5