Sansanのマルチプロダクト インフラアーキテクチャ
アーキテクチャの工夫ポイント
Sansan株式会社は「出会いからイノベーションを生み出す」をミッションとして掲げ、働き方を変えるDXサービスを提供しています。主なサービスとして、ビジネスデータベース「Sansan」や名刺アプリ「Eight」、経理DXサービス「Bill One」、AI契約データベース「Contract One」を国内外で提供しています。
その中で研究開発部では、Sansan をはじめ Eight、Bill One、Contract One、新規事業や営業部門など、さまざまな部署に対してアプリケーションや API、Batch を提供しています。
現在のインフラアーキテクチャ設計の工夫
研究開発部の実行基盤である「Circuit」は、Amazon Elastic Kubernetes Service(EKS)を中心に構築されており、シングルクラスタマルチテナントのアーキテクチャを採用しています。 理由として、Circuitを作り出した当時のリーダー曰く当初運用を考えたときにクラスターをテナントごと複数維持する体制と仕組みの構築はしばらくはできないだろうという判断だったそうです。そんなCircuitの構成としてノードは EC2 と karpenter用のFargate を併用し、ノードスケーリングは karpenter、Pod スケーリングは KEDA が担っています。多くのワークロードでは、Istio が提供するメトリクスやSQSのAPIを KEDA のスケーリング指標として活用し、リクエストレートやレイテンシーに応じた自動スケーリングを実現しています。
監視基盤は、Istio やアプリケーションから収集したメトリクスを OpenTelemetry Collector に集約し、Managed Prometheus に永続化する構成です。さらに、運用監視や基盤全体の可観測性向上のために Datadog を併用しています。ログについては、fluent-bitを利用しNamespace、Pod名によってロググループを分けて保存しています。
テナントの分離境界としては、Namespace単位で定義したNodeClassを採用しています。 RBACなどの責務とNodePoolによる物理的な境界を設けることにより、他アプリケーションが Node を巻き込む障害を発生させた場合や、脆弱な Pod をデプロイしてしまった場合でも、別プロダクトのアプリケーションへの影響を最小限に抑えることができます。さらに、マルチテナント環境ではコスト按分が大きな課題となるため、NodeClass にコスト管理用のタグを付与し、各テナントの利用状況を可視化・按分できるようにしています。
(コスト按分に関しての詳しい話はこちらを参考にしてください)
開発者の生産性を上げる取り組みの観点では、API や Batch で共通的に利用できるCookiecutter による Manifest の テンプレートを用意しDocker Build / Push などのCIの共通化をしています。 また、ArgoCDを導入してよるほぼすべてのリソースを GitOps で管理することで、開発者は Kubernetes を深く意識することなく、容易に成果物をリリースできる環境を整えています。
今後の展望
今後の取り組みとして第一に挙げられるのは、可観測性の統合と向上です。
現在、監視ツールとしてDatadog、CloudWatch、Grafanaなどを併用しており、問題発生時には複数の画面を横断して調査する必要があるため、原因特定に時間を要しています。 加えて、トレースやカスタムメトリクスの可視化、他システムとのデータ連携が不十分であるため、アプリケーションの振る舞いを把握できるのが特定の開発者に限られ、属人化が進んでいます。その結果、バグ修正やパフォーマンス計測といった基本的な作業にも多くの時間が費やされているのが現状です。
こうした課題を解決するため、今後はテレメトリーデータを一元的に収集・可視化できる仕組みへ統合し、運用効率と可観測性の向上を目指します。
次に、マニフェスト管理の改善があります。従来のCookieCutterによる個別生成が、基盤全体の変更に対する追従性や管理コストの面で課題となっていました。特に、基盤に破壊的変更が生じた際、各マニフェストへの影響範囲の特定が難しく、変更の適用に多大な手間と時間がかかっていました。この問題を解決するため、今後は管理方式をHelmを用いたテンプレート化へと移行を予定しています。これにより、変更内容を一元的に管理・適用できる体制を整え、基盤の継続的な進化と安定性の両立を目指します。
◆執筆:上田 昂明 技術本部 研究開発部 Architectグループ @fresh_salmon256
アーキテクチャを構成するツール
会社情報

Sansan株式会社
従業員規模 1,001〜5,000名
エンジニア組織規模 301名〜500名
Sansan株式会社は「出会いからイノベーションを生み出す」をミッションとして掲げ、働き方を変えるDXサービスを提供しています。主なサービスとして、営業DXサービス「Sansan」や名刺アプリ「Eight」、インボイス管理サービス「Bill One」、契約データベース「Contract One」を国内外で提供しています。
Sansan株式会社の利用ツールレビュー
AIコード生成

Sansan株式会社 Bill One 開発組織におけるDevin活用事例
Sansan株式会社 / Tatsuhiro Ichikawa
メンバー / フルスタックエンジニア / 従業員規模: 1,001〜5,000名
AI/ML監視

「学習」のアジリティを高める SageMaker Training Job
Sansan株式会社 / Ryo Ishii
メンバー / 機械学習エンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 301名〜500名
データパイプライン

Sansan株式会社でのdbt導入事例
Sansan株式会社 / Ryo Nakamura
メンバー / データエンジニア / 従業員規模: 1,001〜5,000名 / エンジニア組織: 301名〜500名