TTLを利用したSpanner利用料のコスト削減

本稿はJCB Advent Calendar 2025の12月10日の記事です。

JCBデジタルソリューション開発部 JCB Link(ジェーシービーリンク)チーム、プロダクトオーナーの岩本です。

世の中のキャッシュレス化の流れはもちろん、皆様の積極的なカード利用により日々膨大な売上データ、振込データが発生しております。
皆様の日頃のご愛顧、心より感謝申し上げます。

そしてぜひ今後とも積極的なカード利用をお願いしたい一方、 システム管理者として気になってくるのはデータ蓄積による基盤利用料です。

本記事ではJCB LinkでのTTLを用いたデータ削除によるコスト削減の取り組みについて紹介します。

JCB Linkとは

JCB Linkとは加盟店様の業務をサポートするオンラインサービスで、振込・売上の情報や契約の内容をオンラインでいつでも確認・ダウンロード(PDFやCSV)ができます。
各情報は最長で過去24ヶ月分の照会が可能です。(この後、重要な情報です)
2023年7月のサービス開始より日々数億件発生する売上・振込データを蓄積しています。

発生した課題

JCB LinkはマルチテナントプラットフォームであるJDEP上に構築をしています。
そして気づけば断トツでJCB LinkのSpanner利用料が高くなっていました。
当然、サービス提供にあたり必要なデータを保管しており仕方ない部分はあるのですが 「打てる手は打つべし!」 とプロダクトオーナー、バックエンドチームが動き出しました。

実は想定通り!アジャイル開発を活かした作戦

JCB LinkのPO陣、実はこの課題が発生することは認識をしておりました。
JCB Linkはアジャイル開発を採用しており、加盟店の皆様へ少しでも早くサービス提供をするため下記の開発優先順を定めておりました。

  1. 振込・売上機能の提供(ユーザーにとって重要!)
  2. 契約情報・店舗情報の提供
  3. 閲覧期間超過データ削除(今回の取組み。ユーザーにとっては価値の見えない部分)
    ※実際にはもう少し細かく機能アップデートしており、今後も機能追加予定です!

つまり、
まずはユーザーの方々への価値提供ができるサービス開発を優先。
そして不要データが多く発生する時期までにデータ削除を開発する。
というアジャイル開発の特徴を活かしたリリース戦略でした。

TTLを用いたデータ削除

データ削除にはSpannerのTTL機能を利用しました。
TTLの仕組みをものすごく簡単に説明します。

  1. テーブル定義で有効期限を決定するタイムスタンプ列と、有効期限(例えば7日間など)を設定します。
  2. システムがバックグラウンドで期限切れの行を検知し、自動的に非同期で削除処理を実行します。(72h以内に順次削除)

そして実際の実装イメージです。
削除を判別するタイムスタンプはよくテーブルで定義する「新規登録タイムスタンプ」や「更新タイムスタンプ」でももちろん問題ないですが、JCB Linkは複雑な条件でレコードが更新される仕様上、 TTL削除用のタイムスタンプを設けて削除する方針を取りました。

TTL導入にも障壁が

実装イメージだけ見ると簡単そうですが、実は様々な考慮が必要でした。


※その他、削除されたデータが正しいかをどう担保するかも障壁になりました(これはかなりJCBLinkの仕組みが複雑なので今回の記事では割愛)

大幅な基盤利用料削減を達成

最終的に様々な障壁を乗り越え、無事にTTLを導入し閲覧期間超過データの削除が実現できました。
過去分データ蓄積分まで考慮すると、年間1,000万円を超える費用削減を達成しました!

しかし実はまだ課題は残っております。
TTLは「とあるタイミングからX日経過したデータの削除」には最適なのですが、 時限トリガー以外の複雑な条件での削除が困難です。
JCB Linkでも複数世代が溜まらないと削除できないデータ(マスタ系テーブルなど)などはバッチ化をして、今後も不要データ削除による保守費削減に取り組む予定です。

おわりに

今回は大量データによる基盤利用料増加への対応としてTTLを導入した経験を記事にさせていただきました。
システム特性によって課題点・削減効果も変わりますが、少しでも同じ悩みをもつ方々の参考になると嬉しいです。
今後も加盟店の皆様への新たな価値提供はもちろん、プロダクトオーナーとして保守性もしっかりと検討していきたいと思います。
そしてぜひ皆様にはデータ量を増やしてさらに私の頭を悩ませるべく、JCBカードのさらなるご利用をお待ちしております!

最後に、JCBでは我々と一緒に働きたいという人材を募集しています。 詳しい募集要項等については採用ページをご覧下さい。

©JCB Co., Ltd. 20︎21