

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マイクロサービスにおけるデータ永続化の有効化
<a name="welcome"></a>

*Tabby Ward と Balaji Mohan、Amazon Web Services (AWS)*

*2025 年 4 月* ([ドキュメント履歴](doc-history.md))

組織は、成長機会を創出し、市場投入までの時間を短縮するために、常に新しいプロセスを模索しています。アプリケーション、ソフトウェア、IT システムをモダナイズすることで、組織の俊敏性と効率性を高めることができます。モダナイゼーションは、より迅速で優れたサービスをカスタマーに提供するのにも役立ちます。

アプリケーションのモダナイゼーションは、組織の継続的な改善への入り口であり、モノリシックなアプリケーションを独自に開発、デプロイ、管理される一連のマネージドマイクロサービスにリファクタリングすることから始まります。このプロセスには以下のステップがあります。
+ **[モノリスをマイクロサービスに分解](https://docs.aws.amazon.com//prescriptive-guidance/latest/modernization-decomposing-monoliths/welcome.html)** - パターンを使用してモノリシックなアプリケーションをマイクロサービスに分解します。
+  **[マイクロサービスの統合](https://docs.aws.amazon.com//prescriptive-guidance/latest/modernization-integrating-microservices/welcome.html)** - [Amazon Web Services (AWS) サーバーレスサービス](https://aws.amazon.com//serverless/)を使用して、新しく作成されたマイクロサービスを[ マイクロサービスアーキテクチャ](https://docs.aws.amazon.com//whitepapers/latest/microservices-on-aws/simple-microservices-architecture-on-aws.html)に統合します。
+ **マイクロサービスアーキテクチャのためのデータ永続化を実現** - [データストア](https://docs.aws.amazon.com//whitepapers/latest/microservices-on-aws/data-store.html)を分散化することで、マイクロサービス間の[ポリグロット永続化](https://martinfowler.com/bliki/PolyglotPersistence.html)を促進します。

一部のユースケースではモノリシックアプリケーションアーキテクチャを使用できますが、最新のアプリケーション機能はモノリシックアーキテクチャでは機能しないことがよくあります。たとえば、個々のコンポーネントをアップグレードしている間は、アプリケーション全体を利用し続けることはできませんし、個々のコンポーネントをスケーリングしてボトルネックや[ホットスポット](https://docs.aws.amazon.com//kinesisanalytics/latest/dev/app-hotspots-detection.html) (アプリケーションのデータ内の比較的密集した領域) を解決することもできません。モノリスは大規模で管理不能なアプリケーションになる可能性があり、小さな変更を導入するには複数のチーム間で多大な労力と調整が必要になります。

レガシーアプリケーションは通常、一元化されたモノリシックデータベースを使用しているため、スキーマの変更が困難になり、成長に対応する唯一の方法として垂直スケーリングによるテクノロジーロックインが発生し、単一障害点が発生します。また、モノリシックデータベースでは、マイクロサービスアーキテクチャの実装に必要な分散型の独立したコンポーネントを構築することもできません。

以前は、一般的なアーキテクチャアプローチは、モノリシックアプリケーションで使用される 1 つのリレーショナルデータベースですべてのユーザー要件をモデル化することでした。このアプローチは、一般的なリレーショナルデータベースアーキテクチャでサポートされており、アプリケーションアーキテクトは通常、開発プロセスの初期段階でリレーショナルスキーマを設計し、高度に正規化されたスキーマを構築して、開発チームに送りました。しかしこれでは、データベースがアプリケーションのユースケースのデータモデルを動かすのではなく、逆に動かしてしまうことになります。

データストアを分散化することで、[マイクロサービス間のポリグロット永続化](https://docs.aws.amazon.com//whitepapers/latest/modern-application-development-on-aws/polyglot-persistence.html)を促進し、マイクロサービスのデータアクセスパターンやその他の要件に基づいてデータストレージテクノロジーを特定できます。各マイクロサービスには独自のデータストアがあり、影響の少ないスキーマ変更で個別にスケーリングでき、データはマイクロサービスの API を通じてゲートされます。モノリシックなデータベースを壊すことは容易ではありません。最大の課題の 1 つは、可能な限り最高のパフォーマンスを実現するようにデータを構造化することです。分散型のポリグロット永続化は、通常、最終的なデータ整合性をもたらします。また、トランザクション中のデータ同期、トランザクションの整合性、データの複製、結合と遅延など、徹底的な評価を必要とする潜在的な課題もあります。

このガイドは、アプリケーションオーナー、ビジネスオーナー、アーキテクト、テクニカルリード、プロジェクトマネージャーを対象としています。このガイドでは、マイクロサービス間のデータ永続化を実現するために、次の 6 つのパターンを提供しています。
+ [サービスごとのデータベースパターン](database-per-service.md)
+ [API 構成パターン](api-composition.md)
+ [CQRS パターン](cqrs-pattern.md)
+ [イベントソーシングパターン](service-per-team.md)
+ [Saga パターン](saga-pattern.md)
  + を使用してsagaパターンを実装する手順については AWS Step Functions、 AWS 「 規範ガイダンス」ウェブサイトの「 [を使用してサーバーレスsagaパターンを実装 AWS Step Functions](https://docs.aws.amazon.com//prescriptive-guidance/latest/patterns/implement-the-serverless-saga-pattern-by-using-aws-step-functions.html)する」を参照してください。
+ [サービスごとの共有データベースパターン](shared-database.md)

このガイドは、 が推奨するアプリケーションのモダナイゼーションアプローチをカバーするコンテンツシリーズの一部です AWS。このシリーズには以下のものも含まれます:
+ [AWS クラウドでアプリケーションをモダナイズするための戦略](https://docs.aws.amazon.com//prescriptive-guidance/latest/strategy-modernizing-applications/)
+  [AWS クラウドでアプリケーションをモダナイズするための段階的なアプローチ](https://docs.aws.amazon.com//prescriptive-guidance/latest/modernization-phased-approach/)
+ [AWS クラウド内のアプリケーションのモダナイゼーション準備状況の評価](https://docs.aws.amazon.com//prescriptive-guidance/latest/modernization-assessing-applications/welcome.html) 
+  [マイクロサービスへのモノリスの分解](https://docs.aws.amazon.com//prescriptive-guidance/latest/modernization-decomposing-monoliths/welcome.html)
+ [AWS サーバーレスサービスを使用したマイクロサービスの統合](https://docs.aws.amazon.com//prescriptive-guidance/latest/modernization-integrating-microservices/welcome.html)

## ターゲットを絞ったビジネス成果
<a name="targeted-business-outcomes"></a>

多くの組織は、モノリシックなアプリケーション、データベース、テクノロジーによって、ユーザーエクスペリエンスの革新と改善に悪影響が及ぶことに気づいています。レガシーアプリケーションやデータベースでは、最新のテクノロジーフレームワークを採用する選択肢が減り、競争力とイノベーションが制約されます。ただし、アプリケーションとそのデータストアをモダナイズすると、スケーリングが容易になり、開発も迅速になります。分離データ戦略は耐障害性とレジリエンスを向上させ、新しいアプリケーション機能の市場投入までの時間を短縮するのに役立ちます。

マイクロサービス間のデータ永続化を推進することで、次の 6 つの成果が期待できます。
+ 従来のモノリシックデータベースをアプリケーションポートフォリオから削除します。
+ アプリケーションの耐障害性、レジリエンス、可用性を向上させます。
+ 新しいアプリケーション機能の市場投入までの時間を短縮します。
+ 全体的なライセンス費用と運用コストを削減します。
+ オープンソースのソリューション ([MySQL](https://www.mysql.com/) や [PostgreSQL](https://www.postgresql.org/)など) を活用してください。
+  AWS クラウド上の [15 種類以上の目的別データベースエンジン](https://aws.amazon.com//products/databases/)から選択して、拡張性の高い分散型アプリケーションを構築してください。