DBにプロキシのようなものを用意し、マイクロサービス群からアクセスされるような運用ってオンプレだとあり得ますか? どんな技術を使う? |
| |
|
はい、普通にあり得ます。
場面が多く、DB前段に“プロキシ層”を置く構成はかなり現実的です。 ただし、「DBプロキシ」と言っても目的によって全然違います。 1. なぜDB前段にプロキシを置くのかマイクロサービスで直接DB接続すると:
などが起きやすい。 特にオンプレは:
なので、間に層を置くメリットが大きい。 2. どういう種類の“DBプロキシ”があるかここが重要です。 (1) 接続プーリング型代表:
目的:
例えば: 1000マイクロサービスPod は重すぎる。 そこで:
にする。 (2) Read/Write振り分け型例えば:
をプロキシ側で振り分ける。 代表:
(3) フェイルオーバー抽象化DB切替時:
などをアプリから隠蔽。 アプリは常に:
へ接続するだけ。 (4) SQLルーティング/シャーディング特定テーブルやTenantごとに:
へ振り分け。 かなり大規模向け。 (5) API化(DBアクセスを直接させない)最近はこれも増えています。 つまり: マイクロサービス にする。 これは「DBプロキシ」というより:
です。 3. オンプレで実際どう組むかかなり現実的な例: 使用技術例PostgreSQL系
MySQL系
汎用L4
Kubernetes上
4. Kubernetesだとさらに増えるK8s環境では:
が起きやすい。 するとDBが:
ので、
などを置くことが多い。 5. どこまで“抽象化”するか問題ここは設計思想が分かれます。 直接DB接続派メリット:
デメリット:
DBプロキシ派メリット:
デメリット:
API化派メリット:
デメリット:
6. オンプレ特有の事情オンプレでは特に:
があるので、
要求が強くなりやすい。 7. 実務ではかなりよくある特に:
では普通にある構成です。 むしろ、
ための統制ポイントとして重要。 まとめオンプレでもDBプロキシ構成は普通にあり得ます。 主用途:
代表技術:
本質的には:
ための層です。 |
|
|

この記事へのコメント