データストア - でのマイクロサービスの実装 AWS

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

データストア

データストアは、マイクロサービスに必要なデータを永続化するために使用します。セッションデータの一般的なストアは、Memcached や Redis. AWS offers などのインメモリキャッシュであり、両方のテクノロジーをマネージド Amazon ElastiCache サービスの一部として提供します。

アプリケーションサーバーとデータベース間にキャッシュを配置することは、データベースの読み取り負荷を軽減するための一般的なメカニズムです。これにより、より多くの書き込みをサポートするためにリソースを使用できるようになります。キャッシュはレイテンシーを改善することもできます。

リレーショナルデータベースは、構造化データとビジネスオブジェクトを保存するために依然として非常に人気があります。 は、 Amazon Relational Database Service (Amazon RDS) を介してマネージドサービスとして 6 つのデータベースエンジン (Microsoft SQL Server、Oracle、MySQL、MariaDB、PostgreSQL、Amazon Aurora) AWS を提供しています。

ただし、リレーショナルデータベースは無限スケール用に設計されていないため、多数のクエリをサポートする手法を適用するのが難しく、時間がかかります。

NoSQL データベースは、リレーショナルデータベースの一貫性よりもスケーラビリティ、パフォーマンス、可用性を優先するように設計されています。NoSQL データベースの重要な要素の 1 つは、通常、厳密なスキーマを適用しないことです。データは、水平方向にスケーリングできるパーティションに分散され、パーティションキーを使用して取得されます。

個々のマイクロサービスは 1 つのことをうまく実行するように設計されているため、通常、NoSQL の永続性に適したシンプルなデータモデルがあります。NoSQL データベースにはリレーショナルデータベースとは異なるアクセスパターンがあることを理解することが重要です。たとえば、テーブルを結合することはできません。これが必要な場合は、ロジックをアプリケーションに実装する必要があります。 Amazon DynamoDB  を使用して、任意の量のデータを保存および取得し、任意のレベルのリクエストトラフィックを処理できるデータベーステーブルを作成できます。DynamoDB は 1 桁ミリ秒のパフォーマンスを提供しますが、マイクロ秒単位の応答時間を必要とする特定のユースケースがあります。 DynamoDB Accelerator (DAX) は、データにアクセスするためのキャッシュ機能を提供します。

DynamoDB には、実際のトラフィックに応じてスループット容量を動的に調整する自動スケーリング機能も用意されています。ただし、アプリケーションのアクティビティの急増が短いため、キャパシティプランニングが困難または不可能な場合があります。このような状況では、DynamoDB はオンデマンドオプションを提供し、pay-per-requestを提供します。DynamoDB オンデマンドは、キャパシティプランニングなしで 1 秒あたり数千件のリクエストを即座に処理できます。

詳細については、分散データ管理「」および「データベースの選択方法」を参照してください。