Amazon DocumentDB: 仕組み - Amazon DocumentDB

Amazon DocumentDB: 仕組み

Amazon DocumentDB (MongoDB 互換) は、MongoDB と互換性のある完全マネージド型のデータベースサービスです。Amazon DocumentDB では、同じアプリケーションコードを実行し、MongoDB で使用するのと同じドライバーとツールを使用できます。Amazon DocumentDB は MongoDB 3.6 と互換性があります。

Amazon DocumentDB を使用するときは、最初にクラスターを作成します。クラスターは、ゼロ以上のデータベースインスタンスと、これらのインスタンスのデータを管理する 1 つのクラスターボリュームで構成されます。Amazon DocumentDB クラスターボリュームは、複数のアベイラビリティーゾーンにまたがる仮想データベースストレージボリュームです。アベイラビリティーゾーンごとに、クラスターデータのコピーがあります。

Amazon DocumentDB クラスターは 2 つのコンポーネントで構成されています。

  • クラスターボリューム — クラウドネイティブなストレージサービスを使用して、3 つのアベイラビリティーゾーンにわたって 6 つの方法でデータをレプリケートし、耐久性と可用性に優れたストレージを提供します。Amazon DocumentDB クラスターには 1 個のクラスターボリュームがあり、最大 64 TB 個のデータを格納できます。

  • インスタンス — データベースの処理能力を提供し、クラスターストレージボリュームとの間でデータの書き込みと読み取りを行います。Amazon DocumentDBクラスター内のインスタンスは 0 – 16 個です。

インスタンスは以下の 2 つのロールのいずれかを提供します。

  • プライマリインスタンス — 読み書きオペレーションをサポートし、クラスターボリュームに対するすべてのデータ変更を実行します。各 Amazon DocumentDB クラスターには 1 つのプライマリインスタンスがあります。

  • レプリカインスタンス — 読み取りオペレーションのみをサポートします。Amazon DocumentDB クラスターには、プライマリインスタンスに加えて 15 個までのレプリカを含めることができます。複数のレプリカがあると、読み取りワークロードを分散させることができます。さらに、別のアベイラビリティーゾーンにレプリカを配置することによって、クラスターの可用性を高めることもできます。

次の図は、Amazon DocumentDB クラスター内のクラスターボリューム、プライマリインスタンス、およびレプリカの関係を示しています。


         クラスター、リーダー、インスタンスのエンドポイントを含む Amazon DocumentDB エンドポイントを示す図。

クラスターインスタンスは、同じインスタンスクラスである必要はなく、必要に応じてプロビジョニングおよび削除することができます。このアーキテクチャでは、ストレージとは無関係にクラスターのコンピューティング性能をスケールできます。

アプリケーションがプライマリインスタンスにデータを書き込むときに、プライマリはクラスターボリュームに堅牢な書き込みを実行します。次に、その書き込み (データではありません) の状態がアクティブな各レプリカに複製されます。Amazon DocumentDB レプリカは書き込み処理に関与しないため、Amazon DocumentDB レプリカは読み取りスケーリングにとって有利となります。Amazon DocumentDB レプリカからの読み込みには、レプリカの最小の遅延による結果整合性があります。これは通常、プライマリインスタンスによるデータの書き込みから 100 ミリ秒以内です。レプリカからの読み込みは、プライマリに書き込まれた順序で読み込まれることが保証されます。レプリカの遅延は、データ変更のレートや、大量の書き込みアクティビティによってレプリカの遅延が大きくなる可能性のある期間によって異なります。詳細については、「Amazon DocumentDB メトリクス」で ReplicationLag のメトリクスを参照してください。

Amazon DocumentDB エンドポイント

Amazon DocumentDB は複数の接続オプションを提供し、幅広いユースケースに対応します。Amazon DocumentDB クラスターのインスタンスに接続するには、インスタンスのエンドポイントを指定します。エンドポイントでは、ホストアドレスとポート番号がコロンで区切られています。

リーダーエンドポイントまたはインスタンスエンドポイントに接続する特定のユースケースがない限り、クラスターエンドポイントを使用してレプリカセットモード(「レプリカセットとして Amazon DocumentDB に接続する」を参照)でクラスターに接続することをお勧めします。レプリカにリクエストをルーティングするには、アプリケーションの読み込み整合性要件に合わせて読み取り性能を最大化する、ドライバー読み込み設定を選択します。secondaryPreferred 読み込み設定を使用すると、レプリカの読み取りを有効にし、プライマリインスタンスを解放してより多くの作業を行うことができます。

次のエンドポイントは、Amazon DocumentDB クラスターから取得できます。

クラスターエンドポイント

クラスターエンドポイントはクラスターの現在のプライマリインスタンスに接続します。このクラスターエンドポイントは、読み取りと書き込みの両方のオペレーションに使用できます。Amazon DocumentDB クラスターには、厳密に 1 つのクラスターエンドポイントがあります。

クラスターエンドポイントは、クラスターへの読み取り/書き込み接続のフェイルオーバーサポートを提供します。クラスターの現在のプライマリインスタンスが失敗し、クラスターに少なくとも 1 つのアクティブなリードレプリカがある場合、クラスターエンドポイントは自動的に接続リクエストを新しいプライマリインスタンスにリダイレクトします。Amazon DocumentDB クラスターに接続するときは、クラスターエンドポイントを使用し、レプリカセットモード(「レプリカセットとして Amazon DocumentDB に接続する」を参照)でクラスターに接続することをお勧めします。

Amazon DocumentDB クラスターエンドポイントの例を以下に示します。

sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017

次の接続文字列は、このクラスターエンドポイントを使用した例です。

mongodb://username:password@sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017

クラスターのエンドポイントを見つける方法については、「クラスターのエンドポイントの検索」を参照してください。

読み込みエンドポイント

読み込みエンドポイントは、クラスター内の使用可能なすべてのレプリカ間で、読み取り専用接続の負荷分散を行います。読み込みエンドポイントへの接続で書き込みオペレーションを実行しようとすると、エラーが発生します。Amazon DocumentDB クラスターには、厳密に 1 つの読み込みエンドポイントがあります。

クラスターに 1 つの (プライマリ) インスタンスのみが含まれている場合、読み込みエンドポイントはプライマリインスタンスのみに接続します。Amazon DocumentDB クラスターにレプリカインスタンスを追加した場合、読み込みエンドポイントは、アクティブになった時点で新しいレプリカへの読み取り専用接続を開きます。

Amazon DocumentDB クラスターの読み込みエンドポイントの例を以下に示します。

sample-cluster.cluster-ro-123456789012.us-east-1.docdb.amazonaws.com:27017

次の接続文字列は、読み込みエンドポイントを使用した例です。

mongodb://username:password@sample-cluster.cluster-ro-123456789012.us-east-1.docdb.amazonaws.com:27017

読み込みエンドポイントは、読み込みリクエストではなく、読み取り専用接続の負荷分散を行います。一部の読み込みエンドポイントが他の読み込みエンドポイントよりも多く使用されている場合、読み込みリクエストはクラスター内のインスタンス間で均等に分散されない可能性があります。クラスターエンドポイントにレプリカセットとして接続し、secondaryPreferred 読み込み優先オプションを使用して、リクエストを分散することをお勧めします。

クラスターのエンドポイントを見つける方法については、「クラスターのエンドポイントの検索」を参照してください。

インスタンスエンドポイント

クラスター内で特定のインスタンスに接続するインスタンスエンドポイントです。現在のプライマリインスタンスのインスタンスエンドポイントは、読み込み/書き込みオペレーションに使用できます。ただし、リードレプリカのインスタンスエンドポイントに書き込みオペレーションを実行しようとすると、エラーが発生します。Amazon DocumentDB クラスターは、アクティブなインスタンスごとに 1 つのインスタンスのエンドポイントを持ちます。

インスタンスエンドポイントは、クラスターエンドポイントや読み取りエンドポイントが適切でないシナリオ向けに、特定のインスタンスへの接続の直接制御を提供します。ユースケースの例として、定期的な読み取り専用分析ワークロード用のプロビジョニングがあります。通常よりも大きいレプリカインスタンスのプロビジョニング、インスタンスエンドポイントを使用した新しいより大きなインスタンスへの直接接続、分析クエリの実行を行った後で、インスタンスを削除できます。インスタンスエンドポイントを使用すると、分析トラフィックが他のクラスターインスタンスに影響を与えないようにできます。

次の例では、Amazon DocumentDB クラスターの 1 つのインスタンスのインスタンスエンドポイントを示します。

sample-instance.123456789012.us-east-1.docdb.amazonaws.com:27017

次の接続文字列は、このインスタンスエンドポイントを使用した例です。

mongodb://username:password@sample-instance.123456789012.us-east-1.docdb.amazonaws.com:27017
注記

プライマリまたはレプリカとしてのインスタンスのロールは、フェイルオーバーイベントが原因で変更される可能性があります。アプリケーションで、特定のインスタンスエンドポイントがプライマリインスタンスであることを前提にしないでください。本稼働アプリケーションのインスタンスエンドポイントに接続することはお勧めしません。代わりに、クラスターエンドポイントを使用し、レプリカセットモード(「レプリカセットとして Amazon DocumentDB に接続する」を参照)でクラスターに接続することをお勧めします。インスタンスのフェイルオーバー優先度をより高度に制御する方法については、「Amazon DocumentDB クラスターの耐障害性について」を参照してください。

クラスターのエンドポイントを見つける方法については、「インスタンスのエンドポイントの検索」を参照してください。

レプリカセットモード

レプリカセット名 rs0 を指定して、レプリカセットモードで Amazon DocumentDB クラスターエンドポイントに接続できます。レプリカセットモードで接続すると、[Read Concern (読み取りの問題)]、[Write Concern (書き込みの問題)]、および [Read Preference (読み取り設定)] のオプションを指定できます。詳細については、「読み込み整合性」を参照してください。

レプリカセットモードで接続する接続文字列の例を次に示します。

mongodb://username:password@sample-cluster.cluster-123456789012.us-east-1.docdb.amazonaws.com:27017/?replicaSet=rs0

レプリカセットモードで接続するときは、Amazon DocumentDB クラスターはドライバーとクライアントに対してレプリカセットとして表示されます。Amazon DocumentDB クラスターに対して追加、削除されたインスタンスは、レプリカセット設定に自動的に反映されます。

各 Amazon DocumentDB クラスターは、デフォルト名が rs0 の 1 つのレプリカセットで構成されます。レプリカセットの名前を変更することはできません。

レプリカセットモードでのクラスターエンドポイントへの接続が、一般的な使用での推奨の方法です。

注記

Amazon DocumentDB クラスター内のすべてのインスタンスは、同じ TCP ポートで接続をリッスンします。

TLS サポート

Transport Layer Security (TLS) を使用した Amazon DocumentDB への接続方法については、「転送中のデータの暗号化」を参照してください。

Amazon DocumentDB のストレージ

Amazon DocumentDB のデータはクラスターボリュームに保存されます。これは、SSD (Solid State Drive) を使用する単一の仮想ボリュームです。クラスターボリュームはお客様のデータの 6 つのコピーで構成されます。これらのデータは、単一の AWS リージョンの複数のアベイラビリティーゾーン間で自動的にレプリケートされます。このレプリケーションにより、データの高い耐久性が保証され、データ損失の可能性が低くなります。また、データのコピーが他のアベイラビリティーゾーンにすでに存在するため、フェイルオーバー中のクラスターの可用性が高まります。これらのコピーは、継続して Amazon DocumentDB クラスター内のインスタンスに対するデータリクエストを処理できます。

データストレージに対する請求方法

Amazon DocumentDB は、データ量が増えるにつれて、クラスターボリュームのサイズを自動的に増やします。Amazon DocumentDB クラスターボリュームは最大サイズの 64 TiB まで拡張できますが、Amazon DocumentDB クラスターボリュームで使用する領域に対してのみ課金されます。テーブルまたはパーティションの削除などによって Amazon DocumentDB データが削除されても、全体の割り当て領域は同じままです。空き領域は、将来のデータボリューム増加時に自動的に再利用されます。

注記

ストレージコストは「高いウォーターマーク」(任意の時点で Amazon DocumentDB クラスター用に割り当てられた最大量) に基づいているため、大量の一時情報を作成したり、古い不要データの削除前に新規データを大量にロードする ETL 実行を避けることによってコストを管理できます。

Amazon DocumentDB クラスターからデータを削除したことによって大量の割り当て済み未使用領域が発生した場合に、高いウォーターマークをリセットするには、mongodumpmongorestore などのツールを使用して論理データダンプを作成し、新しいクラスターに復元する必要があります。スナップショットを作成および復元しても、割り当てられたストレージは削減されません。これは、基になるストレージの物理的なレイアウトが、復元されたスナップショットでも変更されないためです。

注記

mongodumpmongorestore などのユーティリティを使用すると、ストレージボリュームに対して読み書きするデータのサイズに応じた I/O 料金が発生します。

Amazon DocumentDB データストレージと I/O の料金については、「Amazon DocumentDB (MongoDB 互換) の料金」と「料金に関するよくある質問」を参照してください。

Amazon DocumentDB のレプリケーション

Amazon DocumentDB クラスターでは、各レプリカインスタンスが独立したエンドポイントを公開します。これらのレプリカエンドポイントは、クラスターボリュームのデータへの読み取り専用アクセスを提供します。また、複数のレプリケートされたインスタンス経由で、データの読み込みワークロードをスケールできます。さらに、データ読み込みのパフォーマンスを向上させ、Amazon DocumentDB クラスター内のデータの可用性を高めるためにも有効です。Amazon DocumentDB レプリカはフェイルオーバーターゲットでもあり、Amazon DocumentDB クラスターのプライマリインスタンスに障害が発生した場合は迅速に昇格されます。

Amazon DocumentDB の信頼性

Amazon DocumentDB は、信頼性、耐久性、および耐障害性を持つように設計されています。(可用性を高めるため、Amazon DocumentDB クラスターを設定し、異なるアベイラビリティーゾーンに複数のレプリカインスタンスを存在させる必要があります。) Amazon DocumentDB には、これを信頼できるデータベースソリューションとするための、さまざまな自動機能があります。

ストレージの自動修復

Amazon DocumentDB では、データの複数のコピーを 3 つのアベイラビリティーゾーンに保持し、ストレージの障害によってデータが失われる可能性を最小限に抑えます。Amazon DocumentDB では、クラスターボリュームでの障害を自動的に検出します。クラスターボリュームのセグメントで障害が発生すると、Amazon DocumentDB はすぐにそのセグメントを修復します。クラスターボリュームを構成する他のボリュームからのデータを使用して、修復されるセグメントのデータが最新であるようにします。その結果、Amazon DocumentDB ではデータ損失が回避され、インスタンス障害から回復するためのポイントインタイム復元を実行する必要性が低減します。

存続できるキャッシュのウォームアップ

Amazon DocumentDB はそのページキャッシュをデータベースとは別のプロセスで管理するため、ページキャッシュはデータベースとは無関係に存続できます。予期できないデータベース障害が発生した場合でも、ページキャッシュはメモリに保持されます。これにより、バッファプールはデータベースの起動時に最新の状態にウォームアップされます。

クラッシュ回復

Amazon DocumentDB は、クラッシュからほぼ瞬時に回復し、アプリケーションデータを提供し続けるように設計されています。Amazon DocumentDB は、クラッシュのほぼ直後にデータベースを開き、使用できるようにするためにクラッシュ回復を並列スレッドで非同期に実行します。

読み込み設定のオプション

Amazon DocumentDB は、3 つのアベイラビリティーゾーンにわたってデータを 6 回レプリケートするクラウドネイティブな共有ストレージサービスを使用して、高レベルの耐久性を提供します。Amazon DocumentDB は耐久性を達成するために、複数のインスタンスへのデータのレプリケートに依存しません。クラスターのデータは、1 つのインスタンスが含まれているか、15 個のインスタンスが含まれているかにかかわらず、耐久性に優れます。

書き込みの耐久性

Amazon DocumentDB は、分散型で耐障害性がある自己修復機能を備えた一意のストレージシステムを使用します。このシステムは 3 つの AWS アベイラビリティーゾーン間のデータのコピーを 6 個作成して (V=6)、高度な可用性と耐久性を提供します。Amazon DocumentDB はデータを書き込む際、クライアントへの書き込みを確認する前に、すべての書き込みが大半のノードに永続的に記録されることを確認します。3 ノードの MongoDB レプリカセットを実行している場合は、書き込み確認として {w:3, j:true} を使用すると、Amazon DocumentDB と比較したときに可能な限り最高の設定を得られます。

Amazon DocumentDB クラスターへの書き込みは、クラスターのプライマリインスタンスによって処理される必要があります。レプリカに書き込もうとすると、エラーが発生します。Amazon DocumentDB プライマリインスタンスからの確認済みの書き込みには耐久性があり、ロールバックすることができません。Amazon DocumentDB にはデフォルトで高度な耐久性があり、非耐久的な書き込みオプションはサポートされていません。耐久性レベルを変更することはできません (これは、書き込みについてです)。

Amazon DocumentDB アーキテクチャではストレージとコンピューティングが分離されているため、単一インスタンスのクラスターは高い耐久性を持ちます。耐久性はストレージレイヤーで処理されます。その結果、単一インスタンスがある Amazon DocumentDB クラスターと 3 つのインスタンスがある Amazon DocumentDB では、同じレベルの耐久性を実現します。データの高い耐久性を保持しながら、具体的なユースケースに対してクラスターを設定できます。

Amazon DocumentDB クラスターへの書き込みは、1 つのドキュメント内でアトミックです。

Amazon DocumentDB は wtimeout オプションをサポートしておらず、値が指定された場合はエラーを返しません。プライマリ Amazon DocumentDB インスタンスへの書き込みは、無期限にブロックしないことが保証されます。

読み込みの分離

Amazon DocumentDB インスタンスからの読み込みでは、クエリが開始される前に、耐久性があるデータのみが返されます。読み込みで、クエリの実行が開始された後で変更されたデータが返されることはなく、どのような状況でもダーティーリードが可能になることもありません。

読み込み整合性

Amazon DocumentDB クラスターから読み込まれたデータは耐久性があり、ロールバックされません。Amazon DocumentDB 読み込みの読み込み整合性は、リクエストまたは接続の読み込み設定を指定して変更できます。Amazon DocumentDB は耐久性のない読み込みオプションをサポートしていません。

Amazon DocumentDB クラスターのプライマリインスタンスからの読み取りは、通常の運用条件下では整合性が高く、書き込み後読み取りの整合性を実現します。書き込みとそれ以降の読み取りの間にフェイルオーバーイベントが発生した場合、システムは一時的に高い整合性を持たない読み取りを返すことがあります。リードレプリカからのすべての読み取りは、結果的に整合性を持ち、同じ順序でデータを返します。レプリカラグは多くの場合、100 ミリ秒未満です。

Amazon DocumentDB 読み込み設定

Amazon DocumentDB は、レプリカセットモードのクラスターエンドポイントからデータを読み込むときのみ、読み込み設定オプションをサポートします。読み込み設定オプションの設定により、MongoDB クライアントまたはドライバーが Amazon DocumentDB クラスターでインスタンスに読み込みリクエストをルーティングする方法に影響があります。特定のクエリ用に読み込み設定オプションを指定するか、MongoDB ドライバーの全般オプションとして指定できます。(読み込み設定オプションの設定方法については、クライアントまたはドライバーのドキュメントを参照してください。)

クライアントまたはドライバーがレプリカセットモードの Amazon DocumentDB クラスターエンドポイントに接続していない場合、読み込み設定の指定結果は定義されていません。

Amazon DocumentDB は、読み込み設定としての「タグセット」の設定はサポートしていません。

サポートされている読み込み設定オプション

  • primaryprimary 読み込み設定を指定すると、すべての読み込みがクラスターのプライマリインスタンスにルーティングされます。プライマリインスタンスが使用できない場合、読み込みオペレーションは失敗します。primary 読み込み設定により、書き込み後の読み込み整合性が得られ、高可用性および読み込みスケーリングよりも書き込み後の読み込み整合性を優先するユースケースに適しています。

    次の例では、primary 読み込み設定を指定します。

    db.example.find().readPref('primary')

     

  • primaryPreferredprimaryPreferred 読み込み設定を指定すると、通常のオペレーションでは読み込みがプライマリインスタンスにルーティングされます。プライマリフェイルオーバーが発生した場合、クライアントはレプリカにリクエストをルーティングします。primaryPreferred 読み込み設定では、通常のオペレーションで書き込み後の読み込み整合性と、フェイルオーバーイベント中の結果整合性のある読み込みが得られます。primaryPreferred 読み込み設定は、読み込みスケーリングよりも書き込み後の読み込み整合性を優先するが、それでも高可用性が必要であるユースケースに適しています。

    次の例では、primaryPreferred 読み込み設定を指定します。

    db.example.find().readPref('primaryPreferred')

     

  • secondarysecondary 読み込み設定を指定すると、読み込みはレプリカのみにルーティングされ、プライマリインスタンスにルーティングされることはありません。クラスター内のレプリカインスタンスがない場合、読み込みリクエストは失敗します。secondary 読み込み設定では、結果整合性のある読み込みが得られ、高可用性および書き込み後の読み込み整合性よりもプライマリインスタンスの書き込みスループットを優先するユースケースに適しています。

    次の例では、secondary 読み込み設定を指定します。

    db.example.find().readPref('secondary')

     

  • secondaryPreferredsecondaryPreferred 読み込み設定を指定すると、1 つ以上のレプリカがアクティブになったときに、読み込みはリードレプリカにルーティングされます。クラスター内にアクティブなレプリカインスタンスがない場合、読み込みリクエストはプライマリインスタンスにルーティングされます。secondaryPreferred 読み込み設定では、読み取りがリードレプリカによって対応されたときに、結果整合性のある読み込みが得られます。これにより、読み込みがプライマリインスタンスによって処理されたときに (フェイルオーバーイベントがなければ)、書き込み後の読み込み整合性が得られます。secondaryPreferred 読み込み設定は、読み込みスケーリングや高可用性よりも書き込み後の読み込み整合性を優先するユースケースに適しています。

    次の例では、secondaryPreferred 読み込み設定を指定します。

    db.example.find().readPref('secondaryPreferred')

     

  • nearestnearest 読み込み設定を指定すると、クライアントと Amazon DocumentDB クラスター内のすべてのインスタンス間で測定されたレイテンシーのみに基づいて、読み込みがルーティングされます。nearest 読み込み設定では、読み取りがリードレプリカによって対応されたときに、結果整合性のある読み込みが得られます。これにより、読み込みがプライマリインスタンスによって処理されたときに (フェイルオーバーイベントがなければ)、書き込み後の読み込み整合性が得られます。nearest 読み込み設定は、書き込み後の読み込み整合性と読み込みスケーリングよりも、可能な限り低い読み込みレイテンシーと高可用性の達成を優先するユースケースに適しています。

    次の例では、nearest 読み込み設定を指定します。

    db.example.find().readPref('nearest')

高可用性

Amazon DocumentDB は、レプリカをプライマリインスタンスのフェイルオーバーターゲットとして使用して、可用性の高いクラスター設定をサポートします。プライマリインスタンスが失敗すると、Amazon DocumentDB レプリカが新しいプライマリとして昇格します。ここでは、プライマリインスタンスに対して行われた読み込み要求と書き込み要求が失敗して例外が発生するときに、短時間の中断が発生します。

Amazon DocumentDB クラスターにレプリカが含まれていない場合は、障害の発生時にプライマリインスタンスが再作成されます。ただし、Amazon DocumentDB レプリカを昇格すると、プライマリインスタンスを再起動するよりもより高速になります。したがって、1 つ以上の Amazon DocumentDB レプリカをフェイルオーバーターゲットとして作成することが推奨されます。

フェイルオーバーとして使用することを目的としたレプリカは、プライマリインスタンスと同じインスタンスのものである必要があります。これらは、プライマリとは別のアベイラビリティーゾーンにプロビジョニングする必要があります。フェイルオーバーターゲットとして推奨されるレプリカを制御できます。高可用性のための Amazon DocumentDB の設定に関するベストプラクティスについては、「Amazon DocumentDB クラスターの耐障害性について」を参照してください。

読み取りのスケーリング

Amazon DocumentDB レプリカは、読み取りスケーリングに適しています。これらは、クラスターボリュームでの読み取りオペレーション専用です。つまり、レプリカは書き込みを処理しません。データのレプリケーションは、インスタンス間ではなくクラスターボリューム内で行われます。したがって、各レプリカのリソースはクエリの処理専用となり、複製およびデータの書き込み向けではありません。

アプリケーションがより多くの読み込みキャパシティーを必要とする場合、すぐにクラスターにレプリカを追加できます (通常は 10 分未満)。読み込みキャパシティー要件が減ったら、不要なレプリカを削除できます。Amazon DocumentDB レプリカを使用すると、必要な読み込みキャパシティーのみのお支払いで済みます。

Amazon DocumentDB は、読み込み設定オプションの使用を通じて、クライアント側の読み込みスケーリングをサポートします。詳細については、「Amazon DocumentDB 読み込み設定」を参照してください。

TTL 削除

バックグラウンドプロセスによって達成される TTL インデックスエリアからの削除は、特定の期間内に保証されるものではなく、ベストエフォートです。インスタンスサイズ、インスタンスリソースの使用率、ドキュメントサイズ、全体的なスループットなどの要因は、TTL 削除のタイミングに影響を与える可能性があります。

TTL モニタがドキュメントを削除すると、削除ごとに IO コストが発生するため、請求が増加します。スループットおよび TTL 削除のレートが増加した場合、IO 使用量が増加するため、請求の増加が予想されます。

TTL インデックスを使用して不要になったドキュメントを削除する代わりに、時間に基づいてドキュメントをコレクションにセグメント化し、ドキュメントが不要になったときにそれらのコレクションを削除することができます。データ取り込みレートに応じて、1 日または週に 1 つのコレクションを作成できます。これらのコレクションを削除しても IO コストは発生せず、TTL インデックスを使用するよりもコスト効率が大幅に向上します。