第4章. 安静時のセキュリティ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
マイクロサービスというと、業界の多くの文献は、エンドユーザにコンピューティングサービスを提供するメカニズムの設計と開発に焦点を当てている。にもかかわらず、マイクロサービスではストレージに関する考え方を根本的に変える必要があることが広く知られている。マイクロサービスは通常、自己完結型であることが求められる。これはロジックだけでなく、データ・ストレージのメカニズムにも当てはまる。非冗長な方法でストレージを中央集権化することが原則であるモノリスとは異なり、マイクロサービスは分散化を考えることをアーキテクトに要求する。実際のマイクロサービス環境では、データは第一級市民であり、あらゆるコンピューティングサービスと同様に扱われる。マイクロサービスのアーキテクトは、データのローカライズを推奨している。データを必要とするサービスの近くにデータを置くことで、システムは外部データベースへの依存を減らすことができる。共有データベースや中央集中型データベースを避けることで、マイクロサービス環境では境界づけられたコンテキスト内で利用可能なデータのみで動作するため、自律性とスケールが同時に確保される。さらに、このような分散ストレージ設計は、ストレージメカニズムが "単一障害点(SPOF)"になる可能性を減らす。
セキュリティの観点から、データの保存は、そのリスクを検証すると、非常にコストがかかる可能性がある。IBMとPonemon Instituteは、世界中の企業におけるデータ漏洩の平均コストを詳述した年次レポートを発表している。このレポートによると、データ漏洩の平均コストは386万ドルである。規制が厳しく、データ漏えいが規制や財務に響く可能性がある業界の場合は、さらに高くなる。このように、複数のデータ・ストレージ・メカニズムを使用する) ポリグロット・パーシステンスのマイクロサービス・アプローチでは、静止時のセキュリティに関して、細部まで特別な注意を払う必要がある。
マイクロサービスアーキテクチャは、一般的に分散ストレージメカニズムのコレクションを作成することになる。これらの異なるストレージオブジェクトは、マイクロサービスそのものと同じように、互いに疎結合になっている。これらの分散ストレージは、それらが存在する境界づけられたコンテキストの規則に従うのが一般的である。図4-1は、サービスの境界づけられたコンテキスト内に存在する分散永続ストレージを持つ、ドメイン駆動型セットアップのサンプルを示している。
図4-1. データが1つのアプリケーションから作成されストアされるモノリシックアプリケーションとは対照的に、マイクロサービスは断片化されているため、組織全体で異なるデータ保護ポリシーに適合させるために、データを互いに論理的に分離する必要がある。
注
「ストレージ」とは、データベースシステム、アプリケーションイベント、フラットファイル、メディアオブジェクト、キャッシュデータ、バイナリラージオブジェクト(ブロブ)、コンテナイメージなど、あらゆるものを意味する。実際、ほとんどのマイクロサービス環境では、各ドメインがデータストレージプラットフォームに対して異なる要求を持っている可能性があるため、 ...