コンテンツにスキップ

ストレージ領域@マイクロサービスアーキテクチャ

はじめに

本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。


01. 保管データの種類

  • 永続データ
  • 揮発性データ
  • 静的ファイル


02. 永続データ管理分割方法

Shared DBパターン

▼ Shared DBパターンとは

各マイクロサービスで共有するDBを1個だけ用意する。

この場合、単一のDB上で、スキーマやテーブルをマイクロサービスごとに作成する必要がある。

▼ マイクロサービス別のスキーマ

Shared DBの場合に、マイクロサービス別にスキーマを作成する。

microservices_share-db_diff-table

▼ マイクロサービス別のテーブル

Shared DBの場合に、マイクロサービス別にテーブルを作成する。

microservices_share-db_diff-scheme


DB per serviceパターン (Database per service)

▼ DB per serviceパターンとは

各マイクロサービスで個別にDBを用意する。

ローカルトランザクションや分散トランザクションを実施する必要がある。

microservices_diff-db

▼ 境界づけられたコンテキスト分割とも相性がいい

マイクロサービスを境界づけられたコンテキスト単位で分割した場合に、マイクロサービスごとに異なる集約エンティティを持つため、永続化のデータ単位を分割できる。

これにより、各マイクロサービスが異なるDBを持っていても、トランザクションは異なるはずである。


02-02. 永続データの種類に合わせたストレージ

Polyglot Persistenceパターン

キーバリューDB、ドキュメントDB、RDB、グラフDBを異なるデータベースで管理する。


Multi-model DBパターン

キーバリューDB、ドキュメントDB、RDB、グラフDBを同じデータベースで管理する。


03. 保管データの暗号化

記入中...