

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

# Amazon DocumentDB クラスターのスケーリング
<a name="db-cluster-manage-performance"></a>

Amazon DocumentDB では、ニーズに応じてクラスターのストレージとコンピューティングをスケールできます。このセクションでは、ストレージのスケーリング、インスタンスのスケーリング、および読み取りのスケーリングを使用して、Amazon DocumentDB クラスターとインスタンスのパフォーマンスとスケーリングを管理する方法について説明します。

**Topics**
+ [ストレージのスケーリング](#db-cluster-manage-scaling-storage)
+ [インスタンスのスケーリング](#db-cluster-manage-scaling-instance)
+ [読み取りのスケーリング](#db-cluster-manage-scaling-reads)
+ [書き込みスケーリング](#db-cluster-manage-scaling-writes)

## ストレージのスケーリング
<a name="db-cluster-manage-scaling-storage"></a>

Amazon DocumentDB ストレージは、クラスターボリューム内のデータに合わせて自動的にスケーリングします。データが増加すると、クラスターボリュームストレージは、10 GiB 単位で最大 128 TiB まで増加します。

## インスタンスのスケーリング
<a name="db-cluster-manage-scaling-instance"></a>

DB クラスター内の各 DB インスタンスの DB インスタンスクラスを変更することで、必要に応じて Amazon DocumentDB クラスターをスケーリングできます。Amazon DocumentDB では、Amazon DocumentDB 用に最適化されたいくつかのインスタンスクラスをサポートしています。

詳細については、「[Amazon DocumentDB インスタンスの変更](db-instance-modify.md)」を参照してください。

## 読み取りのスケーリング
<a name="db-cluster-manage-scaling-reads"></a>

Amazon DocumentDB クラスターの読み取りのスケーリングは、最大 15 個の Amazon DocumentDB レプリカをクラスター内に作成することで実現できます。各 Amazon DocumentDB レプリカは、最小限のレプリカラグでクラスターボリュームから同じデータを返します。通常、このラグはプライマリインスタンスが更新を書き込んだ後、100 ミリ秒を大幅に下回ります。読み取りトラフィックが増えたら、追加の Amazon DocumentDB レプリカを作成し、それらに直接接続することで DB クラスターの読み取りワークロードを分散できます。Amazon DocumentDB レプリカのインスタンスクラスは、プライマリイスタンスと同じものである必要はありません。

詳細については、「[クラスターへの Amazon DocumentDB インスタンスの追加](db-instance-add.md)」を参照してください。

Amazon DocumentDB でスケールを読み取る場合は、レプリカセットとしてクラスターに接続し、ドライバーに組み込まれている読み取り設定機能を使用してレプリカインスタンスに読み取りを分散することをお勧めします。詳細については、「[レプリカセットとしての Amazon DocumentDB に接続する](connect-to-replica-set.md)」を参照してください。

## 書き込みスケーリング
<a name="db-cluster-manage-scaling-writes"></a>

クラスターのプライマリインスタンスのサイズを増やすことで、Amazon DocumentDB クラスターの書き込み容量をスケールできます。このセクションでは、ニーズに応じてクラスターのプライマリインスタンスをスケーリングする 2 つの方法を示します。最初のオプションは、アプリケーションへの影響を最小限に抑えることを目指しますが、完了するにはより多くのステップが必要です。2 番目のオプションは、ステップ数が減るため、最適化で簡素化されますが、アプリケーションへの潜在的な影響が増えるというトレードオフを伴います。

アプリケーションに応じて、以下の最適なアプローチを選択できます。利用可能なインスタンスのサイズとコストの詳細については、「[Amazon DocumentDB の料金](https://aws.amazon.com/documentdb/pricing/)」を参照してください。

1. **高可用性とパフォーマンスのための最適化** - [レプリカセットモード](connect-to-replica-set.md) でクラスターに接続している場合 (推奨) は、プライマリインスタンスのスケーリング時に、次のプロセスを使用してアプリケーションへの影響を最小限に抑えることができます。この方法では、クラスターが高可用性以上に維持され、読み取りスケーリングターゲットが (インプレースで更新されずに) インスタンスとしてクラスターに追加されるため、影響が最小限に抑えられます。

   1. より大きなインスタンスタイプの 1 つ以上のレプリカをクラスターに追加します (「[クラスターへの Amazon DocumentDB インスタンスの追加](db-instance-add.md)」を参照)。すべてのレプリカは、プライマリと同等以上のサイズのインスタンスタイプにすることをお勧めします。これにより、書き込みパフォーマンスが意図せずに低下して、より小さなインスタンスタイプにフェイルオーバーすることを回避できます。ほとんどのお客様にとって、これは、クラスター内のインスタンス数を一時的に 2 倍にし、スケーリングの完了後により小さなレプリカを削除することを意味します。

   1. すべての新しいレプリカのフェイルオーバー層を優先度ゼロに設定し、より小さいインスタンスタイプのレプリカのフェイルオーバー優先度が最も高くなるようにします。詳細については、「[フェイルオーバーターゲットの制御](failover.md#failover-target_control)」を参照してください。

   1. 手動フェイルオーバーを開始し、新しいレプリカの 1 つをプライマリインスタンスに昇格させます。詳細については、「[フェイルオーバーのテスト](failover.md#failover-testing)」を参照してください。
**注記**  
これに伴って、クラスターのダウンタイムが最大 30 秒発生します。このダウンタイムを見越した計画を立ててください。

   1. 新しいプライマリより小さいインスタンスタイプのすべてのレプリカをクラスターから削除します。

   1. すべてのインスタンスのフェイルオーバー層の設定を同じ優先度に戻します (通常、これは設定を 1 に戻すことを意味します)。

   たとえば、クラスターに現在 3 つの `r5.large` インスタンス (1 つのプライマリと 2 つのレプリカ) が含まれていて、`r5.xlarge` インスタンスタイプにスケールするとします。これを行うには、まず 3 つの `r5.xlarge` レプリカインスタンスをクラスターに追加し、これらの新しい `r5.xlarge` レプリカのフェイルオーバー層をゼロに設定します。次に、手動フェイルオーバーを開始します (アプリケーションのダウンタイムを最大 30秒見込みます)。フェイルオーバーが完了したら、3 つすべての `r5.large` インスタンスをクラスターから削除し、クラスターが `r5.xlarge` インスタンスにスケールされた状態にします。

   コストを最適化しやすいように、Amazon DocumentDB インスタンスは秒単位で課金されます。インスタンスの作成、変更、削除などの課金対象のステータス変更に続く 10 分間の料金が最小の請求額となります。詳細については、ベストプラクティスのドキュメントの「[コスト最適化](best_practices.md#best_practices-cost_optimization)」を参照してください。

1. **単純化のために最適化** — このアプローチは、シンプルさを最適化します。クラスターの拡張と縮小は行われませんが、読み取り容量が一時的に減少する可能性があります。

   レプリカのインスタンスクラスを変更すると、そのインスタンスが数秒から 30 秒未満の短い期間、リクエストを処理しなくなる可能性があります。[レプリカセットモード](connect-to-replica-set.md)(推奨) でクラスターに接続している場合、スケーリング操作中に読み取りキャパシティが 1 つのレプリカ (例えば、3 ノードクラスタでは 66% の容量、4 ノードクラスタで 75% の容量など) が減少します。

   1. クラスター内の 1 つのレプリカインスタンスをスケールします。詳細については、「[インスタンスクラスの管理](db-instance-classes.md)」を参照してください。

   1. インスタンスが利用可能になるまで待ちます (「[Amazon DocumentDB インスタンスのステータスのモニタリング](monitoring_docdb-instance_status.md)」を参照)。
**注記**  
これに伴って、クラスターのダウンタイムが最大 30 秒発生します。このダウンタイムを見越した計画を立ててください。

   1. すべてのレプリカインスタンスが 1 つずつスケールされるまで、手順 1 と 2 を実行します。

   1. 手動フェイルオーバーを開始します。これにより、レプリカがプライマリインスタンスに昇格します。詳細については、「[Amazon DocumentDB フェイルオーバー](failover.md)」を参照してください。
**注記**  
これにより、クラスターのダウンタイムが最大 30 秒発生しますが、それよりも時間が短くなります。このダウンタイムを見越した計画を立ててください。

   1. 前のプライマリ (現在はレプリカ) インスタンスをスケールします。