Amazon DocumentDB サーバーレスの仕組み - Amazon DocumentDB

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

Amazon DocumentDB サーバーレスの仕組み

概要

Amazon DocumentDB サーバーレスは、最も要求の厳しい、変動性の高いワークロードに適しています。用途の例としては、データベースの使用負荷が短時間の間だけ増大し、その後に軽いアクティビティが長時間続くか、またはアクティビティがまったく発生しなくなるケースが挙げられます。例えば、定期的に販売促進イベントを行う小売り、ゲーム、スポーツなどのウェブサイト、必要なときにレポートを作成するレポートデータベースなどがあります。また、開発やテスト環境、また、新しいアプリケーションでは急激に利用が増加することがあります。他にも多くが考えられますが、このようなケースに対してプロビジョニングされたモデルを使用しても、事前に容量を正しく指定できるとは限りません。また、過剰なプロビジョニングを行い、使用しない容量が生じた場合には、コストが高くなる可能性もあります。

対照的に、DocumentDB でプロビジョニングされたクラスターは安定したワークロードに適しています。プロビジョニングされたクラスターでは、事前定義された量のメモリ、CPU 電源、I/O 帯域幅などを持つインスタンスクラスを選択します。ワークロードが変更された場合、ライターとリーダーのインスタンスクラスを手動で変更します。プロビジョン済みモデルは、消費パターンが予想され、事前に容量を調整できる場合に有効です。クラスター内のライターとリーダーのインスタンスクラスを変更しながら、短時間の停止の発生が許容される場合は有効に機能します。

DocumentDB サーバーレスは、すぐにスケーラブルなサーバーレスクラスターをサポートするためにゼロから設計されています。DocumentDB サーバーレスは、プロビジョニングされたライターやリーダーと同じレベルのセキュリティと分離を提供するように設計されています。このような側面は、マルチテナントのサーバーレスクラウド環境では非常に重要です。データベースのワークロードの変更に迅速に対応できるように、動的スケーリングメカニズムにはオーバーヘッドがほとんどありません。また、処理需要の劇的な増加に対応するための、十分な能力も備わっています。

DocumentDB サーバーレスを使用すると、ライターとリーダーごとに特定のデータベース容量にロックされることなく、DocumentDB クラスターを作成できます。お客様は、最小容量と最大容量の範囲を指定します。DocumentDB は、その容量範囲内のクラスター内の各 DocumentDB サーバーレスライターまたはリーダーをスケーリングします。各ライターまたはリーダーによって動的にスケーリングできるマルチ AZ クラスターを使用することで、動的スケーリングと高可用性を活用できます。

DocumentDB サーバーレスは、最小容量と最大容量の仕様に基づいてデータベースリソースを自動的にスケーリングします。ほとんどのスケーリングイベントのオペレーションは、ライターまたはリーダーが同じホスト上で保持されるため、高速にスケーリングします。まれにDocumentDB サーバーレスライターまたはリーダーがホスト間で移動された場合、DocumentDB サーバーレスは接続を自動的に管理します。データベースクライアントアプリケーションのコードやデータベースの接続文字列を変更する必要はありません。

DocumentDB サーバーレスでは、プロビジョニングされたクラスターと同様に、ストレージ容量とコンピューティング容量は別々になります。DocumentDB サーバーレスキャパシティとスケーリングを参照すると、常にコンピューティングキャパシティが増減します。したがって、CPU やメモリの容量がスケールダウンしても、クラスターには数テラバイトのデータを格納できます。

プロビジョニングやデータベースサーバーを管理する代わりに、データベース容量を指定します。各 DocumentDB サーバーレスライターまたはリーダーの実際の容量は、ワークロードに応じて時間の経過とともに変化します。このメカニズムの詳細については、「Amazon DocumentDB サーバーレススケーリング」を参照してください。

Amazon DocumentDB クラスターの設定

Amazon DocumentDB クラスターごとに、DocumentDB サーバーレスキャパシティ、プロビジョニングされたキャパシティ、またはその両方の任意の組み合わせを選択できます。

混合設定クラスターと呼ばれる、DocumentDB サーバーレスキャパシティとプロビジョニングされたキャパシティの両方を含むクラスターを設定できます。たとえば、DocumentDB サーバーレスライターで使用できる以上の読み取り/書き込み容量が必要であるとします。この場合、非常に大きいプロビジョン済みライターを使用してクラスターをセットアップできます。その後も、リーダーに DocumentDB サーバーレスを使用できます。また、クラスターの書き込みワークロードは変化しているが、読み取りワークロードは安定しているとします。この場合、DocumentDB サーバーレスライターと 1 つ以上のプロビジョニングされたリーダーを使用してクラスターを設定できます。

すべての容量が DocumentDB サーバーレスによって管理されるクラスターを設定することもできます。これを行うには、新しいクラスターを作成し、最初から DocumentDB サーバーレスを使用できます。または、既存のクラスターのすべてのプロビジョニングされた容量を DocumentDB サーバーレスに置き換えることができます。DocumentDB サーバーレスで新しいクラスターを作成する手順、または既存のクラスターを DocumentDB サーバーレスに切り替える手順については、Amazon DocumentDB サーバーレスを使用するクラスターの作成「」および「」を参照してくださいAmazon DocumentDB サーバーレスへの移行

クラスター内で DocumentDB サーバーレスをまったく使用しない場合、クラスター内のすべてのライターとリーダーがプロビジョニングされます。これは、ほとんどのユーザーが慣れている最も一般的なタイプのクラスターです。プロビジョン済み容量は一定です。料金は比較的簡単に予測できます。ただし、必要な容量を事前に予測する必要があります。場合によっては、予測が不正確だったり、容量のニーズが変わったりすることもあります。このような場合、クラスターのプロビジョニング不足 (希望よりも遅い) またはプロビジョニング過剰 (希望よりも高価) になる可能性があります。

Amazon DocumentDB サーバーレススケーリング容量

Amazon DocumentDB サーバーレスの測定単位は、DocumentDB キャパシティーユニット (DCU) です。DocumentDB サーバーレススケーリング容量は、プロビジョニングされたクラスターに使用するインスタンスクラスに関連付けられていません。

各 DCU は、約 2 ギビバイト (GiB) のメモリ、対応する CPU、ネットワークの組み合わせです。この単位を使用して、データベース容量の範囲を指定します。ServerlessDatabaseCapacity および DCUUtilization CloudWatch メトリクスは、データベースが実際に使用している容量と、その容量が指定された範囲内のどこにあるかを判断するのに役立ちます。

いつでも、各 DocumentDB サーバーレスライターまたはリーダーには容量があります。容量は DCUs。容量は、ライターまたはリーダーがスケーリングするごとに増減します。この値は毎秒測定されます。DocumentDB サーバーレスを使用するクラスターごとに、容量範囲を定義します。各 DocumentDB サーバーレスライターまたはリーダーがスケーリングできる最小容量値と最大容量値です。容量範囲は、クラスター内の DocumentDB サーバーレスライターまたはリーダーごとに同じです。各 DocumentDB サーバーレスライターまたはリーダーには独自の容量があり、その範囲内のどこかに落ちます。

DocumentDB サーバーレスは、容量範囲が 0.5~256 DCU の DocumentDB 5.0.0 以降でサポートされています。 DCUs

定義できる DocumentDB サーバーレスの最小容量は 0.5 DCUsです。サポートされる最大容量値以下の場合は、大きい数値を指定できます。最小容量を少数に設定すると、負荷の低いクラスターは最小限のコンピューティングリソースを消費できます。同時に、直ちに接続を受け入れ、ビジーになったらスケールアップする準備ができています。

最小値を、各ライターまたはリーダーがバッファプールにアプリケーションのワーキングセットを保持できるようにする値に設定することをお勧めします。これにより、アイドル中にバッファプールの内容が破棄されることはありません。スケーリング容量範囲を選択する際のすべての考慮事項については、「」を参照してくださいDocumentDB サーバーレスクラスターのスケーリング容量範囲の選択

マルチ AZ 配置でのリーダーの設定方法に応じて、その容量はライターの容量に関連付けることも、独立させることもできます。これを行う方法については、「サーバーレスリーダーの昇格階層の表示と変更」を参照してください。

DocumentDB サーバーレスのモニタリングには、クラスター内のライターとリーダーの容量値を経時的に測定する必要があります。データベースが最小容量にスケールダウンしない場合は、最小値の調整やデータベースアプリケーションの最適化などのアクションを実行できます。データベースが常に最大容量に達している場合は、最大容量を増やすなどのアクションを実行できます。また、データベースアプリケーションを最適化し、クエリのロードをより多くのリーダーに分散させることもできます。

DocumentDB サーバーレス容量の料金は、DCU 時間単位で測定されます。DocumentDB サーバーレス料金の計算方法については、Amazon DocumentDB の料金」を参照してください。クラスター内のライターとリーダーの合計数が n であるとします。この場合、クラスターはデータベースオペレーションを実行していないときに約 n x 最小 DCUs を消費します。Amazon DocumentDB 自体は、少量の負荷を引き起こすモニタリングまたはメンテナンスオペレーションを実行する場合があります。データベースがフルキャパシティで実行されている場合、そのクラスターは n x 最大 DCUsを消費しません。

適切な最小 DCU 値と最大 DCU 値の選択の詳細については、「」を参照してくださいDocumentDB サーバーレスクラスターのスケーリング容量範囲の選択。指定する最小 DCU 値と最大 DCU 値は、一部の Amazon DocumentDB インスタンスの制限にも影響します。容量範囲とインスタンスの制限間の相互作用の詳細については、「」を参照してくださいAmazon DocumentDB サーバーレスインスタンスの制限

Amazon DocumentDB サーバーレススケーリング

DocumentDB サーバーレスライターまたはリーダーごとに、Amazon DocumentDB は CPU、メモリ、ネットワークなどのリソースの使用率を継続的に追跡します。これらの測定値を総称してロードと呼びます。ロードには、アプリケーションによって実行されるデータベースオペレーションが含まれます。また、データベースサーバーと Amazon DocumentDB 管理タスクのバックグラウンド処理も含まれます。容量がこれらのいずれかによって制約されている場合、DocumentDB サーバーレスはスケールアップします。DocumentDB サーバーレスは、そうすることで解決できるパフォーマンスの問題を検出するとスケールアップします。「」の手順を使用して、リソース使用率と DocumentDB サーバーレススケーリングへの影響をモニタリングできますAmazon DocumentDB サーバーレスのモニタリング

負荷は、クラスター内のライターとリーダーによって異なる場合があります。ライターは書き込みオペレーションを処理し、クラスターボリュームへのすべてのデータ変更を実行します。閲覧者は読み取り専用リクエストを処理できます。

スケーリングは、データベースの DocumentDB サーバーレス容量を増減するオペレーションです。DocumentDB サーバーレスでは、各ライターとリーダーの現在の容量値は DCUs。DocumentDB サーバーレスは、現在の容量が低すぎて負荷を処理できない場合、ライターまたはリーダーをより高い容量にスケールアップします。ライターまたはリーダーの現在の容量が必要以上に大きい場合、小さい容量にスケールダウンします。

DocumentDB サーバーレスは、容量を段階的に増やすことができます。ワークロードの需要がライターまたはリーダーの現在のデータベース容量に達し始めると、DocumentDB サーバーレスはそのライターまたはリーダーの DCUs の数を増やします。DocumentDB サーバーレスは、消費されるリソースに最適なパフォーマンスを提供するために必要な増分で容量をスケーリングします。スケーリングは、0.5 DCUs という小さな増分で行われます。現在の容量が大きいほど、スケーリングの増分が大きくなり、そのため、スケーリングがより高速になります。

DocumentDB サーバーレススケーリングは非常に頻繁で、きめ細かで、中断されないため、 で個別のイベントは発生しません AWS Management Console。代わりに、 serverlessDatabaseCapacityや などの Amazon CloudWatch メトリクスを測定しDCUUtilization、最小値、最大値、平均値を経時的に追跡できます。DocumentDB サーバーレスのモニタリングの詳細については、「」を参照してくださいAmazon DocumentDB サーバーレスのモニタリング

スケールアップまたはスケールダウンは、以下が原因で発生する可能性があります。

  • メモリ使用率

  • CPU 使用率

  • ネットワーク使用率

  • ストレージの使用率

DocumentDB サーバーレスインスタンスのスケールアップ/スケールダウンの原因をモニタリングできます。詳細については、「Amazon DocumentDB サーバーレスのモニタリング」を参照してください。

リーダースケールは、関連するライターと同時に作成するか、ライターから独立して作成するかを選択できます。これを行うには、そのリーダーの昇格階層を指定します。

  • DocumentDB サーバーレスリーダーは、昇格階層 0 および 1 で、ライターと同時にスケーリングします。このスケーリング動作によって、優先階層 0 および 1 のリーダーは可用性に最適です。これは、フェイルオーバー時にライターからワークロードを引き継ぐために、常に適切な容量に合わせてサイズ調整されているためです。

  • 昇格階層 2 ~ 15 のリーダーは、ライターとは独立してスケーリングできます。各リーダーは、クラスターに指定した最小および最大 DCU 値内に留まります。リーダーが関連するライター DB とは独立してスケーリングすると、ライターが大量のトランザクションを処理し続けている間に、リーダーがアイドル状態になってスケールダウンする場合があります。下位の昇格階層で他のリーダーが利用できない場合でも、フェイルオーバーターゲットとして利用できます。ただし、ライターに昇格した場合は、ライターのワークロード全体を処理するためにスケールアップが必要になる場合があります。

サーバーレスインスタンスの昇格階層の表示と変更の詳細については、「」を参照してくださいサーバーレスリーダーの昇格階層の表示と変更

DocumentDB サーバーレススケーリングは、データベース接続が開いている間、トランザクションが進行中などに発生する可能性があります。DocumentDB サーバーレスは、クワイエットポイントがスケーリングを開始するまで待機しません。スケーリングによって、進行中のデータベースオペレーションが中断されることはありません。

ワークロードで 1 つのライターと 1 つのリーダーで使用できる以上の読み取り容量が必要な場合は、複数の DocumentDB サーバーレスリーダーをクラスターに追加できます。各 DocumentDB サーバーレスリーダーは、クラスターに指定した最小容量値と最大容量値の範囲内でスケールできます。クラスターのリーダーエンドポイントを使用して、読み取り専用のセッションをリーダーに送信し、ライターのロードを軽減できます。

DocumentDB サーバーレスがスケーリングを実行するかどうか、および起動後にスケーリングが発生する速度も、クラスターの最小 DCU 設定と最大 DCU 設定によって異なります。さらに、リーダーとライターが一緒にスケーリングするように設定されているか、ライターとは独立してスケーリングするように設定されているかによって異なります。スケーリング設定の詳細については、「」を参照してくださいAmazon DocumentDB サーバーレススケーリング設定

アイドル状態 (0.5 DCUs)

Amazon DocumentDB サーバーレスライターまたはリーダーがアイドル状態のとき、クラスターの MinCapacity が 0.5 に設定されている場合、DocumentDB サーバーレスインスタンスはアイドル状態の 0.5 DCUs へのスケールダウンをサポートします。

アイドル状態では、DocumentDB サーバーレスインスタンスには、ほとんどの本稼働ワークロードをサポートするのに十分な CPU コンピューティング容量がありませんが、新しいワークロードをサポートするために迅速にスケールアップする準備ができています。アイドル状態では、DocumentDB サーバーレスインスタンスには通常、少なくとも 1.0~2.5 DCUsが必要です。したがって、DocumentDB サーバーレスインスタンスがアイドル状態から非アイドル状態にスケールアップすると、1.0~2.5 DCUs (または低い場合は MaxCapacity の値) に直接スケールアップされます。

アイドル状態のときに 0.5 DCUs へのスケールダウンをサポートするために、MinCapacity が 1.0 DCUs。MinCapacity 設定によって制限がどのように影響を受けるかの詳細については、「」を参照してくださいAmazon DocumentDB サーバーレスインスタンスの制限