マイクロサービスにおけるデータ永続化の有効化 - AWS 規範ガイダンス

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

マイクロサービスにおけるデータ永続化の有効化

Tabbyward and Balaji Mohan、Amazon Web Services (AWS)

2023 年 12 月 (ドキュメント履歴)

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

アプリケーションのモダナイゼーションは、組織の継続的な改善への入り口であり、モノリシックなアプリケーションを独自に開発、デプロイ、管理される一連のマネージドマイクロサービスにリファクタリングすることから始まります。このプロセスには以下のステップがあります。

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

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

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

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

このガイドは、アプリケーションオーナー、ビジネスオーナー、アーキテクト、テクニカルリード、プロジェクトマネージャーを対象としています。このガイドでは、マイクロサービス間のデータ永続化を実現するために、次の 6 つのパターンを提供しています。

このガイドは、AWS が推奨するアプリケーションモダナイゼーションアプローチを取り上げたコンテンツシリーズの一部です。このシリーズには以下の内容も含まれています。

ターゲットを絞ったビジネス成果

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

マイクロサービス間のデータ永続化を推進することで、次の 6 つの成果が期待できます。

  • 従来のモノリシックデータベースをアプリケーションポートフォリオから削除します。

  • アプリケーションの耐障害性、レジリエンス、可用性を向上させます。

  • 新しいアプリケーション機能の市場投入までの時間を短縮します。

  • 全体的なライセンス費用と運用コストを削減します。

  • オープンソースのソリューション (MySQLPostgreSQLなど) を活用してください。

  • AWS クラウド上の 15 種類以上の目的別データベースエンジンから選択して、拡張性の高い分散型アプリケーションを構築してください。