CloudNative Days Tokyo 2023に登壇しました!

2024.01.31

当日の発表資料



※資料は登壇当時の内容となります。

PayPay Product統括本部 Infrastructure Technology部 部長の青木です。
2023年12月11日と12日の2日間、有明セントラルタワーホール&カンファレンスにて、 CloudNative Days Tokyo 2023が開催されました。

その2日目キーノートにてPayPayのサービスを提供するインフラストラクチャについて「Infrastructure in PayPay」というタイトルで登壇致しました。
本記事ではその内容について振り返りつつ、残念ながら当日ご参加またはご視聴頂けなかった方にも、ぜひご紹介したいと思います。

Infrastructure in PayPay

PayPayではDay1当初からほぼ全てのインフラストラクチャをAmazon Web Services (AWS) 上に構築しております。
アプリケーション基盤としてKubernetesを、非同期処理には主にKafkaを、データストアには、AWSのマネージドサービスであるAmazon AuroraやAmazon DynamoDBを主に利用しつつ、特徴的な点としてEC2上に分散データベースであるTiDBを構築し、運用しています。TiDBはマネージドサービスとしてクラウドサービス(TiDB Cloud)もありますが、PayPayではself-hosted clusterとして構築から運用まで自社エンジニアで対応しています。

TiDB

このスライドではDay1から現在に至るまでの変化を、リージョン、Kubernetes、データベース、という3点に着目して簡単に時系列にしてみました。
Day1からしばらくの間、AWS東京リージョンでサービス提供を行い、AWS大阪リージョンにデータのバックアップデータを遠隔地保管しておりました。その後2021-2022年ごろよりAWS大阪リージョンでもアプリケーションを稼働させ、マルチリージョン構成に変更しています。
また時期を同じくしてKubernetesクラスタについても冗長性を持たせたマルチクラスタ構成になっています。
リレーショナルデータベースについてはDay1当初はRDS MySQLを利用しておりましたが、その後Aurora MySQLへの移行を行いつつ、一部のワークロードはTiDBを併用する形が現在の状態です。
今回の登壇では、1. TiDB、2. マルチリージョン・マルチクラスタという2点についてご紹介します。

TiDB

TiDBの導入背景としまして、2019年当時はAuroraで問題なく処理できていたものの、今後のサービスの拡大を前提とした場合に、Auroraの制約であるクラスタサイズ、テーブルサイズの上限値、および高負荷時のWriteスループットについての懸念が浮かび上がってきました。
それらに対応すべく、その当時はまだTiDBも現在ほどは知られてはいなかったかと思いますが、いくつかの選択肢を比較検討した上でここに記載の点を主な理由としてTiDBを選定しました。

TiDB

最初に取引履歴用データベースに導入し、構築・運用のノウハウを貯めつつ、順次決済フロー、残高処理と用途を拡大していきました。
ここから、PayPayにおいてTiDBがミッションクリティカルな箇所で利用されていると認識頂けると思います。
その後は用途の拡大よりもより安定的な巨大クラスタの運用、またself-hostedクラスタにおけるマルチリージョン対応などを進めています。

ここではTiDBを導入して良かった点、課題をまとめています。
良かった点は当初の導入目的を達成できた点に加え、アプリケーションの改修工数が想定よりも抑えられた点、インスタンス障害時の影響軽減などが挙げられます。
課題としては、self-hostedが故に、物理的なワークロードの分散がしずらい点と、無制限にスケールアウトできるという長所から反転しコストコントロールの難しさを挙げました。

マルチリージョンに進む背景としては、2021年3月にAWS大阪リージョンがフルリージョンになったことと、PayPayとしてさらなる可用性を模索していたことがほぼ同時期に重なったことがあります。
Kubernetesはシングルクラスタではあったものの、Day1当初からマルチアベイラビリティゾーン(マルチAZ)構成になっていました。
それらに加え、大阪リージョンにアプリケーションを配置することで必然的にマルチクラスタ構成になるため、東京サイドでも可用性とオペレーションの柔軟性を考慮しマルチクラスタ構成にすることにしました。
ただ、当然ながらマルチリージョン・マルチクラスタになることで運用していくリソースそのものや複雑性が増すため、より効率的な運用やコストコントロールが必要になります。

こちらのスライドではマルチリージョン、マルチクラスタにおいて、運用効率やコスト効率を悪化させないために、PayPayでどのような工夫をしたかをご紹介しています。
マルチリージョンにおいてはTerraformモジュールを上手く使えるようにしている点、マルチクラスタにおいてはジョブ起動コントロールと、Pod数コントロールをうまくハンドリングする仕組みを作って対応していることで課題に対処しています。

PayPayのローンチから5年が経ち、サービスとともにインフラストラクチャも成長しています。
特にTiDBの導入と高可用性に向けたマルチクラスタ・マルチリージョン・マルチAZ構成への変更は、PayPayのインフラストラクチャを大きく前進させた出来事だったと思い、今回ご紹介しました。

最後に

今回はキーノート内の限られた時間でもありましたので、細かい点より、PayPayのインフラストラクチャにおけるこれまでの大きなイベントを概要でお伝えしたものとなっています。
詳細につきまして、TiDBについてはPingCAP社主催のHTAP Summit 2023にて、Databaseチームから二宮が、マルチリージョンについてはAmazon Web Services社主催のAWS Summit Tokyo 2023にて、Cloud Solutionsチームから西中がそれぞれ登壇して今回よりもさらに踏み込んだ話をしております。
それらについてもぜひご確認頂ければ幸いです。

まとめの箇所でもお伝えしましたが、PayPayのインフラストラクチャにおいてはまだまだたくさんの挑戦があります。
6100万を超えるユーザーを支え、さらなる便利を世の中に届けるサービスとそのインフラストラクチャに少しでも興味をもって頂いた方はぜひぜひご応募ください。
一緒にインフラストラクチャの挑戦に挑んで頂ける仲間を積極的に募集しております!

現在募集中のポジション

※募集状況、社員の所属等は取材当時のものです。

記事カテゴリー