"このコンテンツは古いものです。現在、このバージョンの Well-Architected Framework は、次の場所にあります。 https://docs.aws.amazon.com/ja_jp/wellarchitected/2022-03-31/framework/performance-efficiency.html

PERF 4: データベースソリューションをどのように選択していますか。

システムにとって最適なデータベースソリューションは、可用性、整合性、分断耐性、レイテンシー、耐久性、スケーラビリティ、クエリ機能などの要件に応じて異なります。多くのシステムでは、サブシステムごとに異なるデータベースソリューションを使用しているため、パフォーマンスを向上させるための機能も異なります。システムに対して適切でないデータベースソリューションや機能を選択すると、パフォーマンス効率が低下する場合があります。

リソース

AWS purpose-built databases (DAT209-L)
Amazon Aurora storage demystified: How it all works (DAT309-R)
Amazon DynamoDB deep dive: Advanced design patterns (DAT403-R1)
Cloud Databases with AWS
AWS Database Caching
Amazon DynamoDB Accelerator
Amazon Aurora best practices
Amazon Redshift performance
Amazon Athena top 10 performance tips
Amazon Redshift Spectrum best practices
Amazon DynamoDB best practices

ベストプラクティス:

改善計画

データの特性を理解する

  • データ特性を調査および文書化する: データベースソリューションを選択する前に、ワークロードの機能的要件とワークロードでのデータの操作方法を理解します。データベースソリューションを評価する際には、ワークロードに使用するデータベースの最適な組み合わせを選択できるように、評価対象のソリューションが要件 (トランザクションや高可用性など) を満たすのに最適かどうかを判断します。 ワークロード要件をより適切に満たす代替データベースを評価します。例えば、IoT アプリケーションを構築する場合、Amazon Timestream などの時系列データベースを選択すると、リレーショナルデータベースの 10 分の 1 のコストで 1 日に数兆件のイベントを簡単に保存および分析できるため、より適切である場合があります。
  • 使用可能なオプションを評価する

  • ワークロードに適したデータベースタイプを選択する: AWS では、リレーショナル、key-value 、ドキュメント、インメモリ、グラフ、時系列、および台帳データベースを含めた多数の専用データベースエンジンから選択できます。AWS の専用データベースのポートフォリオは、多様なデータモデルをサポートしており、ユースケース主導型の高度にスケーラブルな分散型アプリケーションを構築することができます。特定の問題 (または一連の問題) を解決するために最適なデータベースを選択することによって、制約の多い汎用的なモノリシックデータベースから脱却し、ビジネスニーズを満たすアプリケーションの構築に専念することができます。
  • データベースパフォーマンス要件を定義する: ワークロードにとって重要なデータベースパフォーマンスのメトリクスを特定し、ベンチマークや負荷テストを使ってその要件をデータ駆動型のアプローチの一部として実装します。このデータを使用してデータベースソリューションの制約が発生している場所を特定し、その問題を解決する設定オプションを調べます。
  • データベースのキャッシングオプションを有効にする: リレーショナルデータベースをキャッシュするための Amazon ElastiCache for Redis や、DynamoDB 用の完全マネージド型で可用性の高いインメモリキャッシュのための Amazon DynamoDB Accelerator (DAX) などのデータベースのキャッシングオプションを評価します。これらのオプションを使用すると、1 秒間に数百万件のリクエストであっても、場合によってはミリ秒からマイクロ秒までパフォーマンスを向上させることができます。
  • データベースのパフォーマンスメトリクスを収集して記録する

  • データベース関連のメトリクスを収集する: データベースアクティビティに関連するメトリクスを記録するためのワークロードを設計します。このデータは、データベースシステムがワークロードの全体的なパフォーマンスに与える影響と、パフォーマンスと効率性を改善するために変更を加えることができる場所を把握するために不可欠です。例えば、クエリ時間、トランザクション数、ディスクの使用状況、インデックスの使用状況、実行速度の遅いクエリなどのデータポイントを追跡すれば、データベースシステムを最適化することが可能になります。
  • メトリクスをモニタリングする: Amazon CloudWatch では、アーキテクチャのリソース全体のメトリクスを収集できます。また、カスタムメトリクスを収集および発行して、ビジネスメトリクスまたは導出メトリクスを表面化することも可能です。CloudWatch またはサードパーティーのソリューションを使用して、しきい値を超過したことを示すアラームを設定します。
  • アクセスパターンに基づいてデータストレージを選択する

  • アクセスパターンを使用してデータストレージを判断する: ワークロードのアクセスパターンを評価して、適切なデータストレージパターンを見つけます。例えば、ワークロードでアドホッククエリアクセスが必要な場合、Amazon RDS などのリレーショナルデータベースを選択できます。ワークロードが高い成長率またはトラフィックが多いイベントによって駆動される場合は、Amazon DynamoDB などの key-value データベースを選択する必要があります。
  • アクセスパターンとメトリクスに基づいてデータストレージを最適化する

  • メトリクスとパターンに基づいてデータストレージを最適化する: レポートされたメトリクスを使用して、ワークロードのパフォーマンスの低い領域を特定し、データベースコンポーネントを最適化します。データのインデックス作成方法、キャッシュ方法、複数のシステム間での分散方法など、評価するパフォーマンス関連の特性は、データデータベースシステムごとに異なります。最適化の影響を測定します。