UPSIDER Tech Blog

金融事業の裏側を支える──UPSIDERの事業特性から逆算するインフラ設計

こんにちは。Dev HRのNarisaです。
ファインディ株式会社さん主催で開催された「インフラアーキテクチャ選択のジレンマー5社の設計思想と意思決定のリアル」に当社エンジニアの金正が登壇しましたので、その内容をまとめたレポートをお届けします。

findy-tools.connpass.com

UPSIDERについて

UPSIDERは「挑戦者を支える、世界的な金融プラットフォームを創る」というミッションを掲げ、法人向けのクレジットカード事業を主軸に、デットファンドやAI経営支援など多岐にわたる事業を展開してまいりました。

そんななか2025年7月には、培ってきた技術を外部に提供していくことを発表。特に、AI与信モデル決済基盤をパッケージ化し、外部企業への提供を行っていく方針です。これにより、あらゆる企業のブランドで法人カード事業を立ち上げられるサービスを目指しています。

今回、金正は「事業特性から逆算するインフラ設計:UPSIDERのマイクロサービス基盤構築の舞台裏」をテーマに、金融領域特有の要件と、それに応えるためのシステムアーキテクチャについて解説しました。

speakerdeck.com

金融業界とUPSIDERの事業特性

まずはUPSIDERが金融サービスを提供する上で直面する3つの主要な事業特性を解説しました。

1. カード発行と決済処理

UPSIDERは国際ブランドVisaの提携のもと、法人カードを発行しています。これには、法人の審査、与信枠や利用限度額の付与、そしてそれらの管理といった一連のプロセスが自社システム内で完結しています。 また、発行したカードの決済処理も自社システムで一手に担っています。決済の承認・否認のバリデーション、決済データの保存など、金融取引の根幹を支える基盤を構築しています。

2. 規制要件とコンプライアンス

金融業界、特にクレジットカード事業において不可欠なのが、国際的なセキュリティ基準であるPCI DSS(Payment Card Industry Data Security Standard)への準拠です。クレジットカード会員情報を保護するためのこの基準は、12の項目と約400のセキュリティー要件から成り、これを満たさなければクレジットカード発行事業者として事業を継続できません。 特に、ネットワーク構成、会員カードデータ(カード番号や暗証番号)の暗号化・マスキングなどが厳格に求められます。

3. 高可用性とデータの整合性

あらゆる金融サービスと同様に、UPSIDERは高可用性(安定稼働)とデータの整合性を極めて重視しています。決済失敗や意図しないカード利用不可は、顧客のビジネスを停止させてしまうため、サービスが常に利用可能であることが求められます。 また、残高や決済結果に1円の狂いも許されない厳密なデータの整合性は、顧客の信頼を確保し、事業の健全性を保つ上で不可欠です。

事業特性を満たすインフラ設計

これらの事業特性を満たすため、UPSIDERは以下のようなインフラ設計を採用しています。

参考)決済基盤のアーキテクチャ特集 株式会社UPSIDER

PCI/DSSに準拠する必要がある範囲を局所的にするための構成

Google Cloudを基盤とするUPSIDERの決済処理領域では、主に2つのプロジェクトを分離して運用しています。

  • themis project: PCI DSSに準拠する必要があるサービスを配置。カード発行や生のカード番号・暗証番号を扱うサービスが該当し、高いセキュリティ基準を適用することでコンプライアンスを確保しています。
  • chronos project: PCI DSSのセキュリティ要件に縛られない業務ロジックや、決済履歴の保存、予算操作を行うサービスを配置。これにより、セキュリティ要件に過度に縛られることなく、効率的な開発を実現しています。

金融サービスとしての可用性・整合性要求

マイクロサービス

金融サービスとして高可用性と開発速度を担保するため、UPSIDERはマイクロサービスアーキテクチャを積極的に採用しています。

ほとんどのサービスはGo言語で実装され、サービス間の通信にはgRPCを使用。Istioなどのサービスメッシュを導入し、マイクロサービス間の通信暗号化、タイムアウト、リトライ機構などをアプリケーションレイヤーではなく、サービスメッシュのレイヤーで管理。 これらの取り組みにより、障害発生時の影響を局所化し、リソースの効率的な割り当て、そして開発速度の向上を実現しています。

Spanner

決済履歴や与信データといった金融データの基盤には、Google CloudのCloud Spannerが採用されています。Spannerの外部整合性高可用性という特徴が、厳密なデータの整合性が求められる金融サービスにおいて不可欠な要素となっています。

外部中継サーバとの連携

UPSIDERの決済処理は、自社ネットワークだけで完結するものではありません。Visaのネットワークとは直接連携するのではなく、間に中継サーバーを挟んで接続しています。

  • ネットワークレイヤーでは、Google CloudのPartner Interconnectのような専用線を使用して、UPSIDERのネットワークと中継サーバーを接続。
  • アプリケーションレイヤーでは、HTTP通信ではなくTCP通信を採用し、ISO 8583という金融取引に特化した特殊なバイナリフォーマットで決済メッセージの送受信を行っています。これにより、低遅延での処理と金融特有のデータ形式への対応を実現しています。

Q&Aセッションのハイライト

登壇後には、参加者からの質問に答えるQ&A時間が設けられました。

PCI DSS規制要件による制限

PCI DSSのような厳しい規制要件のせいで、やりたかったけどできなかったことはありますか?」という質問に対し、金正は「例えば、決済電文をストレージにバックアップとして保存する際に、暗号化など利用者のデータを守るために、ひと手間かける必要がある」と回答。規制が「できない」ことよりも「手間を増やす」側面が強いことを示唆しました。

使用言語について

「言語はGoで統一されているのですか?」という質問には「決済処理基盤ではGoが基本で、一部でJavaも使用している」と回答。特にISO 8583のようなバイナリをパースする処理では、Javaのライブラリを活用しているとのことでした。

パフォーマンス向上の工夫

「暗号化などのパフォーマンスを劣化させる負担の大きい処理が多いと思いますが、その際のパフォーマンス向上のための工夫はありますか?」という質問に対しては、Goの並行処理(Goroutine)を活用してレスポンスタイムを短縮したり、データ量が多い場合はバッチ処理ではなくストリーム処理を採用しているといった具体例をあげて回答しました。

まとめ

UPSIDERのインフラ設計は、以下の3つの主要な事業特性を考慮して構築されています。

  1. 金融業界特有の厳しい規制要件(PCI DSS)への準拠
  2. 顧客のビジネスを支える高可用性とデータの整合性の実現
  3. 事業を成立させるための外部中継サーバーとの直接連携

これらの課題に対し、プロジェクトの分離、マイクロサービス化、Spannerの活用、そして独自の通信プロトコルへの対応など、多角的なアプローチでインフラを構築していることを解説しました。

おわりに

金正の登壇は、金融領域のシステム設計における実践知を凝縮した内容であり、同様の課題に直面するエンジニアにとって大きなヒントとなるものだったのではないでしょうか。

UPSIDERでは、複雑な金融領域のシステムを支えるエンジニアリングに日々挑戦しています。今後も、UPSIDERの技術的な挑戦にご期待ください!

We Are Hiring!!

UPSIDERでは現在積極採用をしています。 ぜひお気軽にご応募ください。

herp.careers

カジュアル面談はこちら!UPSIDERに少しでも興味を持っていただけたら、ぜひお話ししましょう!ご連絡をお待ちしております。

herp.careers

UPSIDER Engineering Dockはこちら📣

speakerdeck.com