目次
はじめに
こんにちは、STARTUP DBの開発をしている杉谷です。本記事では、私たちのサービスの概要と採用している技術スタックについて紹介したいと思います。
STARTUP DBは、スタートアップエコシステムに関する企業情報や資金調達情報を提供するデータベースサービスとして、多くの方々にご利用いただいています。
本記事を通して、サービスの全体像と技術的な特徴についての理解を深めていただければ幸いです。
1. サービス概要
STARTUP DBは、「成長産業の可視化と資源の最適化を通じ、世界に伍する新産業を創出する」ことをミッションに掲げ、日本のスタートアップエコシステムにおける企業情報・資金調達情報を包括的に提供する会員数No.1(東京商工リサーチ調べ 有料/無料会員合計数 2024年8月末時点)のスタートアップデータベースサービスです。
2018年5月31日のサービス開始以来、スタートアップ・エコシステムに関わるデータの集約・可視化を通じて、ミッションの実現に向けた開発を継続的に行っています。起業家、投資家、企業のM&A担当者など、エコシステムに関わる様々なステークホルダーに向けて、信頼性の高い企業情報の提供に注力してきました。
STARTUP DBでは、日本のスタートアップ企業の基本情報から、資金調達、経営陣情報に至るまで、包括的なデータベースを構築・運用しています。これらの情報は日々アップデートされ、エコシステムの現状を正確に把握できる環境を実現しています。
TOP画面では、Daily・Weekly・Monthly毎に最新の資金調達情報をグラフを用いて可視化しています。
さらに、経済メディア「STARTUPS JOURNAL」を通じて、STARTUP DBに蓄積されたデータを活用した分析記事を定期的に発信しています。業界動向や最新のトレンドについて、データに基づいた深い洞察を提供しています。
2. システムアーキテクチャ
2.1 全体構成
STARTUP DBのシステムは以下のマイクロサービスで構成されています:
全体アーキテクチャ
STARTUP DBのAWSインフラは、マイクロサービスアーキテクチャを採用し、セキュリティと可用性を重視した設計となっています。エンドユーザーからのリクエストは、まずRoute 53で受け付け、WAFによるセキュリティフィルタリングを実施します。その後、CloudFrontを通じてコンテンツを効率的に配信する構成としています。各サービスの前段にはApplication Load Balancer(ALB)を配置し、トラフィックを適切に分散させることで、安定したサービス提供を実現しています。
STARTUP DB Front
フロントエンドサービスでは、静的コンテンツをS3に配置し、CloudFrontを活用することで効率的なコンテンツ配信を実現しています。アプリケーション実行基盤としてECSを採用し、コンテナベースのマイクロサービスを構築しました。さらに、ElastiCacheを導入することで頻繁にアクセスされる画像等のデータをキャッシュし、レスポンスタイムの改善とバックエンドサービスの負荷軽減を図っています。
Company Service
Company Serviceは、企業に関するデータを管理するアプリケーションです。
アプリケーション環境はECSでコンテナ化しており、複数のコンテナタスクを並列実行しています。これにより負荷分散と可用性を確保し、障害に強い構成を実現しています。データストアは用途に応じて最適なサービスを選択しており、基幹データベースにはRDS、全文検索機能にはElasticSearch、キャッシュ層にはElastiCacheを採用しています。この構成により、データの永続性を確保しながら、高速な検索機能の提供とキャッシュによるパフォーマンス最適化を実現しています。また、サービス間の負荷分散と独立したスケーリング機能により、システム全体の安定性と柔軟な拡張性を両立させています。
Member Service
Member Serviceは、ユーザー関連のデータを管理するアプリケーションです。
シンプルさと堅牢性を重視した構成を採用しています。アプリケーション環境をECSでコンテナ化し、データストアにはRDSを採用することで、安定した会員サービスを提供しています。このシンプルな構成により、運用管理の効率化とインフラストラクチャ管理の簡素化を達成しました。また、サービスの独立性を保つことで、他のサービスへの影響を最小限に抑えています。
2.2 各サービスの技術スタック
STARTUP DB Front
STARTUP DB Frontは、より良いユーザー体験とパフォーマンスの向上を目指し、現在Next.jsへのリプレイスを進めています。
この移行は、Nuxt.js v2のサポート終了に伴う技術選定の見直しがきっかけとなりました。Next.jsを選択した理由としては、Reactベースの強力なSSR/SSG機能、TypeScriptとの親和性、充実したエコシステムなどが挙げられます。移行によってページ表示速度の向上とSEO最適化を同時に実現し、より高品質なユーザー体験の提供を目指しています。
カテゴリ | 技術スタック |
---|---|
言語 | TypeScript |
フレームワーク | Next.js(移行中) / Nuxt.js |
インフラ | AWS / Docker / Github Actions |
DB/WDH | Redis |
監視・モニタリング | Datadog / CloudWatch / Rollbar |
環境構築 | Terraform |
CI/CD・テスト | GitHub Actions, Jest |
その他 | 開発ツール:GitHub, GitHub Copilot, Figma |
Company Service
カテゴリ | 技術スタック |
---|---|
言語 | Ruby / JavaScript |
フレームワーク | Ruby on Rails |
インフラ | AWS / Docker / Github Actions |
DB/WDH | MySQL / Redis |
監視・モニタリング | Datadog / CloudWatch / Rollbar |
環境構築 | Terraform |
CI/CD・テスト | GitHub Actions / RSpec |
その他 | 検索エンジン:ElasticSearch API:REST 認証:Auth0 開発ツール:GitHub, GitHub Copilot |
Member Service
カテゴリ | 技術スタック |
---|---|
言語 | Ruby |
フレームワーク | Ruby on Rails |
インフラ | AWS / Docker / Github Actions |
DB/WDH | MySQL |
監視・モニタリング | Datadog / CloudWatch / Rollbar |
環境構築 | Terraform |
CI/CD・テスト | CodeBuild / GitHub Actions / RSpec |
その他 | API:REST 開発ツール:GitHub, GitHub Copilot |
技術選定で意識していること
STARTUP DBの技術選定では、サービスの安定性と開発効率の両立を重視しています。マイクロサービスアーキテクチャを採用し、STARTUP DB Front、Company Service、Member Serviceそれぞれの責務を明確に分離しています。各サービスの開発は独立して進められる一方で、Github Actions、AWS/Docker、Terraform、Datadogといったインフラ環境は標準化することで、新規開発時の立ち上げをスムーズにしています。特に、Terraformを用いたインフラのIaC化は、環境構築の効率化に大きく寄与しています。
データベースサービスとして、検索性能とレスポンスタイムは重要な要素です。そのため、Company ServiceではElasticSearchとRedisを組み合わせることで、大規模データの検索とキャッシュを効率的に行える構成としています。フロントエンドについても、現在パフォーマンス向上を目的としてNext.jsへの移行を進めています。
3. 監視・開発チーム
3.1 モニタリングと障害対応
サービス全体の監視にはDatadogを採用しています。
異常が検出された場合、自動アラートシステムによって開発チームに通知され、迅速な対応が出来るような状態を形成しています。
また各サービスごとにRollbarを導入しており、発生したエラーの詳細なスタックトレースやコンテキスト情報が即時に開発チームに通知されます。それらの情報を参考に、各環境内で生成されている詳細なログと併せて参照しながら問題の根本原因を迅速に特定し、修正できる体制を整えています。DatadogとRollbarを組み合わせ、システム全体のパフォーマンス監視と詳細なエラートラッキングの両方を実現しエラー解消の早期解決に努めています。
3.2 開発チームと文化
STARTUP DBの開発チームは、エンジニア、デザイナー、プロダクトマネージャーなど多様な専門家で構成されています。
当社の開発チームでは、各エンジニアは原則全てのサービス領域に責任を持ちつつ、チーム全体としての技術力向上を目指しプロダクトの発展に貢献しています。また週次の技術的振り返りや月1回の技術共有会を通じて、他の開発チームと交流しお互いの学びを共有を行ったりしています。
また、GitHub Copilotなどの最新ツールを積極的に活用し、エンジニアが創造的な問題解決に集中できる環境づくりにも注力しています。最近ではModel Context Protocol(MCP)のコンセプトにも注目し、AIアシスタントと社内データソースの連携による開発効率化にも試行錯誤を始めています。これにより、チーム全体の生産性向上とより良いプロダクト開発の実現を目指しています。
おわりに
STARTUP DBは、日本のスタートアップエコシステムの発展を支える重要なインフラとして、今後も技術的な進化を続けていきます。私たちは、最新の技術トレンドを積極的に取り入れながら、より価値の高いサービスを提供していくことを目指しています。
私たちは常に新しい仲間を探しています。STARTUP DBのミッションや技術に共感いただける方は、ぜひ下記のリンクから詳細をご覧ください。カジュアル面談も実施していますので、気軽にお問い合わせください。