

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

# Amazon DocumentDB Serverless の使用
<a name="docdb-serverless"></a>

Amazon DocumentDB Serverless は、アプリケーションの需要に基づいて Amazon DocumentDB データベースの容量を動的に調整するプロセスを自動化するオンデマンドの自動スケーリング設定です。クラスターが消費するリソースに対してのみ課金されます。このように、DocumentDB サーバーレスによって予算内に収め、使用しないコンピュータリソースに対して料金を支払うことを避けるのに役立ちます。

この種の自動化は、マルチテナントデータベース、分散型データベース、開発、テストシステムなど、要求が厳しく予測不可能なワークロードがある環境において特に有効です。

**Topics**
+ [サーバーレスユースケース](#docdb-serverless-use-cases)
+ [Amazon DocumentDB Serverless の利点](#docdb-serverless-advantages)
+ [サーバーレスの仕組み](docdb-serverless-how-it-works.md)
+ [サーバーレスの要件と制限](docdb-serverless-limitations.md)
+ [サーバーレスを使用するクラスターの作成](docdb-serverless-create-cluster.md)
+ [サーバーレスへの移行](docdb-serverless-migrating.md)
+ [サーバーレスの管理](docdb-serverless-managing.md)
+ [サーバーレスインスタンスの制限](docdb-serverless-instance-limits.md)
+ [サーバーレススケーリング設定](docdb-serverless-scaling-config.md)
+ [サーバーレスのモニタリング](docdb-serverless-monitoring.md)

## DocumentDB サーバーレスのユースケース
<a name="docdb-serverless-use-cases"></a>

Amazon DocumentDB プロビジョニング済みクラスターと DocumentDB サーバーレスはどちらも、開発環境やテスト環境から、高いスケールと可用性を必要とする最も要求の厳しいビジネスクリティカルなアプリケーションまで、さまざまなタイプのデータベースワークロードをサポートします。ただし、DocumentDB サーバーレスは、お客様のワークロードに別のディメンションを追加します。つまり、予測不可能なワークロードを持つウェブサイトやアプリケーションをサポートする機能です。

DocumentDB サーバーレスは、以下のユースケースに特に役立ちます。
+ **変動するワークロード** - 突然で予測不可能なアクティビティの増加が発生するようなワークロードを実行している場合。雨が降り出したときにアクティビティが急増 (サージ) するトラフィックサイトなどが該当します。別のケースとして、販売や特別なプロモーションを行うことで、トラフィックが増加する e コマースサイトがあります。DocumentDB サーバーレスでは、アプリケーションのピーク時に必要なロードに合わせて、データベースの容量がオートスケーリングされ、アクティビティのサージが終了した時点でスケールダウンして元に戻ります。DocumentDB サーバーレスを導入することで、ピーク容量や平均容量に合わせてプロビジョニングする必要はなくなります。最悪の状況に対応するために容量の上限を指定でき、その容量は必要な場合以外使用されません。
  + DocumentDB サーバーレスのスケーリングの詳細度は、データベースのニーズに合わせて容量を細かく調整しやすくします。プロビジョン済みクラスターの場合、スケールアップには、完全に新しいインスタンスを追加する必要があります。DocumentDB サーバーレスは、必要な容量が少ししかない場合に DCU の半分を追加できます。ワークロードの増加に対応するために追加が必要な容量によって、0.5、1、1.5、2、または半分の DCU を追加できます。また、ワークロードが減少し、その容量が不要になった場合、0.5、1、1.5、2、または追加した半分の DCU を削除できます。
+ **マルチテナントアプリケーション** — DocumentDB サーバーレスでは、フリート内の各アプリケーションのデータベース容量を個別に管理する必要はありません。DocumentDB サーバーレスは、個々のデータベース容量を管理します。
  + テナントごとにクラスターを作成できます。これにより、クローンやスナップショットリストアなどの機能を使用して、テナントごとに高可用性とディザスタリカバリを強化できます。
  + 各テナントには、時間帯、時期、プロモーションイベントなどに応じて、繁忙期と休止期間が設定される場合があります。各クラスターには、広い範囲で容量を指定できます。これにより、アクティビティの少ないクラスターではインスタンスの料金を最小限に抑えることができます。どのクラスターでも、アクティビティの高い期間に対応できるように迅速にスケールアップできます。
+ **新しいアプリケーション** — 現在デプロイ中で、必要とされるインスタンスサイズが明確でない、新しいアプリケーション。DocumentDB サーバーレスを使用して、1 つまたは複数のインスタンスでクラスターを設定し、アプリケーションの容量の要件に応じてデータベースをオートスケーリングできます。
+ **複合用途のアプリケーション** — オンライントランザクション処理 (OLTP) アプリケーションを使用しているが、クエリトラフィックが定期的に急増することがある場合。クラスター内の DocumentDB サーバーレスインスタンスに昇格階層を指定することで、リーダーインスタンスがライターインスタンスと独立してスケーリングして、追加のロードを処理できるようにクラスターを構成できます。使用率の急増が収まったら、リーダーインスタンスによってライターインスタンスの容量に合わせてスケールダウンします。
+ **容量計画** — 通常、クラスター内のすべてのインスタンスのインスタンスクラスを変更して、データベース容量を調整するか、ワークロードに最適なデータベース容量を検証します。DocumentDB サーバーレスでは、この管理オーバーヘッドを回避できます。ワークロードを実行し、インスタンスが実際にスケールする量をチェックすることで、適切な最小容量と最大容量を決定できます。
  + 既存のインスタンスを、プロビジョン済みから DocumentDB サーバーレスに、または DocumentDB サーバーレスからプロビジョン済みに変更できます。このような場合、新しいクラスターや新しいインスタンスを作成する必要はありません。
+ **開発とテスト** — 最も要求の厳しいアプリケーションの実行に加えて、開発環境やテスト環境にも DocumentDB サーバーレスを使用できます。DocumentDB サーバーレスにより、バースト db.t\$1 インスタンスクラスを使用する代わりに、最小容量が小さいインスタンスを作成できます。最大容量を大きく設定することで、これらのインスタンスのメモリが不足せず、大量のワークロードを実行できます。データベースが使用されていない場合は、すべてのインスタンスがスケールダウンすることで、不要な料金が発生しないようにします。

### 既存のプロビジョニングされたワークロードに Amazon DocumentDB Serverless を使用する
<a name="docdb-serverles-provisioned-workloads"></a>

プロビジョン済みクラスターで既に DocumentDB アプリケーションが実行されているとします。リーダーインスタンスとして、1 つまたは複数の DocumentDB サーバーレスインスタンスを追加することにより、DocumentDB サーバーレスによってアプリケーションがどのように動作するか確認できます。リーダーインスタンスのスケールアップとスケールダウンの頻度を確認できます。DocumentDB フェイルオーバーメカニズムを使用して、DocumentDB サーバーレスインスタンスをライターに昇格させ、読み取り/書き込みワークロードの処理方法を確認できます。これにより、クライアントアプリケーションが使用するエンドポイントを変更することなく、最小限のダウンタイムで切り替えが可能です。既存のクラスターを DocumentDB サーバーレスに変換する手順の詳細については、「[Amazon DocumentDB Serverless への移行](docdb-serverless-migrating.md)」を参照してください。

## Amazon DocumentDB Serverless の利点
<a name="docdb-serverless-advantages"></a>

DocumentDB サーバーレスは、可変または「スパイキー」ワークロードを対象としています。このような予測不可能なワークロードでは、データベース容量を変更するタイミングを計画するのが難しい場合があります。また、容量を迅速に変更するために、インスタンスの追加やインスタンスクラスの変更など、使い慣れたメカニズムでは十分ではない場合があります。DocumentDB サーバーレスには、このようなユースケースに役立つ以下の利点があります。
+ **プロビジョニングよりも簡単な容量管理** — DocumentDB サーバーレスは、ワークロードの変化に応じてインスタンスのサイズを計画したりインスタンスのサイズを変更したりするための労力を削減します。また、クラスター内のすべてのインスタンスの容量を一定に維持するための労力が削減されます。
+ **高アクティビティ時のスケーリングを高速かつ簡単に実行** — DocumentDB サーバーレスは、クライアントトランザクションやワークロード全体を中断することなく、必要に応じてコンピューティング性能とメモリ容量をスケーリングします。DocumentDB サーバーレスでリーダーインスタンスを使用できることで、垂直スケーリングに加え、水平スケーリングも利用できます。DocumentDB グローバルクラスターを使用する機能は、DocumentDB サーバーレス読み取りワークロードを複数の に分散できることを意味します AWS リージョン。この機能は、プロビジョン済みクラスターのスケーリングメカニズムよりも便利です。
+ **アクティビティが少ない期間におけるコスト効率** — DocumentDB サーバーレスは、インスタンスのオーバープロビジョニングを回避するのに役立ちます。DocumentDB サーバーレスは、インスタンスのスケールアップ時にリソースをきめ細かく追加します。使用したデータベースリソースに対してのみ料金を支払います。DocumentDB サーバーレスリソースの使用量は、秒単位で測定されます。これにより、インスタンスがスケールダウンすると、削減されたリソース使用量がすぐに登録されます。
+ **プロビジョニングされた機能パリティ** — DocumentDB サーバーレスですべての DocumentDB 機能を使用できます。例えば、DocumentDB サーバーレスでは、リーダーインスタンス、 AWS Identity and Access Management (IAM) データベース認証、Performance Insights を使用できます。

  特に DocumentDB サーバーレスでは、プロビジョン済みクラスターによって、以下機能を活用できます。
  + **リーダーインスタンス** — DocumentDB サーバーレスでは、リーダーインスタンスを活用して水平方向にスケーリングできます。クラスターに 1 つまたは複数のリーダーインスタンスが含まれている場合、ライターインスタンスに問題が発生した場合に、クラスターはすぐにフェイルオーバーできます。
  + **マルチ AZ クラスター** — クラスターの DocumentDB サーバーレスインスタンスは、複数のアベイラビリティーゾーン (AZ) に分散できます。マルチ AZ クラスターを設定することで、AZ 全体に影響する問題が発生するようなまれなケースでも、ビジネスの継続性を確保できます。
  + **グローバルクラスター** — DocumentDB グローバルクラスターと組み合わせて DocumentDB サーバーレスを使用すると、ディザスタリカバリ AWS リージョン の目的で、他の でクラスターの追加の読み取り専用コピーを作成できます。

# Amazon DocumentDB Serverless の仕組み
<a name="docdb-serverless-how-it-works"></a>

**Topics**
+ [概要:](#docdb-serverlerss-overviewn)
+ [Amazon DocumentDB クラスターの設定](#docdb-serverlerss-configuration)
+ [Amazon DocumentDB Serverless スケーリング容量](#docdb-serverless-scaling-capacity)
+ [Amazon DocumentDB Serverless スケーリング](#docdb-serverless-scaling)
+ [アイドル状態 (0.5 DCU)](#docdb-serverlerss-idle-state)

## 概要:
<a name="docdb-serverlerss-overviewn"></a>

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

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

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

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

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

DocumentDB サーバーレスでは、プロビジョン済みクラスターと同様に、ストレージ容量とコンピューティング性能は別々になっています。DocumentDB サーバーレス容量やスケーリングに言及した場合、増減するのは常にコンピューティング性能です。したがって、CPU やメモリの容量がスケールダウンしても、クラスターには数テラバイトのデータを格納できます。

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

## Amazon DocumentDB クラスターの設定
<a name="docdb-serverlerss-configuration"></a>

Amazon DocumentDB サーバーレスクラスターごとに、DocumentDB サーバーレスの容量およびプロビジョン済み容量、またはその両方を自由に組み合わせて選択できます。

混在設定クラスターと呼ばれる DocumentDB サーバーレスとプロビジョン済み容量の両方を含むクラスターを設定できます。例えば、DocumentDB サーバーレスライターで利用可能な容量よりも、多くの読み取り/書き込み容量が必要だとします。この場合、非常に大きいプロビジョン済みライターを使用してクラスターをセットアップできます。その後も、リーダーに DocumentDB サーバーレスを使用できます。また、クラスターの書き込みワークロードは変化しているが、読み取りワークロードは安定しているとします。この場合、クラスターに 1 つの DocumentDB サーバーレスライターと 1 つまたは複数のプロビジョン済みリーダーをセットアップできます。

DocumentDB サーバーレスによってすべての容量が管理されるクラスターをセットアップすることもできます。これを行うには、新しいクラスターを作成し、最初から DocumentDB サーバーレスを使用します。または、DocumentDB サーバーレスで既存のクラスター内でプロビジョン済みのすべての容量を置き換えることができます。DocumentDB サーバーレスで新しいクラスターを作成するか、または既存のクラスターを DocumentDB サーバーレスに切り替える手順の詳細については、「[Amazon DocumentDB Serverless を使用するクラスターの作成](docdb-serverless-create-cluster.md)」および「[Amazon DocumentDB Serverless への移行](docdb-serverless-migrating.md)」を参照してください。

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

## Amazon DocumentDB Serverless スケーリング容量
<a name="docdb-serverless-scaling-capacity"></a>

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

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

いつどんな場合でも、各 DocumentDB サーバーレスライターまたはリーダーは容量を持っています。容量は、DCU を表す浮動小数点数です。容量は、ライターまたはリーダーがスケーリングするごとに増減します。この値は毎秒測定されます。DocumentDB サーバーレスを使用する予定の各クラスターに、各 DocumentDB サーバーレスライターまたはリーダーの間でスケーリングできる最小容量および最大容量の値である容量範囲を定義します。クラスターの各 DocumentDB サーバーレスライターまたはリーダーでは、容量範囲は同じです。各 DocumentDB サーバーレスライターまたはリーダーは、それぞれの範囲内の容量を持っています。

DocumentDB サーバーレスは、容量範囲が 0.5～256 DCUs の DocumentDB 5.0.0 でのみサポートされています (8.0 ではサポートされていません）。

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

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

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

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

DocumentDB サーバーレス容量の料金は DCU 時間で測定されます。DocumentDB サーバーレス料金の計算方法については、「[Amazon DocumentDB の料金](https://aws.amazon.com//documentdb/pricing)」を参照してください。クラスター内のライターとリーダーの合計数が n であるとします。この場合、クラスターは、データベースオペレーションを実行していないときにおよそ n x 最小 DCU を消費します。Amazon DocumentDB 自体がモニタリングやメンテナンスオペレーションを行うことで、わずかなロードがかかることがあります。そのクラスターでは、データベースを全容量で実行しても n x 最大 DCU を超える消費はしません。

適切な最小と最大の DCU 値の選択の詳細については、「[DocumentDB サーバーレスクラスターのスケーリング容量範囲の選択](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)」を参照してください。指定する最小と最大の DCU 値は、一部の Amazon DocumentDB インスタンスの制限にも影響します。容量範囲とインスタンスの制限間のやり取りの詳細については、「[Amazon DocumentDB Serverless インスタンスの制限](docdb-serverless-instance-limits.md)」を参照してください。

## Amazon DocumentDB Serverless スケーリング
<a name="docdb-serverless-scaling"></a>

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

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

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

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

DocumentDB サーバーレスのスケーリングは高頻度、詳細、無停止であるため、 AWS マネジメントコンソールで離散的なイベントが発生することはありません。代わりに、`serverlessDatabaseCapacity` や `DCUUtilization` のような Amazon CloudWatch メトリクスを測定し、その最小値、最大値、平均値を経時的に追跡できます。DocumentDB サーバーレスのモニタリングの詳細については、「[Amazon DocumentDB Serverless のモニタリング](docdb-serverless-monitoring.md)」を参照してください。

スケールアップまたはスケールダウンは、以下が原因で発生する可能性があります。
+ メモリ使用率
+ CPU 使用率
+ ネットワーク使用率
+ ストレージの使用率

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

リーダースケールは、関連するライターと同時に作成するか、ライターから独立して作成するかを選択できます。これを行うには、そのリーダーの昇格階層を指定します。
+ 昇格階層 0 および 1 の DocumentDB サーバーレスのリーダーは、ライターと同じタイミングでスケーリングします。このスケーリング動作によって、優先階層 0 および 1 のリーダーは可用性に最適です。これは、フェイルオーバー時にライターからワークロードを引き継ぐために、常に適切な容量に合わせてサイズ調整されているためです。
+ 昇格階層 2～15 のリーダーは、ライターとは独立してスケーリングできます。各リーダーは、クラスターに指定した DCU の最小値と最大値の範囲内に収まります。リーダーが関連するライター DB とは独立してスケーリングすると、ライターが大量のトランザクションを処理し続けている間に、リーダーがアイドル状態になってスケールダウンする場合があります。下位の昇格階層で他のリーダーが利用できない場合でも、フェイルオーバーターゲットとして利用できます。ただし、ライターに昇格した場合は、ライターのワークロード全体を処理するためにスケールアップが必要になる場合があります。

サーバーレスインスタンスの昇格階層の表示と変更の詳細については、「[サーバーレスリーダーの昇格階層の表示と変更](docdb-serverless-managing.md#docdb-serverless-promo-tier)」を参照してください。

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

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

DocumentDB サーバーレスがスケーリングを実行するどうか、また、スケーリング開始後の速度は、クラスターの最小および最大 DCU 設定によって異なります。さらに、リーダーとライターが一緒にスケーリングするように設定されているか、ライターとは独立してスケーリングするように設定されているかによって異なります。スケーリング設定の詳細については、「[Amazon DocumentDB Serverless スケーリング設定](docdb-serverless-scaling-config.md)」を参照してください。

## アイドル状態 (0.5 DCU)
<a name="docdb-serverlerss-idle-state"></a>

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

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

アイドル状態のときに 0.5 DCU へのスケールダウンをサポートするために、MinCapacity が 1.0 DCU 以下に設定されている場合、インスタンス制限には上限が設定されます。MinCapacity 設定によって制限がどのように影響を受けるかの詳細については、「[Amazon DocumentDB Serverless インスタンスの制限](docdb-serverless-instance-limits.md)」を参照してください。

# DocumentDB サーバーレスの要件と制限
<a name="docdb-serverless-limitations"></a>

## 機能の要件
<a name="w2aac41c15b3"></a>

### リージョンの可用性
<a name="w2aac41c15b3b3"></a>

Amazon DocumentDB Serverless インスタンスは、次のリージョンで利用できます。

次の AWS CLI コマンドを使用して、特定のリージョンで提供されている正確な DocumentDB サーバーレスインスタンスオプションを確認できます。

```
aws docdb describe-orderable-db-instance-options \
        --region my_region \
        --db-instance-class db.serverless \
        --engine docdb
```

### エンジンバージョンの可用性
<a name="w2aac41c15b3b5"></a>

DocumentDB サーバーレスは、Amazon DocumentDB 5.0.0 エンジンバージョンでのみサポートされています。エンジンバージョン 3.6、4.0、または 8.0 では使用できません。

**注記**  
DocumentDB サーバーレスは、5.0.0 の新しいパッチバージョンでのみサポートされています。クラスターが最新のエンジンパッチバージョンに更新されていることを確認してください。「Amazon DocumentDB クラスターのメンテナンス」の詳細については、「[Amazon DocumentDB のメンテナンス](db-instance-maintain.md)」を参照してください

### クラスターの設定
<a name="w2aac41c15b3b7"></a>

Amazon DocumentDB Serverless インスタンスを Amazon DocumentDB クラスターに追加する前に、クラスターに `ServerlessV2ScalingConfiguration` パラメータも設定されている必要があります。これは、クラスター内の DocumentDB サーバーレスインスタンスの容量範囲を定義します。スケーリング設定の詳細については、「[Amazon DocumentDB Serverless スケーリング設定](docdb-serverless-scaling-config.md)」を参照してください。

### 特定の Amazon DocumentDB 機能の最小スケーリング容量範囲設定
<a name="w2aac41c15b3b9"></a>

Amazon DocumentDB 機能の一部は DocumentDB サーバーレスで動作するものもありますが、容量範囲が特定のワークロードの機能に必要なメモリに必要な容量よりも小さい場合は、問題が発生する可能性があります。その場合、通常よりもデータベースのパフォーマンスが低下するか、メモリ不足のエラーが発生する可能性があります。

以下の機能では、最適なオペレーションのためにより高い `MinCapacity` および/または `MaxCapacity` 値を設定する必要があります。
+ Performance Insights
+ グローバルクラスター (プライマリにのみ適用 AWS リージョン)
+ データボリュームが大きいクラスターでのサーバーレスインスタンスの作成

  これには、クラスター復元の一部としてのサーバーレスインスタンスの作成が含まれます。

適切な容量範囲の設定に関する推奨事項 (この機能を使用している場合) については、「[DocumentDB サーバーレスクラスターのスケーリング容量範囲の選択](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)」を参照してください。容量範囲の設定が間違っているためにデータベースでメモリ不足のエラーが発生した場合のトラブルシューティング情報については、「[メモリ不足エラーを回避する](docdb-serverless-scaling-config.md#docdb-serverless-scaling-mem-errors)」を参照してください。

# Amazon DocumentDB Serverless を使用するクラスターの作成
<a name="docdb-serverless-create-cluster"></a>



## Amazon DocumentDB Serverless クラスターの作成
<a name="w2aac41c17b5"></a>

Amazon DocumentDB Serverless では、クラスターはプロビジョン済みクラスターと交換可能です。一部のインスタンスがサーバーレスを使用し、一部のインスタンスがプロビジョニングされているクラスターを持つことができます。

目的のリージョンとエンジンバージョンが DocumentDB サーバーレスをサポートしていることを確認します。「[DocumentDB サーバーレスの要件と制限](docdb-serverless-limitations.md)」を参照してください。

サーバーレスインスタンスを追加できる Amazon DocumentDB クラスターを作成するには、[Amazon DocumentDB クラスターの作成](db-cluster-create.md) と同じ手順に従います。唯一の違いは、`ServerlessV2ScalingConfiguration` 引数も指定する必要があることです。

`ServerlessV2ScalingConfiguration` 引数は、DocumentDB サーバーレスインスタンスのスケーリング容量範囲を指定します。これは、クラスター内のすべての DocumentDB サーバーレスインスタンスに適用される DocumentDB キャパシティユニット (DCU) の最小値と最大値で構成されます。
+ `MinCapacity` 値は、最小スケーリング容量を指定します。
+ `MaxCapacity` 値は、最大スケーリング容量を指定します。

スケーリングの詳細については、「[Amazon DocumentDB Serverless スケーリング設定](docdb-serverless-scaling-config.md)」を参照してください。

------
#### [ Using the AWS マネジメントコンソール ]

次の AWS マネジメントコンソール 設定例は、DocumentDB サーバーレスクラスターを作成する方法を示しています。

1. [AWS マネジメントコンソール](https://console.aws.amazon.com/docdb/home?region=us-east-1) にサインインし、Amazon DocumentDB コンソールを開きます。

1. ナビゲーションペインで **クラスター** を選択します。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

   **[クラスター]** テーブルが表示されます。

1. **[作成]** を選択します。

   **[Amazon DocumentDB クラスターの作成]** ページが表示されます。

1. 「Amazon DocumentDB クラスターの作成」ページの **[クラスタータイプ]** セクションで、**[インスタンスベースのクラスター]** を選択します (これはデフォルトのオプションです)。

1. **[クラスター設定]** セクションで次を行います。

   1. **[クラスター識別子]** には、**myserverlesscluster** などの一意の名称を入力します。コンソール操作では、入力方法に関係なくクラスター名のすべての文字が小文字に変換されることにご留意ください。

   1. **[エンジンバージョン]** では、**5.0.0** を選択します (これはデフォルトのオプションです）。

1. **[クラスターストレージ設定]** セクションでは、**[Amazon DocumentDB 標準]** (デフォルトのオプションです) を選択します。
**注記**  
このカテゴリのもう 1 つのオプションは、**[Amazon DocumentDB I/O 最適化]** です。いずれかのオプションの詳細については、「[Amazon DocumentDB クラスターストレージ設定](db-cluster-storage-configs.md)」を参照してください。

1. **インスタンス設定** セクション:

   1. **[DB インスタンスクラス]** で、**[サーバーレス]** を選択します。

   1. **[通常のレプリカインスタンスの数]** では、**3** を選択します (これはデフォルトのオプションです)。

   1. **[容量範囲]** セクションでは、**[最小 DCU]** と **[最大 DCU]** をデフォルト値のままにします。これらのパラメータの設定の詳細については、「[Amazon DocumentDB Serverless インスタンスの制限](docdb-serverless-instance-limits.md)」を参照してください。  
![\[インスタンスクラス、レプリカインスタンス、容量範囲のフィールドを持つサーバーレスデータベースクラスターの設定フォーム。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/instance-config-serverless.png)

1. **[接続]** セクションで、デフォルト設定の **[EC2 コンピューティングリソースに接続しない]** のままにしておきます。

1. **[認証]** セクションで、プライマリユーザーのユーザー名を入力し、**[セルフマネージド]** を選択します。パスワードを入力して確認します。

   代わりに **Managed in AWS Secrets Manager** を選択した場合は、詳細については[Amazon DocumentDB と によるパスワード管理 AWS Secrets Manager](docdb-secrets-manager.md)「」を参照してください。

1. 他のすべてのオプションはデフォルトのままにして、**[クラスターの作成]** を選択します。

------
#### [ Using the AWS CLI ]

次の例では、各 *ユーザー入力プレースホルダー* を独自の情報または設定パラメータに置き換えます。

を使用して DocumentDB サーバーレスインスタンスと互換性のあるクラスターを作成するには AWS CLI、「」を参照してください[を使用したクラスターの作成 AWS CLI](db-cluster-create.md#db-cluster-create-cli)。

`create-db-cluster` コマンドに次の追加のパラメータを含めます:

```
--serverless-v2-scaling-configuration 
     MinCapacity=minimum_capacity,MaxCapacity=maximum_capacity
```

例:

```
aws docdb create-db-cluster \
      --db-cluster-identifier sample-cluster \
      --engine docdb \
      --engine-version 5.0.0 \
      --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16 \
      --master-username user-name \
      --master-user-password password
```

------

## Amazon DocumentDB Serverless インスタンスの追加
<a name="docdb-serverless-adding-instance"></a>

DocumentDB サーバーレスインスタンスを追加するには、[クラスターへの Amazon DocumentDB インスタンスの追加](db-instance-add.md) の同じ手順に従い、インスタンスクラスとして db.serverless を指定してください。

### AWS マネジメントコンソールを使用してサーバーレスインスタンスを追加します。
<a name="w2aac41c17b7b5"></a>

コンソールを使用して DocumentDB サーバーレスインスタンスを追加するには、「[クラスターへの Amazon DocumentDB インスタンスの追加](db-instance-add.md)」を参照して、**「 AWS マネジメントコンソールの使用**」タブを選択します。

### を使用したサーバーレスインスタンスの追加 AWS CLI
<a name="w2aac41c17b7b7"></a>

を使用して DocumentDB サーバーレスインスタンスを追加するには AWS CLI、「」を参照[クラスターへの Amazon DocumentDB インスタンスの追加](db-instance-add.md)し、**「 の使用 AWS CLI**」タブを選択します。

次のインスタンスクラス CLI 引数を使用します。

```
--db-instance-class db.serverless
```

例:

```
aws docdb create-db-instance \
      --db-cluster-identifier sample-cluster \
      --db-instance-identifier sample-instance \
      --db-instance-class db.serverless \
      --engine docdb
```

# Amazon DocumentDB Serverless への移行
<a name="docdb-serverless-migrating"></a>

**Topics**
+ [既存の DocumentDB クラスターをサーバーレスに移行する](#w2aac41c19b5)
+ [MongoDB から DocumentDB サーバーレスへの移行](#w2aac41c19b7)

## 既存の DocumentDB クラスターをサーバーレスに移行する
<a name="w2aac41c19b5"></a>

### クラスターのエンジンバージョンのアップグレード
<a name="w2aac41c19b5b3"></a>

プロビジョニングされたクラスターが、DocumentDB サーバーレスをサポートしていないより低いエンジンバージョンを実行している場合は、まずクラスターをサポートされているエンジンバージョンにアップグレードする必要があります。詳細については、「[Amazon DocumentDB のインプレースメジャーバージョンアップグレード](docdb-mvu.md)」を参照してください。

### プロビジョニングされたクラスターを DocumentDB サーバーレスに移行する
<a name="docdb-serverless-migrate-cluster"></a>

プロビジョニングされたクラスターを DocumentDB サーバーレスを使用できるように切り替えるには、以下の手順に従います。

1. DocumentDB サーバーレスで使用するには、プロビジョニングされたクラスターのエンジンバージョンをアップグレードする必要があるかどうかを確認します。「[DocumentDB サーバーレスの要件と制限](docdb-serverless-limitations.md)」を参照してください。
**注記**  
プロビジョニングされたクラスターが DocumentDB サーバーレスで使用できないエンジンバージョンを実行している場合、クラスターのエンジンバージョンをアップグレードします。「[Amazon DocumentDB のインプレースメジャーバージョンアップグレード](docdb-mvu.md)」を参照してください。

1. クラスターのスケーリング設定を設定します。スケーリング設定の選択の詳細については、「[DocumentDB サーバーレスクラスターのスケーリング容量範囲の選択](docdb-serverless-scaling-config.md#docdb-serverless-scaling-capacity-choosing)」を参照してください。クラスターのスケーリング設定を変更するには、「[クラスターのスケーリング容量範囲設定の表示と変更](docdb-serverless-managing.md#docdb-serverless-range-config)」を参照してください。

1. [DocumentDB サーバーレスの要件と制限](docdb-serverless-limitations.md) からの DocumentDB サーバーレスの要件と制限を考慮して、他のクラスタープロパティを設定します。

1. クラスターに 1 つ以上の DocumentDB サーバーレスインスタンスを追加します。「[Amazon DocumentDB Serverless インスタンスの追加](docdb-serverless-create-cluster.md#docdb-serverless-adding-instance)」の手順に従います。
**注記**  
場合によっては、クラスター内に 1 つ以上のプロビジョニングされたリーダーインスタンスが既に存在することがあります。その場合、新しいインスタンスを作成する代わりに、リーダーの 1 つを DocumentDB サーバーレスインスタンスに変換できます。これを行うには、「[インスタンスクラスの変更](db-instance-classes.md#db-instance-class-changing)」の手順に従います。

1. (オプション) フェイルオーバーオペレーションを実行して、DocumentDB サーバーレスインスタンスをクラスターライターにします。「[Amazon DocumentDB フェイルオーバー](failover.md)」を参照してください。

1. (オプション) 残りのプロビジョニングされた Amazon DocumentDB インスタンスを DocumentDB サーバーレスインスタンスに変換するか (「[インスタンスクラスの変更](db-instance-classes.md#db-instance-class-changing)」を参照)、クラスターから削除します (「[Amazon DocumentDB インスタンスの削除](db-instance-delete.md)」を参照)。

------
#### [ Using the AWS マネジメントコンソール ]

次の AWS マネジメントコンソール 設定例は、Amazon DocumentDB 5.0.0 を実行している Amazon DocumentDB プロビジョニング済みクラスターを使用した移行プロセスを示しています。このクラスターでは、DocumentDB サーバーレスの使用を開始するためにエンジンバージョンのアップグレードは必要ありません。クラスターは `sample` という名前で、`sample`、`sample2`、および `sample3` という名前の 3 つのプロビジョニングされたインスタンスで始まります。この例では、これら 3 つのインスタンスは 3 つのサーバーレスインスタンスに置き換えられます。

1. [AWS マネジメントコンソール](https://console.aws.amazon.com/docdb/home?region=us-east-1) にサインインし、Amazon DocumentDB コンソールを開きます。

1. ナビゲーションペインで **クラスター** を選択します。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

   **[クラスター]** テーブルが表示されます。

1. **[クラスター]** テーブルで、サーバーレスインスタンスを追加するクラスターのチェックボックスを選択します。

1. [**アクション**] を選択し、[**インスタンスの追加**] を選択します。

1. **[インスタンスの追加]** ダイアログボックスで、作成する新しいサーバーレスインスタンスごとに **[DB インスタンスクラス]** セクションで **[サーバーレス]** を選択します。

1. **[サーバーレス容量設定]** では、ダイアログボックスの容量の説明に基づいてスケーリング設定を設定します。

1. (オプション) 別のインスタンスを追加するには、**[インスタンスの追加]** を選択します。必要な新しいインスタンス数に達するまで、インスタンスの追加を続行します。

   この例では、3 つの新しいサーバーレスインスタンスが作成されます。

1. **[作成]** を選択します。

   インスタンスが作成されるまでに数分かかります。コンソールまたは を使用して AWS CLI 、インスタンスのステータスを表示できます。詳細については、「[Amazon DocumentDB クラスターのステータスのモニタリング](https://docs.aws.amazon.com//documentdb/latest/developerguide/monitoring_docdb-cluster_status.html)」を参照してください。

1. **[クラスター]** テーブルに戻り、元のプロビジョニング済みインスタンスの 3 つすべてのチェックボックスを選択します。

1. **[アクション]**、**[削除]** の順に選択します。

削除中、フェイルオーバーが自動的に実行され、残りのインスタンスの 1 つがライターに昇格されます。数分後、削除プロセスが完了します。既存のクラスターに 3 つの DocumentDB サーバーレスインスタンスが含まれるようになりました (**[サイズ]** 列で定義）。

------
#### [ Using the AWS CLI ]

次の AWS CLI 設定例は、Amazon DocumentDB 5.0.0 を実行している Amazon DocumentDB プロビジョニング済みクラスターを使用した移行プロセスを示しています。このクラスターでは、DocumentDB サーバーレスの使用を開始するためにエンジンバージョンのアップグレードは必要ありません。クラスターは `sample` という名前で、`sample`、`sample2`、および `sample3` という名前の 3 つのプロビジョニングされたインスタンスで始まります。この例では、これら 3 つのインスタンスは 3 つのサーバーレスインスタンスに置き換えられます。このクラスターは `sample-cluster` という名前で、`sample-provisioned-instance-1` および `sample-provisioned-instance-2` という名前の 2 つのプロビジョニング済みインスタンス、ライターインスタンスとリーダーインスタンスから始まります。

次の例では、各 *ユーザー入力プレースホルダー* を独自の情報または設定パラメータに置き換えます。

`aws docdb describe-db-clusters` オペレーションを使用して、クラスターのステータスを確認します。次のコードは、クラスター `sample-cluster` のステータスを検索し、結果をテーブルに出力します。

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].DBClusterMembers' \
    --output table
```

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-provisioned-instance-2  |  False           |  1             |
|  in-sync                       |  sample-provisioned-instance-1  |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

クラスターのスケーリング設定を追加します。

```
aws docdb modify-db-cluster \
    --db-cluster-identifier sample-cluster \
    --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=16
```

サーバーレスインスタンスを追加します。この例では、`sample-serverless-instance-1` および `sample-serverless-instance-2` という名前の新しいサーバーレスインスタンスが追加されています。

```
aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster \
    --db-instance-identifier sample-serverless-instance-1 \
    --db-instance-class db.serverless \
    --engine docdb

aws docdb create-db-instance \
    --db-cluster-identifier sample-cluster \
    --db-instance-identifier sample-serverless-instance-2 \
    --db-instance-class db.serverless \
    --engine docdb
```

次を入力して、サーバーレスインスタンスが使用可能になるまで待機してから次に進みます。

```
aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-1

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-2
```

フェイルオーバーを実行して、新しい `sample-serverless-instance-1` インスタンスをクラスターのライターにします。

```
aws docdb failover-db-cluster \
    --db-cluster-identifier sample-cluster \
    --target-db-instance-identifier sample-serverless-instance-1
```

フェイルオーバーが完了するまでに数秒かかり、その後 sample-serverless-instance-1 がクラスターのライターになります。これを次の入力で検証します。

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[*].DBClusterMembers' \
    --output table
```

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-provisioned-instance-2  |  False           |  1             |
|  in-sync                       |  sample-provisioned-instance-1  |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-2   |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-1   |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

最後に、元のプロビジョニングされたインスタンスを削除します。

```
aws docdb delete-db-instance \
    --db-instance-identifier sample-provisioned-instance-1

aws docdb delete-db-instance \
    --db-instance-identifier sample-provisioned-instance-2
```

------

## MongoDB から DocumentDB サーバーレスへの移行
<a name="w2aac41c19b7"></a>

プロビジョニングされた Amazon DocumentDB と同様に、MongoDB データベースを DocumentDB サーバーレスに移行できます。詳細については、「[Amazon DocumentDB への移行](docdb-migration.md)」を参照してください。

# Amazon DocumentDB Serverless の管理
<a name="docdb-serverless-managing"></a>

## クラスターのスケーリング容量範囲設定の表示と変更
<a name="docdb-serverless-range-config"></a>

`ServerlessV2ScalingConfiguration` 引数は、DocumentDB サーバーレスインスタンスのスケーリング容量範囲を指定します。これは、クラスター内のすべての DocumentDB サーバーレスインスタンスに適用される DocumentDB キャパシティユニット (DCU) の最小値と最大値で構成されます。
+ **`MinCapacity`** — クラスター内の DocumentDB サーバーレスインスタンスの最小スケーリング容量。
+ **`MaxCapacity`** — クラスター内の DocumentDB サーバーレスインスタンスの最大スケーリング容量。

**注記**  
次のスケーリング設定の変更では、新しい `MinCapacity` と `MaxCapacity` の値を反映するためにインスタンスを再起動する必要があります。  
`MaxCapacity` 値への変更
`MinCapacity` 値をより高い値から 1.0 以下に変更する
`MinCapacity` 値をより低い値から 1.0 より大きい値に変更する

スケーリング設定と適切なスケーリング容量制限の選択方法の詳細については、「[Amazon DocumentDB Serverless スケーリング設定](docdb-serverless-scaling-config.md)」を参照してください。

------
#### [ Using the AWS マネジメントコンソール ]

次の AWS マネジメントコンソール 設定例は、DocumentDB サーバーレスクラスターのスケーリング設定を表示および編集する方法を示しています。

1. [AWS マネジメントコンソール](https://console.aws.amazon.com/docdb/home?region=us-east-1) にサインインし、Amazon DocumentDB コンソールを開きます。

1. ナビゲーションペインで **クラスター** を選択します。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

   **[クラスター]** テーブルが表示されます。

1. **[クラスター]** テーブルで、スケーリング容量を変更するクラスターのチェックボックスを選択します。

1. [**アクション**] を選択してから、[**変更**] を選択します。

   **[クラスターの変更]** ダイアログボックスが表示されます。

1. **[サーバーレス容量設定]** セクションを見つけ、ダイアログボックスの容量の説明に基づいてスケーリング設定 (**[容量範囲]**) を設定します。

   スケーリングとの容量単位の詳細については、「[Amazon DocumentDB Serverless スケーリング設定](docdb-serverless-scaling-config.md)」を参照してください。

1. [**続行**] をクリックしてください。

1. [**変更のスケジューリング**] で、[**すぐに適用**] を選択します。

1. **[クラスターを変更]** を選択します。

1. 変更が完了したら、各サーバーレスインスタンスを再起動する必要があります。ライターの非可用性を最小限に抑えるには、次の一連のオペレーションを実行します。

   1. 各サーバーレスリーダーインスタンスを再起動します。

      1. リーダーインスタンスを選択し、**[アクション]** を選択してから、**[再起動]** を選択します。

      1. インスタンスのステータスが **使用可能** に戻るまで待機します。

   1. 再起動したサーバーレスインスタンスへのフェイルオーバーを実行します。

      1. クラスターを選択し、**[アクション]** を選択してから、**[フェイルオーバー]** を選択します。

      1. フェイルオーバーオペレーションが完了するまで待機します。

   1. 残りのサーバーレスインスタンスを再起動します。

      1. 残りのインスタンスを選択し、**[アクション]** を選択してから、**[再起動]** を選択します。

      1. インスタンスのステータスが **使用可能** に戻るまで待機します。

------
#### [ Using the AWS CLI ]

次の AWS CLI 設定例は、現在のスケーリング設定を示しています。

次の例では、各 *ユーザー入力プレースホルダー* を独自の情報または設定パラメータに置き換えます。

クラスターの現在のスケーリング設定は、 `describe-db-clusters` AWS CLI コマンドを使用して表示できます。

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[0].ServerlessV2ScalingConfiguration'
```

このコマンドの出力は次のとおりです。

```
{
    "MinCapacity": 0.5,
    "MaxCapacity": 16.0
}
```

クラスターのスケーリング設定は、`modify-db-cluster` コマンドを使用して変更できます。

```
aws docdb modify-db-cluster \
    --db-cluster-identifier sample-cluster \
    --serverless-v2-scaling-configuration MinCapacity=0.5,MaxCapacity=32
```

完了したら、各サーバーレスインスタンスを再起動する必要があります。ライターの非可用性を最小限に抑えるために、次の一連のオペレーションを実行できます。

```
aws docdb reboot-db-instance \
    --db-instance-identifier sample-serverless-instance-reader

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-reader

aws docdb failover-db-cluster \
   --db-cluster-identifier sample-cluster \
   --target-db-instance-identifier sample-serverless-instance-reader

aws docdb reboot-db-instance \
    --db-instance-identifier sample-serverless-instance-writer

aws docdb wait db-instance-available \
    --db-instance-identifier sample-serverless-instance-writer

aws docdb failover-db-cluster \
   --db-cluster-identifier sample-cluster \
   --target-db-instance-identifier sample-serverless-instance-writer
```

------

## サーバーレスリーダーの昇格階層の表示と変更
<a name="docdb-serverless-promo-tier"></a>

複数のサーバーレスインスタンスを含むクラスター、またはプロビジョン済みインスタンスとサーバーレスインスタンスの混在するクラスターでは、各サーバーレスインスタンスのプロモーション層の設定に注意してください。この設定は、プロビジョン済みインスタンスよりも、サーバーレスインスタンスの多くの動作を制御します。

プロビジョン済みインスタンスの場合、層 0～15 の選択肢は、フェイルオーバー操作時に Amazon DocumentDB がどのリーダーインスタンスをライターに昇格させるかを選択する順序のみを決定します。ただし、サーバーレスリーダーインスタンスの場合、層番号によって、インスタンスがライターインスタンスの容量に合わせてスケールアップするのか、それとも独自のワークロードに基づいて個別にスケールアップするのかが決まります。層 0 または 1 のサーバーレスリーダーインスタンスは、少なくともライターインスタンスと同じ大きさの最小容量に保たれます。これにより、フェイルオーバー発生時にライターインスタンスから引き継ぐ準備が整います。ライターインスタンスがプロビジョン済みインスタンスの場合、 Amazon DocumentDB では同等の Amazon DocumentDB サーバーレス容量を推定します。この推定値をサーバーレスリーダーインスタンスの最小容量として使用します。

層 2～15 の DocumentDB サーバーレスリーダーインスタンスは、最小容量に対する同じ制約はありません。アイドル状態の場合、クラスターの容量範囲で指定された DocumentDB 容量単位 (DCU) の最小値までスケールダウンできます。

------
#### [ Using the AWS マネジメントコンソール ]

次の AWS マネジメントコンソール 設定例は、DocumentDB サーバーレスインスタンスリーダーのプロモーション階層設定を表示および変更する方法を示しています。

1. [AWS マネジメントコンソール](https://console.aws.amazon.com/docdb/home?region=us-east-1) にサインインし、Amazon DocumentDB コンソールを開きます。

   各インスタンスの昇格階層は、 AWS マネジメントコンソールの **[昇格階層]** 列に表示されます。

1. ナビゲーションペインで **クラスター** を選択します。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

   **[クラスター]** テーブルが表示されます。

1. **[クラスター]** テーブルで、昇格階層を変更するインスタンスのチェックボックスを選択します。

1. [**アクション**] を選択してから、[**変更**] を選択します。

   **[インスタンスの変更]** ダイアログボックスが表示されます。

1. **[フェイルオーバー]** セクションを見つけ、**[昇格階層]** を必要なレベルに設定します。

1. [**続行**] をクリックしてください。

1. [**変更のスケジューリング**] で、[**すぐに適用**] を選択します。

1. [**インスタンスの変更**] を選択します。

------
#### [ Using the AWS CLI ]

次の AWS CLI 設定例は、現在のスケーリング設定を示しています。

次の例では、各 *ユーザー入力プレースホルダー* を独自の情報または設定パラメータに置き換えます。

クラスター内のすべてのインスタンスの昇格階層は、 `describe-db-clusters` AWS CLI コマンドを使用して表示できます。

```
aws docdb describe-db-clusters \
    --db-cluster-identifier sample-cluster \
    --query 'DBClusters[0].DBClusterMembers' \
    --output table
```

このコマンドの出力は次のとおりです。

```
--------------------------------------------------------------------------------------------------------
|                                          DescribeDBClusters                                          |
+--------------------------------+---------------------------------+------------------+----------------+
|  DBClusterParameterGroupStatus |      DBInstanceIdentifier       | IsClusterWriter  | PromotionTier  |
+--------------------------------+---------------------------------+------------------+----------------+
|  in-sync                       |  sample-serverless-instance-2   |  False           |  1             |
|  in-sync                       |  sample-serverless-instance-1   |  True            |  1             |
+--------------------------------+---------------------------------+------------------+----------------+
```

特定のインスタンスの昇格階層は、`modify-db-instance` コマンドを使用して変更できます。

```
aws docdb modify-db-instance \
    --db-instance-identifier sample-serverless-instance-2 \
    --promotion-tier 3
```

------

# Amazon DocumentDB Serverless インスタンスの制限
<a name="docdb-serverless-instance-limits"></a>

DocumentDB サーバーレスインスタンスの場合、インスタンスあたりの以下の制限は、インスタンスの現在のスケーリング容量によって異なります。
+ インスタンスメモリ (GiB)
+ 接続 (すべて)
+ カーソル制限
+ 同時に開くことのできるトランザクション数
+ 接続 (アクティブ)

次のテーブルは、インスタンスの現在のスケーリング容量に関連して、サーバーレスインスタンスのインスタンスごとの制限がどのようにスケーリングされるかを示しています。

制限値は、クラスターの `MinCapacity` スケーリング設定が 2 以上に設定されているかどうかによって異なることに注意してください。`MinCapacity` が 2 以下に設定されている場合、カーソル制限、オープントランザクション、および接続 (アクティブ) の制限値は、より低い最大値に上限が設定されます。(上限の技術的な理由は、「アイドル」状態へのスケールダウンをサポートすることです。詳細については、「[アイドル状態 (0.5 DCU)](docdb-serverless-how-it-works.md#docdb-serverlerss-idle-state)」を参照してください。

**MinCapacity ≤1 の場合の db.serverless インスタンスの制限**


| 現在の容量 (DCU) | インスタンスメモリ (GiB) | 接続 (すべて) | カーソル制限 | 同時に開くことのできるトランザクション数 | 接続 (アクティブ) | 
| --- | --- | --- | --- | --- | --- | 
|  0.5  |  1  |  250  |  6  |  12  |  39  | 
|  1  |  2  |  500  |  12  |  24  |  79  | 
|  2  |  4  |  1,000  |  24  |  48  |  173  | 
|  4  |  8  |  2000  |  48  |  96  |  416  | 
|  8  |  16  |  4000  |  96  |  192  |  1071  | 
|  16  |  32  |  8000  |  132  |  264  |  1550  | 
|  32  |  64  |  16000  |  132  |  264  |  1550  | 
|  64  |  128  |  32000  |  132  |  264  |  1550  | 
|  128  |  256  |  60000  |  132  |  264  |  1550  | 
|  256  |  512  |  60000  |  132  |  264  |  1550  | 

**MinCapacity >1 の場合の db.serverless インスタンスの制限**


| 現在の容量 (DCU) | インスタンスメモリ (GiB) | 接続 (すべて) | カーソル制限 | 同時に開くことのできるトランザクション数 | 接続 (アクティブ) | 
| --- | --- | --- | --- | --- | --- | 
|  1.5  |  3  |  7250  |  18  |  36  |  124  | 
|  2  |  4  |  1,000  |  24  |  48  |  173  | 
|  4  |  8  |  2000  |  48  |  96  |  416  | 
|  8  |  16  |  4000  |  96  |  192  |  1071  | 
|  16  |  32  |  8000  |  192  |  384  |  2709  | 
|  32  |  64  |  16000  |  384  |  768  |  4500  | 
|  64  |  128  |  32000  |  768  |  1536  |  4500  | 
|  128  |  256  |  60000  |  1536  |  3072  |  4500  | 
|  256  |  512  |  60000  |  3072  |  6144  |  4500  | 

次の CloudWatch メトリクスを使用して、インスタンスごとの制限を監視およびアラームできます。Amazon DocumentDB CloudWatch のメトリクスのさらなる詳細については、[Amazon DocumentDB と CloudWatch のモニタリング](cloud_watch.md) をご参照ください。


| [リソース]  | CloudWatch 制限のメトリクス | CloudWatch の使用状況メトリクス (最大 1 分) | CloudWatch の使用状況メトリクス | 
| --- | --- | --- | --- | 
| インスタンスメモリ | - | - | FreeableMemory | 
| 接続 (すべて) | DatabaseConnectionsLimit | DatabaseConnectionsMax | DatabaseConnections | 
| カーソル | DatabaseCursorsLimit | DatabaseCursorsMax | DatabaseCursors | 
| トランザクション | TransactionsOpenLimit | TransactionsOpenMax | TransactionsOpen | 

# Amazon DocumentDB Serverless スケーリング設定
<a name="docdb-serverless-scaling-config"></a>



**Topics**
+ [DocumentDB サーバーレスクラスターのスケーリング容量範囲の選択](#docdb-serverless-scaling-capacity-choosing)
+ [DocumentDB サーバーレスクラスターの `MinCapacity` 設定の選択](#docdb-serverless-scaling-mincapacity-choosing)
+ [DocumentDB サーバーレスクラスターの `MaxCapacity` 設定の選択](#docdb-serverless-scaling-maxcapacity-choosing)
+ [メモリ不足エラーを回避する](#docdb-serverless-scaling-mem-errors)
+ [サーバーレスインスタンスがスケールダウンしないのはなぜですか?](#docdb-serverless-scaling-down)

## DocumentDB サーバーレスクラスターのスケーリング容量範囲の選択
<a name="docdb-serverless-scaling-capacity-choosing"></a>

DocumentDB サーバーレスインスタンスを Amazon DocumentDB クラスターに追加する前に、クラスターに `ServerlessV2ScalingConfiguration` パラメータも設定されている必要があります。

`ServerlessV2ScalingConfiguration` パラメータは、クラスター内の任意のサーバーレスインスタンスのサーバーレススケーリング容量範囲を定義する 2 つの値で構成されます。
+ **`MinCapacity`** — クラスター内の DocumentDB サーバーレスインスタンスの最小スケーリング容量。
+ **`MaxCapacity`** — クラスター内の DocumentDB サーバーレスインスタンスの最大スケーリング容量。

## DocumentDB サーバーレスクラスターの `MinCapacity` 設定の選択
<a name="docdb-serverless-scaling-mincapacity-choosing"></a>

`MinCapacity`には、常に 0.5 を選択しようとします。この値を指定することで、インスタンスは、完全にアイドル状態のときに最小容量にスケールダウンしながら、アクティブな状態を維持できます。ただし、そのクラスターの使用方法やその他の設定によっては、最も効果的な最小容量が異なる場合もあります。最小容量設定を選択する場合は、以下の要素を考慮してください。
+ DocumentDB サーバーレスインスタンスのスケーリングレートは、そのインスタンスの現在の容量によって異なります。現在の容量が大きいほど、スケールアップが速くなります。インスタンスを非常に大きな容量にすばやくスケールアップする必要があるときは、スケーリングレートの要件を満たす値に最小容量を設定することを検討してください。
+ 通常、ワークロードが高いか低いかを見越してインスタンスのインスタンスクラスを変更している場合は、その経験を活かして同等の DocumentDB サーバーレス容量範囲を概算で見積もることができます。プロビジョニングされた Amazon DocumentDB インスタンスタイプのメモリサイズを確認するには、「[インスタンス制限](limits.md#limits.instance)」を参照してください。

  例えば、クラスターのワークロードが低い場合に `db.r6g.xlarge` インスタンスクラスを使用するとします。そのインスタンスクラスのメモリは 32 GiB です。したがって、`MinCapacity` を 16 に指定すると、ほぼ同じ容量にスケールダウンできるサーバーレスインスタンスをセットアップできます。これは、各 DCU が約 2 GiB のメモリに対応するためです。`db.r6g.xlarge` インスタンスの使用率が低い場合に、インスタンスをさらにスケールダウンさせるため、やや小さい値を指定することがあります。
+ インスタンスのバッファキャッシュに一定量のデータがあるときにアプリケーションが最も効率的に動作する場合は、頻繁にアクセスされるデータを保持するのに十分なメモリ容量を持つ最小の DCU 設定を指定することを検討してください。それ以外の場合、サーバーレスインスタンスがさらに小さいメモリサイズにスケールダウンした場合、一部のデータがバックキャッシュから削除されます。その後、インスタンスのスケールアップ時に、その情報が経時的に読み込まれてバッファキャッシュに戻ります。データをバッファキャッシュに戻すための I/O 量が大きい場合は、最小 DCU 値を大きくする方が効果的な場合があります。詳細については、「[インスタンスのサイズ指定](best_practices.md#best_practices-instance_sizing)」を参照してください。
+ ほとんどの時間、DocumentDB サーバーレスインスタンスが特定の容量で実行されている場合、ベースラインよりも小さく、ただし小さすぎない最小容量の設定を検討してください。サーバーレスインスタンスが現在の容量が必要容量より極端に小さくない場合、スケールアップする規模と速度を最も効果的に見積もることができます。
+ プロビジョン済みワークロードのメモリ要件が T3 や T4g–などの小さなインスタンスクラスに対して大きすぎる場合は、R5 や R6g インスタンスに相当するメモリを提供する最小 DCU 設定を選択します。
+ 特に、指定された機能で使用するには、以下の最小 `MinCapacity` をお勧めします (これらの推奨値は変更される場合があります)。
  + パフォーマンスインサイト — 2 DCU。
  + グローバルクラスター — 8 DCUs (プライマリにのみ適用 AWS リージョン)
+ Amazon DocumentDB では、レプリケーションはストレージレイヤーで発生するため、リーダー容量はレプリケーションに直接影響しません。ただし、個別にスケールする DocumentDB サーバーレスインスタンスの場合は、クエリのレイテンシーを避けるために、書き込み負荷の高い期間にワークロードを処理するのに十分な最小容量があることを確認してください。昇格階層 2～15 のリーダーインスタンスでパフォーマンスの問題が発生した場合は、クラスターの最小容量を増やすことを検討してください。リーダーインスタンスのスケールをライターと一緒にスケーリングするか、個別にスケーリングするかを変更する方法の詳細については、「[サーバーレスリーダーの昇格階層の表示と変更](docdb-serverless-managing.md#docdb-serverless-promo-tier)」を参照してください。

  DocumentDB サーバーレスリーダーインスタンスを持つクラスターがある場合、リーダーの昇格階層が 0 または 1 でない場合、リーダーはライターインスタンスと一緒にスケーリングされません。この場合、最小容量を小さく設定すると、レプリケーションの遅延が大きくなる場合があります。これは、データベースがビジー状態のときに、ライターからの変更を適用するのに十分な容量がリーダーにない可能性があるためです。最小容量は、ライターインスタンスと同程度のメモリと CPU 量を表す値に設定することをお勧めします。
+ DocumentDB サーバーレスインスタンスを最小容量から最大容量までスケーリングするのにかかる時間は、DCU の最小値と最大値の差によって異なります。現在のインスタンスの容量が大きい場合、DocumentDB サーバーレス では、小さな容量から開始する場合よりも大きな増分でインスタンスをスケールアップします。したがって、比較的大きい最大容量を指定し、ほとんどの時間、インスタンスがその容量付近で使用されている場合は、最小 DCU の設定を引き上げることを検討してください。そうすれば、アイドル状態のインスタンスを、より迅速に最大容量にスケールアップできます。
+ 特定のインスタンス制限は、接続制限、カーソル制限、オープントランザクション制限など、サーバーレスインスタンスの現在の容量によって決まります。インスタンスの現在の容量が小さい場合、それに応じて制限も小さくなります。サーバーレスインスタンスをその `MinCapacity` 値にスケールダウンするときにこれらの制限に問題がある場合は、`MinCapacity` をより高い値に増やすことを検討してください。詳細については、「[Amazon DocumentDB Serverless インスタンスの制限](docdb-serverless-instance-limits.md)」を参照してください。
+ さらに、アクティブな接続制限、カーソル制限、オープントランザクション制限など、`MinCapacity` が 1.0 DCU 以下に設定されている場合、特定のインスタンス制限はより低い最大値に上限が設定されます。これらの上限が設定された制限がワークロードに対して不十分な場合は、少なくとも 1.5 DCU の `MinCapacity` 値を使用してください。詳細については、「[Amazon DocumentDB Serverless インスタンスの制限](docdb-serverless-instance-limits.md)」を参照してください。

クラスターのスケーリング設定を変更する方法については、「[Amazon DocumentDB Serverless の管理](docdb-serverless-managing.md)」を参照してください。

## DocumentDB サーバーレスクラスターの `MaxCapacity` 設定の選択
<a name="docdb-serverless-scaling-maxcapacity-choosing"></a>

DocumentDB サーバーレスの最大容量設定には、常にある程度大きい値を選択しようとします。最大容量が大きいと、集中的なワークロードを実行している場合に、インスタンスは最もスケールアップできます。値を小さくすると、予期せぬ料金が発生する可能性を回避できます。そのクラスターの使用方法およびその他の設定によっては、最も効果的な値が当初検討していたより大きくなったり、小さくなったりすることがあります。最大容量設定を選択する場合は、以下の要素を考慮してください。
+ 最大容量は、最小容量より大きくなければなりません。最小容量と最大容量を同一に設定することができます。ただし、その場合は容量がスケールアップまたはスケールダウンすることはありません。したがって、テスト以外では、最小容量と最大容量に同じ値を使用することは適切ではありません。
+ 最大容量は 1.0 DCU 以上、最大 256 DCU である必要があります。
+ サーバーレスインスタンスのスケーリングとリソース使用量をモニタリングすることをお勧めします。サーバーレスインスタンスが最大容量に頻繁にスケーリングされ、リソースの制約 (`DCUUtilization` メトリクスが 100.0 の場合など) にヒットする場合は、より高い `MaxCapacity` 値を選択することをお勧めします。詳細については、「[Amazon DocumentDB Serverless のモニタリング](docdb-serverless-monitoring.md)」を参照してください。
+ 通常、ワークロードが高いか低いかを見越してプロビジョニングされたインスタンスのインスタンスクラスを変更している場合は、その経験を活用して同等の DocumentDB サーバーレス容量範囲を見積もることができます。プロビジョニングされた Amazon DocumentDB インスタンスのメモリサイズを確認するには、「[インスタンス制限](limits.md#limits.instance)」を参照してください。

  例えば、クラスターのワークロードが高い場合に `db.r6g.4xlarge` インスタンスクラスを使用するとします。そのインスタンスクラスのメモリは 128 GiB です。したがって、DCU の最大設定を 64 に指定すると、ほぼ同じ容量にスケールアップできるサーバーレスインスタンスを設定できます。これは、各 DCU が約 2 GiB のメモリに対応するためです。`db.r6g.4xlarge` インスタンスにワークロードを効果的に処理するのに十分な容量がないことがあり、インスタンスをよりスケールアップさせるために多少大きい値を指定することができます。
+ データベースの使用に予算の上限がある場合は、すべてのサーバーレスインスタンスを常に最大容量で実行しても、予算の上限に収まるような値を選択してください。クラスターに n 個のサーバーレスインスタンスがある場合、クラスターが常に消費できるサーバーレスの理論上の最大容量は、クラスターの最大 DCU 設定の n 倍であることに注意してください。(例えば、一部のリーダーがライターから独立してスケーリングする場合など、実際の消費量は少なくなる場合があります)。
+ サーバーレスリーダーインスタンスを利用してライターインスタンスから一部の読み取り専用ワークロードをオフロードするには、最大容量設定を小さく選択できることがあります。これは、各リーダーインスタンスが、クラスターに単一のインスタンスしか含まれていない場合ほど大きくスケーリングする必要がないことを反映するためです。
+ データベースパラメータの設定間違いやアプリケーション内の非効率的なクエリによる過度の使用から保護したいとします。その場合、設定可能な理論的な最大値よりも最大容量設定を小さく選択することで、誤って過剰に使用することを回避できます。
+ 実際のユーザーアクティビティによるスパイクがまれしか発生しない場合は、最大容量設定を選択する際にその機会を考慮できます。アプリケーションが完全なパフォーマンスとスケーラビリティで動作し続けることを優先する場合は、通常の使用状況よりも大きい最大容量設定を指定できます。アクティビティの非常に極端なスパイク中、アプリケーションのスループットが低下しても問題ない場合は、最大容量を少し小さめに設定できます。アプリケーションの実行を維持するのに十分なメモリと CPU リソースがある設定を選択してください。
+ クラスターで 各インスタンスのメモリ使用量を増やす設定をオンにする場合は、最大 DCU 値を決定する際にそのメモリを考慮に入れてください。このような設定には、Performance Insights およびグローバルクラスターの設定が含まれます。それらの機能が使用されているときに、サーバーレスインスタンスがワークロードを処理するのに十分なスケールアップができる 最大 DCU 値になっていることを確認します。最大 DCU の設定が小さいことと、メモリのオーバーヘッドが発生する Amazon DocumentDB 機能が組み合わされることによって発生する問題のトラブルシューティングについては、「[メモリ不足エラーを回避する](#docdb-serverless-scaling-mem-errors)」(以下) を参照してください。
+ 特に、指定された機能で使用するには、以下の最小 `MaxCapacity` をお勧めします (これらの推奨値は変更される場合があります)。
  + データボリュームが大きいクラスターでのサーバーレスインスタンスの作成 — 2 DCU (クラスター復元の一部としてのサーバーレスインスタンスの作成が含まれます)。
+ 特定のインスタンス制限は、接続制限、カーソル制限、オープントランザクション制限など、インスタンスの現在の容量によって決まります。ワークロードの `MaxCapacity` 値を選択するときは、これらの制限のいずれかによってボトルネックにならないように、これらのインスタンスの制限を念頭に置いてください。詳細については、「[Amazon DocumentDB Serverless インスタンスの制限](docdb-serverless-instance-limits.md)」を参照してください。

クラスターのスケーリング設定を変更する方法については、「[Amazon DocumentDB Serverless の管理](docdb-serverless-managing.md)」を参照してください。

## メモリ不足エラーを回避する
<a name="docdb-serverless-scaling-mem-errors"></a>

DocumentDB サーバーレスインスタンスの 1 つが常に最大容量の制限に達している場合、Amazon DocumentDB ではこの状態をインスタンスのステータスを **[互換性のないパラメータ]** に設定することで表示します。DB インスタンスが **[互換性のないパラメータ]** ステータスの間、一部のオペレーションはブロックされます。例えば、エンジンバージョンをアップグレードすることはできません。Amazon DocumentDB インスタンスのステータスの詳細については、[Amazon DocumentDB インスタンスのステータスのモニタリング](https://docs.aws.amazon.com//documentdb/latest/developerguide/monitoring_docdb-instance_status.html). を参照してください。

通常、インスタンスでは、メモリ不足エラーが原因で頻繁に再起動した場合、このステータスになります。Amazon DocumentDB では、このタイプの再起動が発生したときにイベントを記録します。リソースイベントを表示するには、「[Amazon DocumentDB イベントの表示](managing-events.md#viewing-events)」を参照してください。パフォーマンスインサイトなどの設定をオンにすることによるオーバーヘッドが原因で、メモリ使用量が異常に大きくなる場合があります。また、インスタンスのワークロードが高い場合や、多数のスキーマオブジェクトに関連するメタデータの管理から発生する場合があります。

インスタンスが頻繁に最大容量に達しないように、メモリの負荷が低くなると、Amazon DocumentDB ではインスタンスのステータスを自動的に [使用可能] に戻します。

この状態から回復させるには、以下アクションの一部またはすべてを実行できます。
+ クラスターの DocumentDB 容量単位 (DCU) の最小値を変更して、サーバーレスインスタンスの容量の下限を引き上げます。これを行うことで、アイドル状態のデータベースが、クラスターでオンになっている機能に必要なメモリよりも少ない容量にスケールダウンする問題を回避できます。クラスターの DCU 設定を変更した後、サーバーレスインスタンスを再起動します。そうすることで、Amazon DocumentDB がステータスを [使用可能] にリセットできるかどうかが評価されます。
+ クラスターの DCU の最大値を変更して、サーバーレスインスタンスの容量の上限を引き上げます。そうすることで、クラスターでオンになっている機能やデータベースワークロードに、ビジー状態のデータベースが十分なメモリがある容量にスケールアップできない問題を回避できます。クラスターの DCU 設定を変更した後、サーバーレスインスタンスを再起動します。そうすることで、Amazon DocumentDB がステータスを [使用可能] にリセットできるかどうかが評価されます。
+ メモリオーバーヘッドが必要な設定をオフにします。例えば、パフォーマンスインサイトなどの機能がオンになっているが、使用していないとします。その場合は、それをオフにできます。または、クラスターの最小容量と最大容量値を調整することで、これらのタイプの機能で使用されるメモリを考慮することもできます。最小および最大容量設定の選択に関するガイドラインについては、「[DocumentDB サーバーレスクラスターのスケーリング容量範囲の選択](#docdb-serverless-scaling-capacity-choosing)」を参照してください。
+ インスタンスのワークロードを削減します。例えば、クラスターにリーダーインスタンスを追加して、読み取り専用クエリからのロードを他のインスタンスに分散させることができます。

## サーバーレスインスタンスがスケールダウンしないのはなぜですか?
<a name="docdb-serverless-scaling-down"></a>

場合によっては、データベースに負荷がかからない状態でも、DocumentDB サーバーレスが最小容量にスケールダウンしない場合があります。これは、次のような理由で発生します。
+ パフォーマンスインサイトにより、リソースの使用量が増加し、データベースが最小容量までスケールダウンできない可能性があります。主な機能は以下のとおりです。
+ リーダーインスタンスが最小容量までスケールダウンせず、ライターインスタンスと同じかそれ以上の容量にとどまっている場合は、リーダーインスタンスの優先度の階層を確認します。層 0 または 1 の DocumentDB サーバーレスリーダーインスタンスは、少なくともライターインスタンスと同じ大きさの最小容量に保たれます。リーダーの優先度の階層を 2 以上に変更して、ライターとは無関係にスケールアップおよびスケールダウンされるようにします。詳細については、「[Amazon DocumentDB Serverless スケーリング](docdb-serverless-how-it-works.md#docdb-serverless-scaling)」を参照してください。
+ データベースワークロードが重いと、リソースの使用量が増える可能性があります。
+ データベースのボリュームが大きいと、リソースの使用量が増える可能性があります。Amazon DocumentDB はクラスターの管理にメモリと CPU リソースを使用します。Amazon DocumentDB は、データベースボリュームが大きいクラスターを管理するために、より多くの CPU とメモリを必要とします。クラスターの最小容量がクラスター管理に必要な最小容量よりも少ない場合、クラスターは最小容量までスケールダウンされません。
+ バックグラウンドメンテナンスアクティビティでは、リソースの使用量を定期的に増やすことができます。

それでもデータベースが設定された最小容量までスケールダウンしない場合は、データベースを停止して再起動し、時間の経過とともに蓄積した可能性があるメモリフラグメントを再利用します。データベースを停止して起動するとダウンタイムが発生するため、これを実行するかどうかは慎重に判断することをお勧めします。

# Amazon DocumentDB Serverless のモニタリング
<a name="docdb-serverless-monitoring"></a>

Amazon DocumentDB でのモニタリングの詳細については、「[Amazon DocumentDB のモニタリング](monitoring_docdb.md)」を参照してください。

**Topics**
+ [メモリ不足: 互換性のないパラメータステータス](#w2aac41c27b7)
+ [DocumentDB サーバーレスの Amazon CloudWatch メトリクス](#w2aac41c27b9)
+ [パフォーマンスインサイトによる DocumentDB サーバーレスパフォーマンスのモニタリング](#w2aac41c27c11)

## メモリ不足: 互換性のないパラメータステータス
<a name="w2aac41c27b7"></a>

サーバーレスインスタンスの 1 つが常に最大容量の制限に達している場合、Amazon DocumentDB ではこの状態をインスタンスのステータスを [互換性のないパラメータ] に設定することで表示します。詳細については、「[メモリ不足エラーを回避する](docdb-serverless-scaling-config.md#docdb-serverless-scaling-mem-errors)」を参照してください。

## DocumentDB サーバーレスの Amazon CloudWatch メトリクス
<a name="w2aac41c27b9"></a>

Amazon DocumentDB における CloudWatch の使用の詳細については、「[Amazon DocumentDB と CloudWatch のモニタリング](cloud_watch.md)」を参照してください。

CloudWatch でサーバーレスインスタンスを表示すると、`ServerlessDatabaseCapacity` メトリクスで各インスタンスが消費する容量をモニタリングできます。また、`DatabaseConnections` やクエリなどの DocumentDB CloudWatch のスタンダードのメトリクスをすべてモニタリングできます。Amazon DocumentDB でモニタリング可能な CloudWatch メトリクスのすべてのリストは、「[Amazon DocumentDB と CloudWatch のモニタリング](cloud_watch.md)」を参照してください。以下の CloudWatch インスタンスレベルのメトリクスは、DocumentDB サーバーレスインスタンスはスケールアップとスケールダウンを理解するうえで重要なモニタリングです。これらすべてのメトリクスは 1 秒ごとに計算されます。そうすれば、サーバーレスインスタンスの現在のステータスをモニタリングできます。サーバーレスインスタンスが容量に関連するメトリクスのしきい値に近づいた場合に通知するアラームを設定できます。最小容量と最大容量設定は適切か、調整が必要かを判断できます。データベースの効率を最適化するため、どこに注力すべきかを判断できます。
+ **`ServerlessDatabaseCapacity`** — インスタンスレベルのメトリクスとして、現在のインスタンスの容量で表される DCU 値を報告します。クラスターレベルのメトリクスとして、クラスター内のすべての DocumentDB サーバーレスインスタンスの `ServerlessDatabaseCapacity` 値の平均を表しています。
+ **`DCUUtilization.`** — このメトリクスは DocumentDB サーバーレスでは新しいものです。この値は割合 (%) で表されます。これは、`ServerlessDatabaseCapacity` メトリクスの値をクラスターの最大 DCU 値で割った値です。このメトリクスを解釈してアクションを実行するには、以下のガイドラインを考慮してください。
  + このメトリクスが `100.0` 値に近づいた場合、インスタンスは限りなく大きくスケールアップしたことになります。クラスターの最大 DCU 設定を引き上げることを検討してください。これにより、ライターとリーダーの両方のインスタンスを、より大きな容量にスケーリングできます。
  + 読み取り専用のワークロードによって、リーダーインスタンスが `DCUUtilization`/`100.0` に近づき、一方でライターインスタンスは最大容量に近づいていないとします。この場合は、クラスターにリーダーインスタンスを追加することを検討してください。これにより、ワークロードの読み取り専用部分のワークロードをより多くのインスタンスに分散することで、各リーダーインスタンスのロードを軽減できます。
  + パフォーマンスとスケーラビリティが主な考慮事項である本番アプリケーションを実行しているとします。この場合、クラスターの最大 DCU 値を大きい数値に設定できます。目標は、`DCUUtilization` のメトリクスが常に 100.0 未満であることです。DCU の最大値を大きくすると、データベースのアクティビティに予期しないスパイクが発生した場合でも十分な余裕があり、安心につながります。実際に消費されたデータベース容量に対してのみ課金されます。
+ **`CPUUtilization`** — このメトリクスは DocumentDB サーバーレスにおいて、プロビジョン済みのインスタンスとは異なる解釈がされます。DocumentDB サーバーレスの場合、この値は、現在の CPU の使用量をクラスターの最大 DCU 値で使用可能な CPU 容量で割った割合です。Amazon DocumentDB はこの値を自動的にモニタリングし、インスタンスが CPU 容量 を使用している割合が常に大きい場合、サーバーレスインスタンスをスケールアップします。

  このメトリクスが `100.0` 値に近づいた場合、インスタンスは最大 CPU 容量に達しています。クラスターの最大 DCU 設定を引き上げることを検討してください。このメトリクスがリーダーインスタンスで `100.0` 値に近づいた場合、クラスターにリーダーインスタンスを追加することを検討してください。これにより、ワークロードの読み取り専用部分のワークロードをより多くのインスタンスに分散することで、各リーダーインスタンスのロードを軽減できます。
+ **`FreeableMemory`** — この値は、DocumentDB サーバーレスインスタンスを最大容量にスケーリングしたときに利用できる未使用のメモリ量を表します。現在の容量が最大容量を下回る 各 DCU では、この値は約 2 GiB 増加します。したがって、インスタンスが限りなく大きくスケールアップされるまで、このメトリクスはゼロに近づきません。

  このメトリクスがゼロの値に近づいた場合、インスタンスは可能な限りスケールアップし、使用可能なメモリの上限に近づいています。クラスターの最大 DCU 設定を引き上げることを検討してください。このメトリクスがリーダーインスタンスでゼロの値に近づいた場合、クラスターにリーダーインスタンスを追加することを検討してください。これにより、ワークロードの読み取り専用部分のワークロードをより多くのインスタンスに分散することで、各リーダーインスタンスのメモリ使用量を軽減できます。
+ **`TempStorageIops`** — インスタンスにアタッチされたローカルストレージで実行された IOPS の数です。これには、読み取りと書き込みの両方の IOPS が含まれます。このメトリクスはカウントを表し、1 秒に 1 回測定されます。これは DocumentDB サーバーレスの新しいメトリクスです。詳細については、「[Amazon DocumentDB と CloudWatch のモニタリング](cloud_watch.md)」を参照してください。
+ **`TempStorageThroughput`** — インスタンスに関連するローカルストレージとの間で転送されるデータの量です。このメトリクスはバイトを表し、1 秒に 1 回測定されます。これは DocumentDB サーバーレスの新しいメトリクスです。詳細については、「[Amazon DocumentDB と CloudWatch のモニタリング](cloud_watch.md)」を参照してください。

通常、DocumentDB サーバーレスインスタンスのスケールアップの大部分は、メモリ使用率と CPU アクティビティに起因しています。`TempStorageIops` および `TempStorageThroughput` のメトリクスは、インスタンスとローカルストレージデバイス間の転送のためのネットワークアクティビティが、予期しない容量増加の原因となるまれなケースを診断するのに役立ちます。他のネットワークアクティビティを監視するには、以下の既存のメトリクスを使用できます。
+ `NetworkReceiveThroughput`
+ `NetworkThroughput`
+ `NetworkTransmitThroughput`
+ `StorageNetworkReceiveThroughput`
+ `StorageNetworkThroughput`
+ `StorageNetworkTransmitThroughput`

### DocumentDB サーバーレス CloudWatch メトリクスが AWS 請求書にどのように適用されるか
<a name="w2aac41c27b9c13"></a>

 AWS 請求書の DocumentDB サーバーレス料金は、モニタリングできるのと同じ`ServerlessDatabaseCapacity`メトリクスに基づいて計算されます。請求メカニズムでは、DocumentDB サーバーレスの容量を 1 時間の一部しか使用していない場合、このメトリクスで計算された CloudWatch の平均とは異なる場合があります。また、システムの問題で、短時間 CloudWatch メトリクスが利用できない場合にも異なる場合があります。したがって、お客様が `ServerlessDatabaseCapacity` の平均値から計算したものと、請求書に記載される DCU 時間の値が若干異なる場合があります。

### DocumentDB サーバーレスメトリクスの Amazon CloudWatch CLI コマンドの例
<a name="w2aac41c27b9c15"></a>

次の AWS CLI 例は、DocumentDB サーバーレスに関連する最も重要な CloudWatch メトリクスをモニタリングする方法を示しています。いずれの場合も、`--dimensions` パラメータの `Value=` 文字列は、お客様の DocumentDB サーバーレスインスタンスの ID に置き換えてください。

以下の Linux の例では、インスタンスの最小、最大、平均の容量値を 1 時間で 10 分ごとに測定して表示しています。Linux の日付コマンドでは、現在の日付と時刻を基準にして開始時刻と終了時刻を指定します。`--query` パラメータの `sort_by` 関数は、`Timestamp` のフィールドに基づいて結果を時系列でソートします。

```
aws cloudwatch get-metric-statistics \
    --metric-name "ServerlessDatabaseCapacity" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

以下の Linux の例では、クラスター内のインスタンスの容量のモニタリングを示しています。インスタンスの最小、最大、平均の容量使用率を測定しています。測定は、1 時間に 1 回、3 時間にわたって行います。これらの例では、DCU の固定数を表すの `ServerlessDatabaseCapacity` の代わりに、DCU の上限に対する割合を表す `DCUUtilization` メトリクスを使用しています。そうすれば、容量範囲の最小と最大の DCU 値の実際の数値を知る必要はありません。割合は 0 から 100 までの範囲で表示できます。

```
aws cloudwatch get-metric-statistics \
    --metric-name "DCUUtilization" \
    --start-time "$(date -d '3 hours ago')" \
    --end-time "$(date -d 'now')" \
    --period 3600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

以下の Linux の例では、前のものと同様の測定を実行します。この場合は、`CPUUtilization` のメトリクスのための測定になります。測定は、1 時間で 10 分ごとに行われます。この数値は、インスタンスの最大容量設定に利用可能な CPU リソースに基づき、利用可能な CPU リソースを表します。

```
aws cloudwatch get-metric-statistics \
    --metric-name "CPUUtilization" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

以下の Linux の例では、前のものと同様の測定を実行します。この場合は、`FreeableMemory` のメトリクスのための測定になります。測定は、1 時間で 10 分ごとに行われます。

```
aws cloudwatch get-metric-statistics \
    --metric-name "FreeableMemory" \
    --start-time "$(date -d '1 hour ago')" \
    --end-time "$(date -d 'now')" \
    --period 600 \
    --namespace "AWS/DocDB" \
    --statistics Minimum Maximum Average \
    --dimensions Name=DBInstanceIdentifier,Value=my_instance \
    --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \
    --output table
```

## パフォーマンスインサイトによる DocumentDB サーバーレスパフォーマンスのモニタリング
<a name="w2aac41c27c11"></a>

パフォーマンスインサイトを使用して、DocumentDB サーバーレスインスタンスのパフォーマンスをモニタリングできます。パフォーマンスインサイトの手順については、「[Performance Insights を使用したモニタリング](performance-insights.md)」を参照してください。

以下の新しいパフォーマンスインサイトカウンターが DocumentDB サーバーレスインスタンスに適用されます。
+ **`os.general.serverlessDBCapacity`** - DCU 内のインスタンスの現在の容量。この値は、インスタンスの `ServerlessDatabaseCapacity` CloudWatch メトリクスに対応します。
+ **`os.general.dcuUtilization`** — 設定された最大容量のうち、現在の容量の割合。この値は、インスタンスの `DCUUtilization` CloudWatch メトリクスに対応します。
+ **`os.general.maxConfiguredDcu`** — この DocumentDB サーバーレスインスタンスのために設定された最大容量。これは、DCU で測定されます。
+ **`os.general.minConfiguredDcu`** — この DocumentDB サーバーレスインスタンスのために設定された最小容量。これは、DCU で測定されます。

パフォーマンスインサイトカウンターのすべてのリストは、「[カウンターメトリクス用の Performance Insights](performance-insights-counter-metrics.md)」を参照してください。

パフォーマンスインサイトで DocumentDB サーバーレスインスタンスの vCPU 値が表示される場合、その値は、インスタンスの DCU 値に基づいた推定値を表します。デフォルトの 1 分間隔では、vCPU 値の小数分は整数に切り上げられます。それ以上の間隔の場合、表示される vCPU 値は、1 分ごとの vCPU 値の整数の平均になります。