PERF03-BP01 データアクセスとストレージ要件に最適な専用データストアを使用する
データの特性 (共有可能、サイズ、キャッシュサイズ、アクセスパターン、レイテンシー、スループット、データの持続性など) を理解して、ワークロードに適した専用データストア (ストレージまたはデータベース) を選択します。
一般的なアンチパターン:
-
特定のタイプのデータストアに関する社内知識と経験があるため、1 つのデータベースソリューションに固執する。
-
すべてのワークロードのデータの保存とアクセスの要件が類似していると考えている。
-
データアセットのインベントリにデータカタログを実装していない。
このベストプラクティスを活用するメリット: データの特性と要件を理解することで、ワークロードのニーズに適した、最も効率的でパフォーマンスの高いストレージテクノロジーを判別できます。
このベストプラクティスを活用しない場合のリスクレベル: 高
実装のガイダンス
データストレージを選択して実装する際は、クエリ、スケーリング、ストレージの特性がワークロードのデータ要件をサポートしていることを確認します。AWS では、ブロックストレージ、オブジェクトストレージ、ストリーミングストレージ、ファイルシステム、リレーショナル、key-value、ドキュメント、インメモリ、グラフ、時系列、台帳などのデータベースをはじめとした、さまざまなデータストレージとデータベーステクノロジーを提供しています。各データ管理ソリューションには、ユースケースとデータモデルをサポートするために使用できるオプションと設定があります。データの特性と要件を理解することで、モノリシックなストレージテクノロジーや制約の多い汎用的なアプローチから脱却し、データの適切な管理に集中できます。
実装手順
-
ワークロードに存在するさまざまなデータタイプを棚卸しします。
-
次のようなデータの特性と要件を理解して文書化します。
-
データタイプ (非構造化、半構造化、リレーショナル)
-
データ量と増加
-
データ保存期間: 永続、一時的、一過性
-
ACID 特性 (原子性、一貫性、独立性、耐久性) の要件
-
データアクセスパターン (読み取りが多い、または書き込みが多い)
-
レイテンシー
-
スループット
-
IOPS (1 秒あたりの入出力操作数)
-
データの保管期間
-
-
各自のデータ特性に合致する、AWS 上のワークロードで使用できるさまざまなデータストアについて確認します (「 PERF01-BP01 利用可能なクラウドサービスと機能について学び、理解する」で説明されています)。AWS のストレージ技術とその主な特徴を例としていくつか挙げます。
タイプ AWS のサービス 主な特徴 オブジェクトストレージ Amazon S3 無制限のスケーラビリティ、高可用性、およびアクセシビリティに関する複数のオプションがあります。Amazon S3 内外のオブジェクトの転送やアクセスには、 Transfer Acceleration または Access Points などのサービスを使用して、ロケーション、セキュリティニーズ、アクセスパターンをサポートします。 アーカイブストレージ Amazon Glacier データアーカイブ用に構築されています。 ストリーミングストレージ ストリーミングデータを効率的に取り込み保存します。 共有ファイルシステム 複数のタイプのコンピューティングソリューションからアクセスできるマウント可能なファイルシステムです。
共有ファイルシステム Amazon FSx 最新の AWS コンピューティングソリューションをベースに構築されており、一般的に使用されている 4 つのファイルシステム (NetApp ONTAP、OpenZFS、Windows File Server、Lustre) をサポートしています。Amazon FSx レイテンシー、スループット、および IOPS は ファイルシステムごとに異なるため、ワークロードのニーズに合わせて適切なファイルシステムを選択する際に考慮する必要があります。 ブロックストレージ Amazon Elastic Block Store (Amazon EBS) Amazon Elastic Compute Cloud (Amazon EC2) 向けに設計された、スケーラブルで高パフォーマンスのブロックストレージサービスです。Amazon EBS には、処理が多く IOPS が高いワークロード向けの SSD 搭載ストレージと、スループットが高いワークロード向けの HDD 搭載ストレージが含まれます。 リレーショナルデータベース Amazon Aurora 、 Amazon RDS 、 Amazon Redshift 。 ACID (atomicity、consistency、isolation、durability) トランザクションをサポートし、参照整合性と強固なデータ整合性を維持するように設計されています。従来のアプリケーション、エンタープライズリソースプランニング (ERP)、顧客関係管理 (CRM)、e コマースの多くは、リレーショナルデータベースを使用してデータを保存します。 key-value データベース Amazon DynamoDB 一般的に大量のデータを保存および取得するために、一般的なアクセスパターン用に最適化されています。高トラフィックのウェブアプリケーション、e コマースシステム、ゲーミングアプリケーションは、key-value データベースの典型的なユースケースです。 ドキュメントデータベース Amazon DocumentDB 半構造化データを JSON 型のドキュメントとしとして保存するように設計されています。これらのデータベースは、開発者がコンテンツ管理、カタログ、およびユーザープロファイルなどのアプリケーションをすばやく構築し、更新するために役立ちます。 インメモリデータベース Amazon ElastiCache 、 Amazon MemoryDB for Redis データへのリアルタイムアクセス、最小のレイテンシー、最大のスループットが必要なアプリケーションに使用されます。インメモリデータベースは、アプリケーションキャッシュ、セッション管理、ゲームリーダーボード、低レイテンシーの ML 特徴量ストア、マイクロサービスメッセージングシステム、および高スループットのストリーミングメカニズムに使用できます。 グラフデータベース Amazon Neptune 関連性が高いグラフデータセット間における何百万もの関係を、大規模に、かつミリ秒単位のレイテンシーでナビゲートし、クエリする必要があるアプリケーション向けに使用されます。多くの企業が、不正行為検出、ソーシャルネットワーキング、およびレコメンデーションエンジン向けにグラフデータベースを使用しています。 時系列データベース Amazon Timestream 時間の経過と共に変化するデータを効率的に収集、合成し、それらからインサイトを導き出すために使用されます。時系列データベースは、IoT アプリケーション、DevOps、および産業用テレメトリに利用できます。 ワイドカラム Amazon Keyspaces (Apache Cassandra 向け) テーブル、行、および列を使用しますが、リレーショナルデータベースとは異なり、同じテーブル内でも列の名前と形式が行ごとに異なる場合があります。ワイドカラムデータストアは通常、設備保全、フリート管理、およびルート最適化のための大規模な産業アプリケーションでの使用が見られます。 台帳 Amazon Quantum Ledger Database (Amazon QLDB) あらゆるアプリケーションについて、トランザクションのスケーラブルでイミュータブル、かつ暗号的な検証が可能なレコードを維持する信頼された中央機関を提供します。台帳データベースは、SoR、サプライチェーン、登録、および銀行取引にも使用されています。 -
データプラットフォームを構築する場合は、AWS の 最新のデータアーキテクチャ
を活用して、データレイク、データウェアハウス、専用データストアを統合します。 -
ワークロードのデータストアを選択する際に考慮すべき主なポイントは次のとおりです。
質問 考慮事項 データはどのように構造化されていますか。 -
データが構造化されていない場合は、 Amazon S3
などのオブジェクトストアか、 Amazon DocumentDB -
key-value データの場合は、 DynamoDB
、 Amazon ElastiCache (Redis OSS) または Amazon MemoryDB
どのレベルの参照整合性が必要ですか。 -
外部キー制約の場合は、 Amazon RDS
および Aurora などのリレーショナルデータベースがこのレベルの整合性を提供できます。 -
通常、NoSQL データモデル内では、データをドキュメントまたはテーブルをまたいで結合するのではなく、単一のドキュメントまたはドキュメントのコレクションに非正規化して、単一のリクエストで取得します。
ACID (atomicity、consistency、isolation、durability) への準拠は必要ですか。 -
Amazon RDS や
Aurora などのリレーショナルデータベースに関連付けられている ACID プロパティが必要か 。 -
NoSQL データベースに 強整合性が必要な場合は、
DynamoDB の強力な整合性のある読み込み を使用できます 。
ストレージ要件は時間の経過とともにどのように変化しますか。 これにより、スケーラビリティにどのような影響がありますか。 書き込みクエリに対する読み取りクエリの割合はどのくらいですか。 キャッシングによってパフォーマンスが向上する可能性はありますか。 -
読み取り負荷の高いワークロードでは、キャッシングレイヤーを使用することでメリットが得られます。これには、 ElastiCache
または DAX (データベースが DynamoDB の場合) などがあります。 -
読み取りは、 Amazon RDS
などのリレーショナルデータベースを使用して読み取りレプリカにオフロードすることもできます。
ストレージや変更 (OLTP - オンライントランザクション処理) または取得やレポート (OLAP - オンライン分析処理) のどちらが優先されますか。 -
高スループットのそのまま読み取るトランザクション処理については、DynamoDB などの NoSQL データベースを検討します。
-
一貫性のある高スループットで複雑な読み取りパターン (join など) には Amazon RDS を使用します。
-
分析クエリの場合は、 Amazon Redshift
などの列指向データベースを検討するか、データを Amazon S3 にエクスポートして Athena または Amazon Quick を使用してパフォーマンス分析を行います。
データにはどのレベルの耐久性が必要ですか。 -
Aurora は、リージョン内の 3 つのアベイラビリティーゾーンにわたってデータを自動的に複製します。これはつまり、データの耐久性が高く、データ損失の可能性が低くなることを意味します。
-
DynamoDB は、複数のアベイラビリティーゾーンに自動的に複製され、高可用性とデータ耐久性を提供します。
-
Amazon S3 は、99.999999999% (イレブンナイン) の耐久性を備えています。Amazon RDS や DynamoDB などの多くのデータベースサービスでは、長期的な保持とアーカイブのために Amazon S3 へのデータのエクスポートをサポートしています。
商用データベースエンジンやライセンスコストから離れたいという希望はありますか。 -
Amazon RDS または Aurora で PostgreSQL や MySQL などのオープンソースのエンジンを検討します。
-
<!--ATMS sidestep. Remove this--> AWS Database Migration Service
および AWS Schema Conversion Tool を利用します。
データベースには運用上どのようなことが期待されますか。 マネージドサービスへの移行は主な懸念事項ですか。 -
Amazon EC2 の代わりに Amazon RDS を利用し、NoSQL データベースをセルフホスティングする代わりに DynamoDB または Amazon DocumentDB を利用することで、運用上の諸経費を削減できます。
データベースへのアクセスは現在どのように行われていますか。 アプリケーションアクセスのみですか、それともビジネスインテリジェンス (BI) ユーザーやその他の接続された既製アプリケーションが存在しますか。 -
外部ツールに依存している場合は、ツールがサポートするデータベースとの互換性を維持することが必要になる場合があります。Amazon RDS は Microsoft SQL Server、Oracle、MySQL、PostgreSQL など、サポートするさまざまなエンジンバージョンとの完全な互換性があります。
-
-
非運用環境で実験とベンチマーキングを行い、どのデータストアがワークロード要件に対応できるかを特定します。
リソース
関連ドキュメント:
関連動画:
関連する例: