オートスケーリングを構成する
項目一覧
注意
機能の可用性
Atlas クラスター階層の自動スケーリングは、General と Low-CPU クラスタークラスに該当するすべての専用クラスター階層で利用できます。
Atlas が使用するクラスター階層範囲を構成して、クラスターの使用状況に応じてクラスター階層、ストレージ容量、またはその両方をオートスケーリングできます。
Atlas のオートスケーリングは、リアルタイムのリソース使用量に基づいてクラスター階層を調整します。改良された自動スケーリングエンジンは、アップスケーリング決定のために、持続的な高需要と短期的なピークトラフィックをより正確に検出できるようになりました。同様に、Atlas はダウンスケールの選択をより迅速に行い、リソースの利用とコストプロファイルをより最適化します。
コストを管理しやすくするために、クラスターが自動的に増やすことができる最大クラスターサイズと最小クラスターサイズの範囲を指定できます。
オートスケーリングはローリングベースで動作し、プロセスによるダウンタイムは発生しません。Atlas はこのプロセス中にプライマリを維持しますが、ノードは 1 つずつアップグレードされ、アップグレード中は使用できなくなります。
Atlas によるクラスター階層の増加方法
注意
階層の可用性
自動スケーリングは General と Low-CPU クラスのクラスター階層では機能しますが、Local NVMe SSD クラスのクラスターでは機能しません。
Atlas は次のクラスターメトリクスを分析して、クラスターをいつ増やすか、クラスター階層を増やすか、または減らすかを決定します。
Normalized System CPU 使用率
システムメモリ使用率
Atlas は、使用可能なノードメモリと合計メモリに基づいて、次のようにシステムメモリ使用率を計算します。
(memoryTotal
- (memoryFree
+ memoryBuffers
+ memoryCached
)) / (memoryTotal
) * 100
前の計算では、memoryFree
、memoryBuffers
、および memoryCached
は、Atlas が他の目的で再利用できる使用可能なメモリの量です。詳しくは、「利用可能なメトリクスを確認する」の「System Memory」を参照してください。
新しいクラスター階層が指定した Minimum と Maximum Cluster Size の範囲から外れる場合、Atlas はクラスター階層をスケーリングしません。
Atlas では、クラスターを同じクラスにある別の階層にスケーリングします。たとえば、Atlas は General クラスターを他の General クラスタークラスにスケーリングしますが、General クラスターを Low-CPU クラスタークラスにスケーリングしません。
適切なクラスター リソースの使用率を確保するために、正確なオートスケーリング基準は変更される可能性があります。
重要
また、移行中に、宛先クラスターのストレージ容量よりも大きいサイズのスナップショットを復元すると、クラスターはオートスケーリングされません。
読み取り専用ノードを配置しており、クラスターのスケーリングをより速くするには、レプリカセットのスケーリング モード を調整することを検討してください。
クラスター階層のスケールアップ
アプリケーションの動的ワークロードを効果的に管理するために、Atlas はこのセクションで説明する条件下でクラスター内のノードをスケールアップします。
次のクラスター階層が Maximum Cluster Size の範囲内にある場合、クラスター内の指定されたタイプの任意のノードに対して次の条件の 1 つ以上が当てはまる場合、Atlas はクラスター内のノードを次の階層にスケールアップします。
M10
クラスターで稼働しているノードで、平均的な Normalized System CPU Utilization または System Memory Utilization が、過去 1 時間にクラスターで利用可能なリソースの 75% を超えた。M20
クラスターで稼働しているノードで、平均的な Normalized System CPU Utilization または System Memory Utilization が、クラスターで利用可能なリソースの 90% を少なくとも 20 分間超えたか、またはクラスターで利用可能なリソースの 75% を少なくとも 1 時間超えた。M30+
クラスターで稼働しているノードで、平均的な Normalized System CPU Utilization または System Memory Utilization が、過去 10 分間にクラスターで使用可能なリソースの 90% を超えたか、または少なくとも 1 時間、クラスターで使用可能なリソースの 75% を超えた。これらのしきい値により、クラスターは高負荷に対応して迅速にスケールアップし、アプリケーションはトラフィックや使用量の急増に対応しながら、パフォーマンスと信頼性を維持できます。
平均的な Normalized System CPU Utilization または System Memory Utilization が、過去 1 時間にクラスターで利用できるリソースの 75% を超えた。
Atlas では、クラスターが次の条件でスケールアップされていない場合、クラスターが次の階層に増えます。
M10+
クラスターが、過去 1 時間以内にスケールアップされていない。M20+
クラスターが、過去 20 分または 1 時間(しきい値による)スケールアップされていない。M30+
クラスターが、過去 10 分または 1 時間(しきい値による)スケールアップされていない。
たとえば、クラスターの現在の Normalized System CPU 使用率が 90% より大きい場合、Atlas は M30+
クラスターを T+10
でスケールアップします。
重要
ワークロードの急増
より大きなクラスター階層にスケールアップするには、バッキングリソースを準備するのに十分な時間が必要です。クラスターが一括挿入などのアクティビティのバーストを受け取った場合、オートスケーリングが実行されない可能性があります。リソース不足のリスクを軽減するには、一括挿入やその他のワークロードの急増が発生する前にクラスターのスケールアップを計画します。
クラスター階層のスケールダウン
コストを最適化するために、Atlas はこのセクションに記載されている条件下でクラスター内のノードをスケールダウンします。
次に低いクラスター階層が Minimum Cluster Size の範囲内にある場合、Atlas は、指定されたクラスタータイプのすべてのノードに対して次の条件のすべてが当てはまる場合、クラスター内のノードを次の最も低い層にスケールダウンします。
平均的な Normalized System CPU Utilization が、少なくとも過去 4 時間にクラスターで使用可能なリソースの 50% を下回った。
WiredTiger のキャッシュ平均使用量が、現在のクラスター階層サイズで少なくとも 4 時間、WiredTiger の最大キャッシュサイズの 90% を下回っている。これは、現在のクラスターが過負荷になっていないことを Atlas に示します。
新しい下位クラスター階層での予想される合計メモリ使用率が、少なくとも 4 時間、60% を下回っている。Atlas は、上述の予測される合計メモリ使用率を次のように計算します。
Atlas は、現在のメモリ使用率を測定し、現在の WiredTiger キャッシュ使用量を新しい下位階層クラスターの WiredTiger キャッシュサイズの 80% に置き換えます。
次に、Atlas は、予測される合計メモリ使用率が新しい階層サイズで少なくとも 4 時間、60% を下回るかどうかを確認します。
注意
Atlas はメモリ計算に WiredTiger キャッシュを含めて、完全なキャッシュを持つクラスターがスケールダウンする可能性を高くしますが、それ以外の場合は低トラフィックがスケールダウンされます。つまり、Atlas はWiredTiger キャッシュのサイズを検査して、クラスターの WiredTiger キャッシュがクラスターの最大 WiredTiger キャッシュサイズの 90% に達する可能性がある場合には、Normalized System CPU 使用率が低いアイドルクラスターを安全にダウンスケールできると判断します。
クラスターは過去 24 時間で(手動または自動で)スケールダウンされていない。
これらの条件により、Atlas はクラスター内の稼働中のノードをスケールダウンして、高使用率の状態を防ぐことができます。
過去 24 時間の平均 Normalized System CPU Utilization と System Memory Utilization が、クラスターで利用可能なリソースの 50% を下回っている。
クラスターは過去 24 時間で(手動または自動で)スケールダウンされていない。
注意
M10
とM20
クラスターは、バースト期間後にクラウドプロバイダーが設定した CPU 使用率の上限を考慮して、より低いしきい値を使用しています。これらのしきい値は、クラウドプロバイダーとクラスター階層によって異なります。
クラスター階層とストレージの下方オートスケーリングに関する考慮事項
MongoDB Atlas がクラスターのストレージ容量をスケールダウンする場合、増加プロセスの仕組みにより、ストレージ容量の拡張よりも時間がかかる場合があります。
配置のワークロードの範囲を見積もり、Minimum Cluster Size の値を、配置のワークロードを処理するのに十分なキャパシティーがあるクラスター階層に設定します。クラスターの活動が急上昇または急降下する可能性を考慮する必要があります。
M10
より小さいクラスター階層にはスケールできません。クラスターの現在のディスク構成より低い最小クラスター階層を選択することはできません。最小クラスター階層でサポートされる範囲を超えてストレージが増加した場合、Atlas は最小クラスター階層がサポートする範囲を超えてクラスターのストレージ構成を増加させ、Atlas はクラスターが現在のストレージ要件に対応できるよう、最小クラスター階層を自動的に調整します。
例
自動スケーリング範囲を
M20
〜M60
に設定しました。現在のクラスター階層はM40
で、ディスク容量は 200 GB です。現在のディスク使用量が 180 GBを超えており、これが 200 GB キャパシティーの 90% を超えているため、Atlas はディスクのオートスケーリングイベントをトリガーしてキャパシティーを 320 GB に増やします。Atlas:
使用している最小クラスター階層を、新しいストレージ容量に対応できる次に低い階層である
M30
まで引き上げる。M20
はストレージ容量最大 256 GB まで対応しているため、有効なオートスケーリングの限界ではなくなる。Atlas が、現在のインスタンスサイズ
M40
が新しいディスク設定をサポートしていると判断する。ディスクの自動スケーリングイベントが成功する。
シャーディングされたクラスターの増加
Atlas は、レプリカセットと同じ基準を使用して、シャーディングされたクラスターの階層をオートスケールします。Atlas は、次のルールを適用します。
オートスケーリングは、シャーディングされたクラスター内のすべてのシャードに適用される。同じクラスター内の一部のシャードにはオートスケーリングを適用できず、他のシャードには適用できない。
クラスター階層を自動スケールアップするための基準を満たすシャードがあれば、すべてのシャードがクラスター階層をスケールアップする。
Atlas がクラスター階層を自動的にスケールダウンする前に、クラスター内のすべてのシャードが基準を満たしている必要があります。
Config サーバーのレプリカセットはオートスケールされない。
Atlas によるクラスター ストレージの増加方法
Atlas では、クラスター ストレージのオートスケーリングがデフォルトで有効になります。 Atlas では、クラスター内の任意のノードで使用済みディスク容量が90 % に達すると、クラスター ストレージが自動的に増加します。
次の考慮事項が適用されます。
Atlas は、クラスター ストレージのみを自動的にスケールアップします。 クラスターの編集ページからのクラスターストレージの手動削減が可能です 。
Amazon Web Services 、 Azure 、およびGCPクラスターでは、 Atlasはクラスターのストレージ容量を増やして、ディスク領域の 70% が使用可能になります。 詳しくは、「 のストレージ容量または IOPS の変更Amazon Web Services 」、 「 のストレージ容量と IOPS の拡張 」Azure 、 「 のストレージ容量の変更」 を参照してください。Google Cloud Platform
クラスターを増やす予定の場合は、高速な書き込みアクティビティを避けます。 クラスターをより大きなストレージ キャパシティーにスケールアップするには、データを準備して新しいディスクにコピーするのに十分な時間が必要です。 クラスターが一括挿入などの高速書込みアクティビティを大量に受信した場合、ディスク ストレージ容量が一時的に急増し、オートスケーリングが実行されない可能性があります。 ディスク ストレージが実行中のリスクを軽減するには、一括挿入やインスタンスの高速書込みアクティビティの前にクラスターを増やすを計画します。
ベースノードに 1 つのクラスター階層クラスを指定し、分析ノードに別のクラスター階層クラスを指定すると、Atlas はディスクの自動スケーリングを無効にする。たとえば、Base Tier で稼働中のノードに General クラスタークラスを指定し、Analytics Tier で分析ノードに Low-CPU クラスタークラスを指定すると、Atlas は次のエラーメッセージを表示してディスクのオートスケーリングを無効にします:
Disk auto-scaling is not yet available for clusters with mixed instance classes
Atlas では、Base Tier ノードとAnalytics Tier ノードを異なるクラウドプロバイダーのリージョンを配置すると、ディスクのオートスケーリングが無効になります。
クラスター階層とクラスター ストレージは並行して拡張される可能性があります
Atlas がクラスターのストレージ容量をオートスケーリングしようとすると、現在のクラスター階層がサポートする範囲外でストレージを拡張する必要がある場合があります。 クラスターでダウンタイムが発生しないよう、Atlas はクラスター階層(クラスター ストレージに加えて)を新しいストレージ容量に対応するようにスケーリングします。
Azureでは、拡張ストレージ をサポートするリージョンの 1 つに配置されたクラスターでオートスケーリングが有効になっており、現在のIOPSがオートスケーリング ディスク サイズのデフォルトIOPSより小さい場合、Atlas はIOPSの割り当て数を増やしますIOPSスライダーと UI で通知します。 詳しくは、「 Azure におけるストレージ容量と IOPS の拡張 」を参照してください。
例
M30
クラスターの最大ストレージ容量は480 GB です。 最大ストレージが割り当てられているM30
クラスターがあり、使用済みディスク容量が90 % に達した場合、ストレージのオートスケーリング イベントにより、ストレージ容量を600 GB に増やす必要があります。 この場合、Atlas ではクラスター階層がM40
までスケールアップされます。これは、必要な新しいストレージ容量をサポートできる最低のクラスター階層だからです。 Azure では、 拡張ストレージ をサポートするリージョン の 1 つにクラスターを配置した場合、Atlas は、その階層のクラスターの IOPS レベルと一致するように IOPS も自動的に増加します。
指定した最大クラスター階層が新しいストレージ容量をサポートできない場合、Atlas は次の処理を実行します。
お使いの最大クラスター階層を、新しいストレージ容量に対応できる次に低い階層まで引き上げます。
クラスター階層をその新しい最大階層に増やします。
注意
Atlas が最大クラスター階層を上書きすると、クラスターの自動スケールダウンも無効になります。下方オートスケーリングを再度有効にするには、クラスター設定で構成してください。「クラスター階層とストレージの下方オートスケーリングに関する考慮事項」も参照してください。
Atlas がクラスター階層のスケールダウンを試み、ターゲット層が現在のディスク容量、プロビジョニングされた IOPS、またはその両方をサポートできない場合、Atlas ではクラスターがスケールダウンされません。このシナリオでは、Atlas で、現在のクラスター階層と構成済みの最大クラスター階層との関係に基づいてオートスケーリング設定が更新されます。
クラスターが現在構成されている最大クラスター階層にある場合、すべての小さい層が必要なストレージ設定に対応できないため、Atlas はクラスターの自動スケールダウンを無効にします。下方オートスケーリングを再度有効にする場合は、クラスター設定から手動で有効にする必要があります。
クラスターが現在設定されている最大クラスター階層にない場合、Atlasは最小クラスター階層を現在のクラスター階層まで引き上げます。この場合、Atlas は下方オートスケーリングを無効にしません。
このオートスケーリング ロジックにより、ストレージ設定がワークロードと一致しない場合でも、ダウンタイムを軽減できます。
oplog に関する考慮事項
ストレージのオートスケーリングを使用するかどうかに応じて、Atlas は oplog の最小保持ウィンドウまたは oplog サイズに基づいて oplog エントリを管理します。詳しくは、「Oplog サイズの動作」を参照してください。Atlas では、ストレージのオートスケーリングはデフォルトで有効になっています。
オートスケーリングオプションを構成する
クラスターを作成または変更するときに、オートスケーリング オプションを構成できます。新しいクラスターの場合、Atlas はクラスター層のオートスケーリングとストレージのオートスケーリングを自動的に有効にします。
次のいずれかの操作を実行できます。
クラスターをオートスケーリングするときに Atlas が使用する必要がある上位クラスター階層と下位クラスター階層を確認して調整するか、 または
オートスケーリング の使用をオプトアウトします。
Atlas では、General クラスター階層および Low-CPU クラスター階層のクラスター ビルダーの Auto-scale セクションにオートスケーリング オプションが表示されます。
デフォルトで有効になっているオートスケーリング
新しいクラスターを作成すると、MongoDB Atlas はクラスター階層とストレージのオートスケーリングを有効にします。オートスケーリングを明示的に有効にする必要はありません。必要に応じて、クラスター階層とストレージをオプトアウトすることもできます。
注意
Atlasでは、Atlas UIでクラスターを作成すると、デフォルトでクラスター階層のオートスケーリングが有効になります。API を使用してクラスターを作成すると、Atlas はデフォルトでクラスター階層のオートスケーリングを無効にします。
オートスケーリングを有効にすると、クラスターは自動的に次の操作を実行できます。
より高いクラスター階層により、スケールアップして、機能を強化します。
現在のクラスター階層を下位のクラスター階層に下げます。
Auto-scale オプションの Cluster tier セクションでは、クラスターがオートスケーリングできる Maximum Cluster Size と Minimum Cluster Size の値を指定できます。Atlas では、これらの値が次のように設定されます。
Maximum Cluster Size は、現在のクラスター階層より 1 つ上の層に設定されています。
Minimum Cluster Size は現在のクラスター階層に設定されています。
クラスター階層のオートスケーリング オプションを検討する
クラスター階層とストレージに対して有効になっているオートスケーリング オプションを確認するには、次の手順を行います。
選択した Auto-Scale チェックボックスで、Maximum Cluster Size と Minimum Cluster Size の値を確認し、必要に応じて調整します。
新しいクラスターを作成するときにデフォルトでチェックされる Allow cluster to be scaled down オプションを確認してください。
デフォルトでチェックされている Storage Scaling チェックボックスの下のオプションを確認します。
クラスター階層とストレージのオートスケーリングをオプトアウトする
クラスターのオートスケーリング(クラスター階層の増加)をオプトアウトするには、新しいクラスターを作成するときに、Cluster Tier メニューに移動し、Auto-scale セクションの Cluster Tier Scaling チェックボックスをオフにします。
クラスターのオートスケーリング(クラスター階層の減少)をオプトアウトするには、新しいクラスターを作成するときに、Cluster Tier メニューに移動し、Auto-scale セクションの Allow cluster to be scaled down チェックボックスをオフにします。
クラスター ストレージのスケーリングをオプトアウトするには、Auto-scale セクションの Storage Scaling チェックボックスをオフにします。
オートスケーリング アクティビティ フィードの確認
アクティビティ フィード を表示して、各 Atlas プロジェクトのイベントを確認できます。 オートスケーリング イベントが発生すると、Atlas はそのイベントをプロジェクトActivity Feedに記録します。
オートスケーリング イベントのみを表示またはダウンロードするには、次の手順に従います。
Activity Feedで、 Filter by event(s)メニューをクリックし、 Atlasを確認します。
リストの上の検索ボックスに、「
auto-scaling
」と入力し始めます。メニューの右側には、すべてのオートスケーリング イベントが表示されます。 表示されたくないものの選択を解除します。 フィードリストは、変更を加えるたびに自動的に更新されます。
オートスケーリング イベントのアラートの構成
重要
2024 年 8 月上旬に、Atlas はレガシーのオートスケーリング通知メールを、設定可能なオートスケーリングイベントに置き換えました。デフォルトでは、Atlas はすべてのアラート通知を引き続きプロジェクト所有者に送信します。オートスケーリングアラートの送信をカスタマイズして、アラートの受信者または送信方法を変更できます。
オートスケーリング アクティビティは、 Atlas アラートのサブセットです。
Atlas は、オートスケーリング イベント のデフォルトのアラートを自動的に設定します。 プロジェクト レベルで、一部またはすべてのオートスケーリング イベントについて、 をオプトアウトしたり、アラート構成を変更したりできます。
アラート構成を変更するには、 Categoryセクションで [ Atlas Auto Scalingを選択し、リストから [ Condition/Metricを選択します。 次に、アラート受信者のロールを変更したり、メールや SMS などの通知方法を変更したり、Slack などの通知機能を追加したりできます。 詳細については、「オートスケーリング アラートの構成 」を参照してください。