🛢️

Managed Database

2024/05/08に公開

この Note は Architectural Decision Record ( ADR ) の下書きです。Official ではありません。記載している内容は、ごく一般的な要件で、どこのサービスでも考慮している内容です。

Status

  • 提案済み
  • 承認済み
  • 破棄

Context

  • 私たちは Product の構築を進めている。このドキュメントでは、私たちが選択した最終的な Database Service とその背後にある理由を説明することを目的としている。
  • 技術選定の前提条件は以下の通りである。
    1. 私たちの Dataabse は Managed である必要がある。私たちは、小さなチームであるため、手のかからない Database が必要である。
    2. Scaling する Database である必要がある。私たちのビジネスにスケールに対応できる Database が必要である。
    3. Secure である必要がある。SQL インジェクションなど既知のセキュリティ脆弱性に対する防御機能が必要である。
Service Description MySQL 互換 PostgreSQL 互換 Case Study
Amazon Aurora [1] MySQL と PostgreSQL の完全な互換性を持つ、クラウド用に構築されたリレーショナルデータベース管理システム (RDBMS) です。 yes yes
Supabase [2] [3] [4] すべての Supabase プロジェクトは、何百万もの開発者から信頼されている専用の PostgreSQL データベースです。PostgreSQL は、世界で最もスケーラブルなデータベースの 1 つです。 no yes N/A
Neon [5] [6] [7] 豊富な無料枠を備えたフルマネージドのサーバーレス Postgres。ストレージとコンピューティングを分離して、自動スケーリング、分岐、ボトムレス ストレージを提供します。 no yes N/A
PlanetScale [8] [9] 世界で最も先進的なフルマネージド MySQL データベース プラットフォームです。 yes no N/A

Decision

  • Amazon Aurora を使用する。現状、挑戦的な選択をする必要はない。
  • Amazon Aurora は、一般的にも、Chatwork 内にも多くの knowledge が存在し安定した運用が保証される。

Consequences

  • Application との関連性。現在は Database 単体ではなく、Application Hosting と Database や認証を組み合わせたサービスが多い。そのため Database 単体で検討するのではなく、Application の開発者体験を通して Database を選択する必要がある。
  • 組織の Knowledge。サービスに対する経験と知識が組織に存在するかを確認する必要がある。メンバーの流動性が高い場合、組織の Knowledge が少ないサービスを選択すると組織にとっての負債となる。

Compliance

  • N/A

Notes

  • Author: @danny-yamamoto
脚注
  1. https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html ↩︎

  2. https://supabase.com/ ↩︎

  3. https://github.com/supabase/supabase ↩︎

  4. https://aws.amazon.com/marketplace/seller-profile?id=471c9cd1-f79f-4a26-bf55-f3a7a2d6d895 ↩︎

  5. https://neon.tech/ ↩︎

  6. https://github.com/neondatabase/neon ↩︎

  7. https://aws.amazon.com/marketplace/seller-profile?id=seller-tekaklunegypg ↩︎

  8. https://planetscale.com/ ↩︎

  9. https://aws.amazon.com/marketplace/seller-profile?id=f311f1cc-a312-4631-93b9-580997ade3b7 ↩︎

GitHubで編集を提案

Discussion