PERF03-BP01 データアクセスとストレージの要件に最適な専用データストアを使用する - AWS Well-Architected フレームワーク

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

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

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

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

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

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

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

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

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

実装のガイダンス

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

実装手順

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

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

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

    • データ量と増加

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

    • ACID (原子性、一貫性、分離性、耐久性) の要件

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

    • レイテンシー

    • スループット

    • IOPS (1 秒あたりの入力/出力オペレーション)

    • データ保持期間

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

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

    Amazon Kinesis

    Amazon Managed Streaming for Apache Kafka (Amazon MSK)

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

    Amazon Elastic File System (Amazon EFS)

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

    共有ファイルシステム Amazon FSx 一般的に使用される 4 つのファイルシステム、Open NetApp ONTAP、Windows File ServerZFS、Lustre をサポートする最新の AWS コンピューティングソリューション上に構築されています。FSxAmazonlatency、スループット、および IOPSはファイルシステムごとに異なるため、ワークロードのニーズに適したファイルシステムを選択する際には考慮する必要があります。
    ブロックストレージ Amazon Elastic Block Store (Amazon EBS) Amazon Elastic Compute Cloud (Amazon ) 用に設計されたスケーラブルで高性能なブロックストレージサービスEC2。Amazon EBSには、トランザクション負荷IOPSの高いワークロード用の SSD-backed ストレージと、スループット負荷の高いワークロード用の HDD-backed ストレージが含まれています。
    リレーショナルデータベース Amazon Aurora Amazon RDSAmazon Redshift (ACID原子性、整合性、分離、耐久性) トランザクションをサポートし、参照整合性と強力なデータ整合性を維持するように設計されています。多くの従来のアプリケーション、エンタープライズリソースプランニング (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 台帳データベース (Amazon QLDB) あらゆるアプリケーションについて、トランザクションのスケーラブルでイミュータブル、かつ暗号的な検証が可能なレコードを維持する信頼された中央機関を提供します。台帳データベースは、SoR、サプライチェーン、登録、および銀行取引にも使用されています。  
  • データプラットフォームを構築する場合は、 で最新のデータアーキテクチャを活用して AWS 、データレイク、データウェアハウス、専用データストアを統合します。

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

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

    • 通常、NoSQL data-model では、ドキュメントやテーブル間で結合するのではなく、1 つのリクエストで取得するドキュメントまたはドキュメントのコレクションにデータを非正規化します。 

    ACID (原子性、一貫性、分離性、耐久性) コンプライアンスは必要ですか?
    • リレーショナルデータベースに関連付けられているACIDプロパティが必要な場合は、Amazon RDSAurora などのリレーショナルデータベースを検討してください。

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

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

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

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

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

    ストレージと変更 (OLTP - オンライントランザクション処理) または取得とレポート (OLAP - オンライン分析処理) の優先度は高くなりますか?
    • ハイスループットの現状有姿での読み取りトランザクション処理の場合は、DynamoDB などのデータベースなしSQLを検討してください。

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

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

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

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

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

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

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

    データベースには運用上どのようなことが期待されますか。マネージドサービスへの移行は主な懸念事項ですか。
    • Amazon RDSの代わりに Amazon を使用しEC2、NoSQL データベースをセルフホストする代わりに DynamoDB または Amazon DocumentDB を使用すると、運用オーバーヘッドを減らすことができます。

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

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

リソース

関連ドキュメント:

関連動画:

関連する例: