Docs Menu

オートスケーリングを構成する

注意

機能の可用性

Atlas クラスター階層の自動スケーリングは、GeneralLow-CPU クラスタークラスに該当するすべての専用クラスター階層で利用できます。

Atlas が使用するクラスター階層範囲を構成して、クラスターの使用状況に応じてクラスター階層、ストレージ容量、またはその両方をオートスケーリングできます。

Atlas のオートスケーリングは、リアルタイムのリソース使用量に基づいてクラスター階層を調整します。改良された自動スケーリングエンジンは、アップスケーリング決定のために、持続的な高需要と短期的なピークトラフィックをより正確に検出できるようになりました。同様に、Atlas はダウンスケールの選択をより迅速に行い、リソースの利用とコストプロファイルをより最適化します。

コストを管理しやすくするために、クラスターが自動的に増やすことができる最大クラスターサイズと最小クラスターサイズの範囲を指定できます。

オートスケーリングはローリングベースで動作し、プロセスによるダウンタイムは発生しません。Atlas はこのプロセス中にプライマリを維持しますが、ノードは 1 つずつアップグレードされ、アップグレード中は使用できなくなります。

インフラストラクチャをコード ツールとしてオートスケーリング機能を使用する際のリソースドリフトの回避など、スケーラビリティに関する推奨事項については、Atlas アーキテクチャ センターの「 Atlas スケーラビリティに関する推奨事項 」を参照してください。

注意

階層の可用性

自動スケーリングは GeneralLow-CPU クラスのクラスター階層では機能しますが、Local NVMe SSD クラスのクラスターでは機能しません

Atlas は次のクラスターメトリクスを分析して、クラスターをいつ増やすか、クラスター階層を増やすか、または減らすかを決定します。

  • Normalized System CPU 使用率

  • システムメモリ使用率

Atlas は、使用可能なノードメモリと合計メモリに基づいて、次のようにシステムメモリ使用率を計算します。

(memoryTotal - (memoryFree + memoryBuffers + memoryCached)) / (memoryTotal) * 100

前の計算では、memoryFreememoryBuffers、および memoryCached は、Atlas が他の目的で再利用できる使用可能なメモリの量です。詳しくは、「利用可能なメトリクスを確認する」の System Memory を参照してください。

新しいクラスター階層が指定した MinimumMaximum Cluster Size の範囲から外れる場合、Atlas はクラスター階層をスケーリングしません。

Atlas では、クラスターを同じクラスにある別の階層にスケーリングします。たとえば、Atlas は General クラスターを他の General クラスタークラスにスケーリングしますが、General クラスターを Low-CPU クラスタークラスにスケーリングしません。

適切なクラスター リソースの使用率を確保するために、正確なオートスケーリング基準は変更される可能性があります。

重要

また、移行中に、宛先クラスターのストレージ容量よりも大きいサイズのスナップショットを復元すると、クラスターはオートスケーリングされません。

読み取り専用ノードを配置しており、クラスターのスケーリングをより速くするには、レプリカセットのスケーリング モード を調整することを検討してください。

アプリケーションの動的ワークロードを効果的に管理するために、Atlas はこのセクションで説明する条件下でクラスター内のノードをスケールアップします。

次のクラスター階層が Maximum Cluster Size の範囲内にある場合、Atlas はクラスター内の運用ノードを次の階層にスケールアップします。ただし、このタイプのクラスター ノードのいずれかに対して次の基準の 1 つ以上が当てはまる場合に限ります。

注意

次のリストは、CPU 関連の基準をグループ化し、その後にメモリ関連の基準を続けて示します。各グループ内では、基準は最も制限の厳しいものから最も緩やかなものの順に表示され、特定のクラウドプロバイダーの基準が存在する場合は最初に表示されます。

  • M10 クラスターと M20 クラスター:

  • M30+ クラスター:

    • 平均 System CPU Utilization が過去 10 分間にクラスターで利用可能なリソースの 90% を超えました。

    • 過去 1 時間の平均 System CPU Utilization が、クラスターで使用可能なリソースの 75% を超えています。

    • 平均 System Memory Utilization が過去 10 分間にクラスターで利用可能なリソースの 90% を超えました。

    • 過去 1 時間の平均 System Memory Utilization が、クラスターで使用可能なリソースの 75% を超えています。

これらのしきい値により、クラスターは高負荷に対応して迅速にスケールアップし、アプリケーションはトラフィックや使用量の急増に対応しながら、パフォーマンスと信頼性を維持できます。

注意

このセクションの条件は、オペレーショナルノードについて説明しています。任意のクラウドプロバイダーによる分析ノードにおいて、正規化された System CPU Utilization の平均、または System Memory Utilization が過去 1 時間で任意のクラスターノードで利用可能なリソースの 75% を超えた場合、Atlas はそれらを次の階層にスケールアップします。

最適なリソース利用とコストプロファイルを達成するために、Atlas は次の条件が満たされる場合にクラスターを次の階層にスケールアップすることを避けます。

  • M10 または M20 クラスターが、過去 20 分または 1 時間(しきい値による)以内にスケールアップされた。

  • M30+ クラスターが、過去 10 分または 1 時間(しきい値による)以内にスケールアップされた。

たとえば、12:00 以降クラスター階層が変更されていない場合、クラスターの現在の正規化されたシステム CPU 使用率が 90% を超えると、Atlas は M30+ クラスターを 12:10 にスケールアップします。

重要

ワークロードの急増

より大きなクラスター階層にスケールアップするには、バッキングリソースを準備するのに十分な時間が必要です。クラスターが一括挿入などのアクティビティのバーストを受け取った場合、オートスケーリングが実行されない可能性があります。リソース不足のリスクを軽減するには、一括挿入やその他のワークロードの急増が発生する前にクラスターのスケールアップを計画します。

コストを最適化するために、Atlas はこのセクションに記載されている条件下でクラスター内のノードをスケールダウンします。

次に低いクラスター階層が Minimum Cluster Size の範囲内にある場合、Atlas は、指定されたクラスタータイプのすべてのノードに対して次の条件のすべてが当てはまる場合、クラスター内のノードを次の最も低い層にスケールダウンします。

  • 稼働中のノード:

    • 正規化された System CPU Utilization の平均値は、少なくとも過去 10 分および過去 4 時間にわたって、クラスターで使用可能なリソースの 45% を下回っています。Atlas は、CPU 負荷が観測されたレベルに安定したことを示す指標として、「4 時間平均」チェックポイントを使用します。Atlas は、Atlas が「4 時間平均」チェックポイントで捉えられなかった最近の CPU スパイクが発生していないことを示す指標として、「10 分平均」チェックポイントを使用します。

    • WiredTiger のキャッシュ 使用量の平均が、現在の クラスター階層サイズで直近の 10 分および 4 時間で、WiredTiger の最大キャッシュサイズの 90% を下回っている。これは、現在のクラスターが過負荷になっていないことを Atlas に示します。

    • 新しい下位クラスター階層での予測される合計システムメモリ使用率が、少なくとも過去 10 分間および過去 4 時間で 60% を下回っている。Atlas は、上述の予測される合計メモリ使用率を次のように計算します。

      Atlas は、現在のメモリ使用率を測定し、現在の WiredTiger キャッシュ使用量を新しい下位階層クラスターの WiredTiger キャッシュサイズの 80% に置き換えます。

      次に、Atlas は、予測される合計メモリ使用量が新しい階層サイズで少なくとも過去 4 時間および少なくとも過去 10 分間、60% を下回っているかどうかを確認します。

      注意

      Atlas はメモリ計算に WiredTiger キャッシュを含めて、クラスターが完全なキャッシュを持っているものの、それ以外の場合にトラフィックが少なければ、スケールダウンする可能性を高くします。つまり、Atlas はWiredTiger キャッシュのサイズを検査して、クラスターの WiredTiger キャッシュがクラスターの最大 WiredTiger キャッシュサイズの 90% に達する可能性があり、それ以外の状況では Normalized System CPU 使用率が低いアイドルクラスターは、安全にダウンスケールできると判断します。

    • クラスターは過去 24 時間で(手動または自動で)スケールダウンされていない。

    これらの条件により、Atlas はクラスター内の稼働中のノードをスケールダウンして、高使用率の状態を防ぐことができます。

  • 分析ノード:

    • 過去 24 時間の平均 Normalized System CPU UtilizationSystem Memory Utilization が、クラスターで利用可能なリソースの 50% を下回っている。

    • クラスターは過去 24 時間で(手動または自動で)スケールダウンされていない。

    注意

    M10 クラスターと M20 クラスターは、クラウドプロバイダーがバースト期間後に設定する CPU 使用量の上限を考慮して、より低いしきい値を使用します。これらのしきい値は、クラウドプロバイダーとクラスター階層によって異なります。

  • MongoDB Atlas がクラスターのストレージ容量をスケールダウンする場合、増加プロセスの仕組みにより、ストレージ容量の拡張よりも時間がかかる場合があります。

  • 配置のワークロードの範囲を見積もり、Minimum Cluster Size の値を、配置のワークロードを処理するのに十分なキャパシティーがあるクラスター階層に設定します。クラスターの活動が急上昇または急降下する可能性を考慮する必要があります。

  • M10 より小さいクラスター階層にはスケールできません。

  • クラスターの現在のディスク構成より低い最小クラスター階層を選択することはできません。最小クラスター階層でサポートされる範囲を超えてストレージが増加した場合、Atlas は最小クラスター階層がサポートする範囲を超えてクラスターのストレージ構成を増加させ、Atlas はクラスターが現在のストレージ要件に対応できるよう、最小クラスター階層を自動的に調整します。

    自動スケーリング範囲を M20M60 に設定しました。現在のクラスター階層は M40 で、ディスク容量は 200 GB です。現在のディスク使用量が 180 GBを超えており、これが 200 GB キャパシティーの 90% を超えているため、Atlas はディスクのオートスケーリングイベントをトリガーしてキャパシティーを 320 GB に増やします。

    Atlas:

    1. 使用している最小クラスター階層を、新しいストレージ容量に対応できる次に低い階層である M30 まで引き上げる。M20 はストレージ容量最大 256 GB まで対応しているため、有効なオートスケーリングの限界ではなくなる。

    2. Atlas が、現在のインスタンスサイズ M40 が新しいディスク設定をサポートしていると判断する。ディスクの自動スケーリングイベントが成功する。

Atlas は、レプリカセットと同じ基準を使用して、シャーディングされたクラスターの階層をオートスケールします。Atlas は、次のルールを適用します。

  • シャード内の運用ノードまたは分析ノードが自動スケーリングの基準を満たした場合、その特定のシャードの運用/分析ノードのみが階層を変更します。

  • Config サーバーのレプリカセットはオートスケールされない。

2024-08-05Versioned Atlas Administration APIのAPIリソースバージョン 以降では、各シャードのクラスター層を個別に個別に増やすできます。このAPIバージョンは、Atlas クラスターの基礎のスケーリング モデルに対する重要な変更です。

警告

2024-08-05 APIバージョンは 重要な重大な変更です。 新しいAPIでリクエストを送信してクラスター内のシャードを非対称に記述すると、以前の対称専用API はそのクラスターで使用できなくなります 。以前のAPIバージョンに戻すには、まずすべてのシャードが同じ階層で動作するようにクラスターを再構成します。

新しい API は、非対称クラスターを記述できます。replicationSpec.numShards フィールドは、新しい API スキーマには存在しません。その代わりに、すべてのシャードが同一に構成されている対称クラスターであっても、各シャードは個別の replicationSpec によって指定されます。

Atlas では、クラスター ストレージのオートスケーリングがデフォルトで有効になります。 Atlas では、クラスター内の任意のノードで使用済みディスク容量が90 % に達すると、クラスター ストレージが自動的に増加します。

次の考慮事項が適用されます。

  • Atlas は、クラスター ストレージのみを自動的にスケールアップします。 クラスターの編集ページからのクラスターストレージの手動削減が可能です 。

  • AWSAzure、およびGCPのクラスターでは、Atlasはディスク領域の70%が使用されるようにクラスターのストレージ容量を増やします。詳細については、 「AWS でのストレージキャパシティーまたは IOPS の変更」 「Azure でのストレージキャパシティーと IOPS の変更」 、および 「Google Cloud でのストレージキャパシティーの変更」 をご覧ください。

  • クラスターを増やす予定の場合は、高速な書き込みアクティビティを避けます。 クラスターをより大きなストレージ キャパシティーにスケールアップするには、データを準備して新しいディスクにコピーするのに十分な時間が必要です。 クラスターが一括挿入などの高速書込みアクティビティを大量に受信した場合、ディスク ストレージ容量が一時的に急増し、オートスケーリングが実行されない可能性があります。 ディスク ストレージが実行中のリスクを軽減するには、一括挿入やインスタンスの高速書込みアクティビティの前にクラスターを増やすを計画します。

  • ベースノードに 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 は次の処理を実行します。

  1. お使いの最大クラスター階層を、新しいストレージ容量に対応できる次に低い階層まで引き上げます。

  2. クラスター階層をその新しい最大階層に増やします。

Atlas がクラスター階層のスケールダウンを試み、対象の階層が現在のディスク容量、プロビジョニングされた IOPS、またはその両方をサポートできない場合、Atlas はクラスターをスケールダウンしません。この場合、Atlas は現在のクラスター階層と構成済みの最大クラスター階層との関係に基づいて、オートスケーリング設定を更新します。

このオートスケーリング ロジックにより、ストレージ設定がワークロードと一致しない場合でも、ダウンタイムを軽減できます。

ストレージのオートスケーリングを使用するかどうかに応じて、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 SizeMinimum Cluster Size の値を指定できます。Atlas では、これらの値が次のように設定されます。

  • Maximum Cluster Size は、現在のクラスター階層より 1 つ上の層に設定されています。

  • Minimum Cluster Size は現在のクラスター階層に設定されています。

クラスター階層とストレージに対して有効になっているオートスケーリング オプションを確認するには、次の手順を行います。

  1. 選択した Auto-Scale チェックボックスで、Maximum Cluster SizeMinimum Cluster Size の値を確認し、必要に応じて調整します。

  2. 新しいクラスターを作成するときにデフォルトでチェックされる Allow cluster to be scaled down オプションを確認してください。

  3. デフォルトでチェックされている 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に記録します。

オートスケーリング イベントのみを表示またはダウンロードするには、次の手順に従います。

  1. Activity Feedで、 Filter by event(s)メニューをクリックし、 Atlasを確認します。

  2. リストの上の検索ボックスに、「 auto-scaling 」と入力し始めます。

    メニューの右側には、すべてのオートスケーリング イベントが表示されます。 表示されたくないものの選択を解除します。 フィードリストは、変更を加えるたびに自動的に更新されます。

重要

2024 年 8 月上旬に、Atlas はレガシーのオートスケーリング通知メールを、設定可能なオートスケーリングイベントに置き換えました。デフォルトでは、Atlas はすべてのアラート通知を引き続きプロジェクト所有者に送信します。オートスケーリングアラートの送信をカスタマイズして、アラートの受信者または送信方法を変更できます。

オートスケーリング アクティビティは、 Atlas アラートのサブセットです。

Atlas は、オートスケーリング イベント のデフォルトのアラートを自動的に設定します。 プロジェクト レベルで、一部またはすべてのオートスケーリング イベントについて、 をオプトアウトしたり、アラート構成を変更したりできます。

アラート構成を変更するには、 Categoryセクションで [ Atlas Auto Scalingを選択し、リストから [ Condition/Metricを選択します。 次に、アラート受信者のロールを変更したり、メールや SMS などの通知方法を変更したり、Slack などの通知機能を追加したりできます。 詳細については、「オートスケーリング アラートの構成 」を参照してください。