翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
PERF03-BP02 データストアで使用可能な設定オプションを評価する
データストアで使用できるさまざまな機能と設定オプションを理解して評価し、ワークロードに合わせてストレージ容量とパフォーマンスを最適化します。
一般的なアンチパターン:
-
すべてのワークロードには、Amazon などのストレージタイプEBSを 1 つだけ使用します。
-
すべてのストレージ層に対して実際のテストを行うことなく、すべてのワークロードIOPSにプロビジョニングされた を使用します。
-
選択したデータ管理ソリューションの設定オプションを把握していない。
-
使用できる設定オプションを確認せずに、インスタンスサイズを増やすことのみに頼っている。
-
データストアのスケーリング特性をテストしていない。
このベストプラクティスを活用するメリット: データストア設定を確認し、試してみることで、インフラストラクチャのコストを削減し、パフォーマンスを高め、ワークロードの維持に必要な労力を軽減できる場合があります。
このベストプラクティスを活用しない場合のリスクレベル: 中
実装のガイダンス
ワークロードには、データストレージとアクセス要件に基づいて 1 つまたは複数のデータストアを使用できます。パフォーマンス効率とコストを最適化するには、データアクセスパターンを評価し、適切なデータストア設定を判別する必要があります。データストアのオプションを検討する際には、ストレージオプション、メモリ、コンピューティング、リードレプリカ、整合性要件、接続プーリング、キャッシュオプションなど、さまざまな側面を考慮します。こうしたさまざまな設定オプションを試し、パフォーマンス効率のメトリクスを改善します。
実装手順
-
データストアの現在の設定 (インスタンスタイプ、ストレージサイズ、データベースエンジンのバージョンなど) を把握します。
-
データストアのパフォーマンス向上に役立つ推奨設定オプションについては、 AWS ドキュメントとベストプラクティスを参照してください。考慮すべき主なデータストアのオプションは次のとおりです。
設定オプション 例 読み取りのオフロード (リードレプリカやキャッシュなど) -
DynamoDB テーブルでは、 を使用してキャッシュDAX用に読み取りをオフロードできます。
-
Amazon ElastiCache (Redis OSS) クラスターを作成し、最初にキャッシュから読み取るようにアプリケーションを設定し、リクエストされた項目が存在しない場合はデータベースにフォールバックできます。
-
Amazon RDS や Aurora などのリレーショナルデータベース、プロビジョニング済み Neptune や Amazon DocumentDB などのデータベースはすべてSQL、ワークロードのリード部分をオフロードするためのリードレプリカの追加をサポートしています。
-
DynamoDB などのサーバーレスデータベースは自動的にスケールします。ワークロードを処理するのに十分な読み取りキャパシティーユニット (RCU) がプロビジョニングされていることを確認します。
書き込みのスケーリング (パーティションキーのシャーディングやキューの導入など) -
リレーショナルデータベースでは、ワークロードの増加に対応するためにインスタンスのサイズを増やすか、プロビジョニングされた を増やIOPsして、基盤となるストレージへのスループットを向上させることができます。
-
また、データベースに直接書き込むのではなく、データベースの前にキューを導入することもできます。このパターンでは、データの取り込みをデータベースから切り離し、フローレートを制御することで、データベースが過負荷になるのを回避できます。
-
存続時間の短いトランザクションを大量に作成するのではなく、書き込みリクエストをバッチ処理することで、書き込み量の多いリレーショナルデータベースのスループットを向上させることができます。
-
DynamoDB などのサーバーレスデータベースは、書き込みスループットを自動的にスケーリングするか、容量モードに応じてプロビジョニングされた書き込み容量単位 (WCU) を調整することでスケーリングできます。
-
それでも、特定のパーティションキーのスループット制限に達すると、ホットパーティションで問題が発生する可能性があります。これは、より均等に分散されたパーティションキーを選択するか、パーティションキーを書き込みシャーディングすることで緩和できます。
データセットのライフサイクルを管理するためのポリシー -
Amazon S3 ライフサイクルを使用すると、オブジェクトのライフサイクル全体を管理できます。アクセスパターンが不明、変更中、または予測不可能な場合は、Amazon S3 Intelligent-Tiering を使用できます。これにより、アクセスパターンがモニタリングされ、アクセスされていないオブジェクトが低コストのアクセス階層に自動的に移動します。Amazon S3 ストレージレンズメトリクスを活用して、ライフサイクル管理の最適化の機会とギャップを特定できます。
-
Amazon EFSライフサイクル管理は、ファイルシステムのファイルストレージを自動的に管理します。
接続管理とプーリング -
Amazon RDS Proxy は、Amazon RDSおよび Aurora でデータベースへの接続を管理するために使用できます。
-
DynamoDB などのサーバーレスデータベースには、関連付けられている接続はありませんが、負荷の急増に対応するためにプロビジョンドキャパシティおよび自動スケールのポリシーを検討してください。
-
-
非運用環境で実験とベンチマーキングを行い、どの設定オプションがワークロード要件に対応できるかを特定します。
-
実験が終わったら、移行を計画し、パフォーマンスメトリクスを検証します。
-
AWS モニタリング (Amazon など CloudWatch
) および最適化 (Amazon S3 Storage Lens など) ツールを使用して、実際の使用パターンを使用してデータストアを継続的に最適化します。
リソース
関連ドキュメント:
関連動画:
関連する例: