PERF03-BP01 データアクセスとストレージ要件に最適な専用データストアを使用する - パフォーマンス効率の柱

PERF03-BP01 データアクセスとストレージ要件に最適な専用データストアを使用する

データの特性 (共有可能、サイズ、キャッシュサイズ、アクセスパターン、レイテンシー、スループット、データの持続性など) を理解して、ワークロードに適した専用データストア (ストレージまたはデータベース) を選択します。

一般的なアンチパターン:

  • 特定のタイプのデータストアに関する社内知識と経験があるため、1 つのデータベースソリューションに固執する。

  • すべてのワークロードのデータの保存とアクセスの要件が類似していると考えている。

  • データアセットのインベントリにデータカタログを実装していない。

このベストプラクティスを活用するメリット: データの特性と要件を理解することで、ワークロードのニーズに適した、最も効率的でパフォーマンスの高いストレージテクノロジーを特定できます。

このベストプラクティスを活用しない場合のリスクレベル:

実装のガイダンス

データストレージを選択して実装する際は、クエリ、スケーリング、ストレージの特性がワークロードのデータ要件をサポートしていることを確認します。AWS では、ブロックストレージ、オブジェクトストレージ、ストリーミングストレージ、ファイルシステム、リレーショナル、key-value、ドキュメント、インメモリ、グラフ、時系列、台帳などのデータベースをはじめとした、さまざまなデータストレージとデータベーステクノロジーを提供しています。各データ管理ソリューションには、ユースケースとデータモデルをサポートするために使用できるオプションと設定があります。データの特性と要件を理解することで、モノリシックなストレージテクノロジーや制約の多い汎用的なアプローチから脱却し、データの適切な管理に集中できます。

実装手順

  • ワークロードに存在するさまざまなデータタイプを棚卸しします。

  • 次のようなデータの特性と要件を理解して文書化します。

    • データタイプ (非構造化、半構造化、リレーショナル)

    • データ量と増加

    • データ保存期間: 永続、一時的、一過性

    • ACID 特性 (原子性、一貫性、独立性、耐久性) の要件

    • データアクセスパターン (読み取りが多い、または書き込みが多い)

    • レイテンシー

    • スループット

    • IOPS (1 秒あたりの入出力操作数)

    • データ保持期間

  • PERF01-BP01 利用可能なクラウドサービスと機能について学び、理解する で説明している、データ特性を満たし、AWS のワークロードに利用できるさまざまなデータストア (ストレージおよびデータベースサービス) について学びます。AWS のストレージ技術とその主な特徴を例としていくつか挙げます。

    タイプ AWS サービス 主な特徴
    オブジェクトストレージ Amazon S3 無制限のスケーラビリティ、高可用性、およびアクセシビリティに関する複数のオプションがあります。Amazon S3 との間でオブジェクトを転送し、オブジェクトにアクセスするには、Transfer Accelerationアクセスポイントなどのサービスを使用して、ロケーション、セキュリティニーズ、アクセスパターンをサポートします。
    アーカイブストレージ Amazon Glacier データアーカイブ用に構築されています。
    ストリーミングストレージ

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka (Amazon MSK)

    ストリーミングデータを効率的に取り込み保存します。
    共有ファイルシステム

    Amazon Elastic File System (Amazon EFS)

    複数のタイプのコンピューティングソリューションからアクセスできるマウント可能なファイルシステムです。

    共有ファイルシステム 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 AuroraAmazon RDSAmazon Redshift ACID (atomicity、consistency、isolation、durability) トランザクションをサポートし、参照整合性と強固なデータ整合性を維持するように設計されています。従来のアプリケーション、エンタープライズリソースプランニング (ERP)、顧客関係管理 (CRM)、e コマースの多くは、リレーショナルデータベースを使用してデータを保存します。
    key-value データベース Amazon DynamoDB 一般的に大量のデータを保存および取得するために、一般的なアクセスパターン用に最適化されています。高トラフィックのウェブアプリケーション、e コマースシステム、ゲーミングアプリケーションは、key-value データベースの典型的なユースケースです。
    ドキュメントデータベース – Amazon DocumentDB 半構造化データを JSON 型のドキュメントとしとして保存するように設計されています。これらのデータベースは、開発者がコンテンツ管理、カタログ、およびユーザープロファイルなどのアプリケーションをすばやく構築し、更新するために役立ちます。 
    インメモリデータベース Amazon ElastiCacheAmazon MemoryDB for Redis データへのリアルタイムアクセス、最小のレイテンシー、最大のスループットが必要なアプリケーションに使用されます。インメモリデータベースは、アプリケーションキャッシュ、セッション管理、ゲームリーダーボード、低レイテンシーの ML 特徴量ストア、マイクロサービスメッセージングシステム、および高スループットのストリーミングメカニズムに使用できます。
    グラフデータベース – Amazon Neptune 関連性が高いグラフデータセット間における何百万もの関係を、大規模に、かつミリ秒単位のレイテンシーでナビゲートし、クエリする必要があるアプリケーション向けに使用されます。多くの企業が、不正行為検出、ソーシャルネットワーキング、およびレコメンデーションエンジン向けにグラフデータベースを使用しています。
    時系列データベース – Amazon Timestream 時間の経過と共に変化するデータを効率的に収集、合成し、それらからインサイトを導き出すために使用されます。時系列データベースは、IoT アプリケーション、DevOps、および産業用テレメトリに利用できます。
    ワイドカラム Amazon Keyspaces (Apache Cassandra 向け) テーブル、行、および列を使用しますが、リレーショナルデータベースとは異なり、同じテーブル内でも列の名前と形式が行ごとに異なる場合があります。ワイドカラムデータストアは通常、設備保全、フリート管理、およびルート最適化のための大規模な産業アプリケーションでの使用が見られます。 
    台帳 Amazon Quantum Ledger Database (Amazon QLDB) あらゆるアプリケーションについて、トランザクションのスケーラブルでイミュータブル、かつ暗号的な検証が可能なレコードを維持する信頼された中央機関を提供します。台帳データベースは、SoR、サプライチェーン、登録、および銀行取引にも使用されています。  
  • データプラットフォームを構築する場合は、AWS で最新のデータアーキテクチャを活用し、データレイク、データウェアハウス、専用データストアを統合します。

  • ワークロードのデータストアを選択する際に考慮すべき主なポイントは次のとおりです。

    質問 考慮事項
    データはどのように構造化されていますか。
    どのレベルの参照整合性が必要ですか。
    • 外部キーの制約については、Amazon RDSAurora などのリレーショナルデータベースが、このレベルの整合性を提供できます。

    • 通常、NoSQL データモデル内では、データをドキュメントまたはテーブルをまたいで結合するのではなく、単一のドキュメントまたはドキュメントのコレクションに非正規化して、単一のリクエストで取得します。 

    ACID (atomicity、consistency、isolation、durability) への準拠は必要ですか。
    • リレーショナルデータベースに関連付けられた ACID プロパティが必要な場合は、Amazon RDSAurora などのリレーショナルデータベースを検討してください。

    • NoSQL データベースに強力な整合性が必要な場合は、DynamoDB で強力な整合性のある読み込みを使用できます。

    ストレージ要件は時間の経過とともにどのように変化しますか。これにより、スケーラビリティにどのような影響がありますか。
    • DynamoDBAmazon Quantum Ledger Database (Amazon QLDB) などのサーバーレスデータベースは、動的にスケールされます。

    • リレーショナルデータベースには、プロビジョニングされたストレージに上限があり、多くの場合、この上限に達すると、シャーディングなどのメカニズムを使用して水平方向に分割する必要があります。

    書き込みクエリに対する読み取りクエリの割合はどのくらいですか。キャッシングによってパフォーマンスが向上する可能性はありますか。
    • 読み取り負荷の高いワークロードは、データベースが DynamoDB の場合、ElastiCacheDAX などのキャッシュレイヤーの恩恵を受けることができます。

    • Amazon RDS などのリレーショナル データベースを使用して、読み取りを読み取りレプリカにオフロードすることもできます。

    ストレージや変更 (OLTP - オンライントランザクション処理) または取得やレポート (OLAP - オンライン分析処理) のどちらが優先されますか。
    • 高スループットのそのまま読み取るトランザクション処理については、DynamoDB などの NoSQL データベースを検討します。

    • 一貫性のある高スループットで複雑な読み取りパターン (join など) には、Amazon RDS を使用します。

    • 分析クエリの場合は、Amazon Redshift などの列指向データベース、または Amazon S3 へのデータのエクスポートと、Athena または Amazon QuickSight を使用した分析の実行を検討してください。

    データにはどのレベルの耐久性が必要ですか。
    • Aurora は、リージョン内の 3 つのアベイラビリティーゾーンにわたってデータを自動的に複製します。これは、データの耐久性が高く、データ損失の可能性が低くなることを意味します。

    • DynamoDB は、複数のアベイラビリティーゾーンに自動的に複製され、高可用性とデータ耐久性を発揮します。

    • Amazon S3 は、99.999999999% (イレブンナイン) の耐久性を備えています。Amazon RDS や DynamoDB などの多くのデータベースサービスでは、長期的な保持とアーカイブのために、Amazon S3 へのデータのエクスポートをサポートしています。

    商用データベースエンジンやライセンスコストから離れたいという希望はありますか。
    • Amazon RDS または Aurora で、PostgreSQL や MySQL などのオープンソースのエンジンを検討します。

    • AWS Database Migration ServiceAWS Schema Conversion Tool を活用して商用データベースエンジンからオープンソースへの移行を実行する

    データベースには運用上どのようなことが期待されますか。マネージドサービスへの移行は主な懸念事項ですか。
    • Amazon EC2 の代わりに Amazon RDS を利用し、NoSQL データベースをセルフホスティングする代わりに DynamoDB または Amazon DocumentDB を利用することで、運用上の諸経費を削減できます。

    データベースへのアクセスは現在どのように行われていますか。アプリケーションアクセスのみですか、それともビジネスインテリジェンス (BI) ユーザーやその他の接続された既製アプリケーションが存在しますか。
    • 外部ツールに依存している場合は、サポートするデータベースとの互換性を維持する必要がある場合があります。Amazon RDS は、Microsoft SQL Server、Oracle、MySQL、PostgreSQL など、サポートしているさまざまなエンジンバージョンとの完全な互換性があります。

  • 非運用環境で実験とベンチマーキングを行い、どのデータストアがワークロード要件に対応できるかを特定します。

リソース

関連ドキュメント:

関連動画:

関連する例: