翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マイクロサービスにおけるデータ永続性の実現
タビー・ウォード、Amazon Web Services (AWS)
2021 年 2 月 (ドキュメント履歴)
Organizations は、成長機会を創出し、市場投入までの時間を短縮するために、常に新しいプロセスを模索しています。アプリケーション、ソフトウェア、IT システムを最新化することで、組織の俊敏性と効率性を高めることができます。モダナイゼーションは、より速く、より良いサービスを顧客に提供するのにも役立ちます。
アプリケーションのモダナイゼーションは、組織の継続的な改善への入り口です。まず、モノリシックなアプリケーションを、独自に開発、デプロイ、管理される一連のマイクロサービスにリファクタリングします。このがあります。
一部のユースケースではモノリシックアプリケーションアーキテクチャを使用できますが、最新のアプリケーション機能はモノリシックアーキテクチャでは機能しないことがよくあります。たとえば、個々のコンポーネントをアップグレードしている間はアプリケーション全体を利用可能な状態に保つことはできません。また、個々のコンポーネントをスケーリングしてボトルネックやホットスポット(アプリケーションのデータ内の比較的密集した領域)を解決することもできません。モノリスは大きくて管理しづらいアプリケーションになる可能性があり、小さな変更を導入するには複数のチーム間で多大な労力と調整が必要です。
レガシーアプリケーションは通常、一元化されたモノリシックデータベースを使用するため、スキーマの変更が困難になり、成長に対応する唯一の方法として垂直スケーリングによるテクノロジーロックインが発生し、単一障害点が発生します。モノリシックデータベースでは、マイクロサービスアーキテクチャの実装に必要な分散型の独立したコンポーネントを構築することもできません。
以前は、一般的なアーキテクチャアプローチは、モノリシックアプリケーションで使用される 1 つのリレーショナルデータベースですべてのユーザー要件をモデル化することでした。このアプローチは一般的なリレーショナルデータベースアーキテクチャによってサポートされており、アプリケーションアーキテクトは通常、開発プロセスの初期段階でリレーショナルスキーマを設計し、高度に正規化されたスキーマを構築してから開発チームに送りました。ただし、これは、データベースがアプリケーションのユースケースのデータモデルを動かし、その逆ではなかったことを意味していました。
データストアを分散化することを選択することで、マイクロサービス間での多言語の持続性が促進され、マイクロサービスのデータアクセスパターンやその他の要件に基づいてデータストレージテクノロジーを特定できます。各マイクロサービスには独自のデータストアがあり、影響の少ないスキーマの変更で個別にスケーリングでき、データはマイクロサービスの API を介してゲートされます。モノリシックデータベースを分解するのは簡単ではありません。最大の課題の 1 つは、可能な限り最高のパフォーマンスを実現できるようにデータを構造化することです。また、ポリグロットパーシスタンスが分散されていると、最終的にデータの一貫性が保たれます。また、トランザクション中のデータ同期、トランザクションの整合性、データの複製、結合と遅延など、徹底的な評価を必要とするその他の潜在的な課題もあります。
このガイドは、アプリケーション所有者、ビジネス所有者、アーキテクト、テクニカルリード、プロジェクトマネージャを対象としています。このガイドでは、マイクロサービス間でデータを永続化できるようにするための次の 6 つのパターンについて説明します。
-
-
sagaを使用してパターンを実装する手順についてはAWS Step Functions、AWS規範ガイダンスWebサイトの「sagaAWS Step Functionsを使用してサーバーレスパターンを実装する」というパターンを参照してください。
-
このガイドは、が推奨するアプリケーションモダナイゼーションアプローチを取り上げたコンテンツシリーズの一部ですAWS。このシリーズには以下も含まれます。
ターゲットを絞ったビジネス成果
多くの組織は、ユーザーエクスペリエンスの革新と向上が、モノリシックなアプリケーション、データベース、テクノロジーによって悪影響を受けることに気づいています。レガシーアプリケーションやデータベースでは、最新のテクノロジーフレームワークを採用する選択肢が減り、競争力とイノベーションが制限されます。ただし、アプリケーションとそのデータストアをモダナイズすると、スケーリングが容易になり、開発が速くなります。データ分離戦略によりフォールトトレランスとレジリエンシーが向上し、新しいアプリケーション機能の市場投入までの時間を短縮できます。
マイクロサービス間のデータ永続化を促進することで、次の 6 つの成果が期待できます。
-
従来のモノリシックデータベースをアプリケーションポートフォリオから削除します。
-
アプリケーションの耐障害性、耐障害性、可用性を向上させます。
-
新しいアプリケーション機能の市場投入までの時間を短縮します。
-
全体的なライセンス費用と運用コストを削減します。
-
オープンソースのソリューション (MySQL
や PostgreSQL など) を活用してください。 -
AWSクラウド上の 15 種類以上の専用データベースエンジンから選択して、拡張性の高い分散型アプリケーションを構築できます
。