このページでは、オートスケーリング操作について説明します。オートスケーリング アクティビティの確認、オートスケーリング アラートの構成、有効なフィールドによるオートスケーリングの強化、オートスケーリングのサポートの取得。
オートスケーリング アクティビティフィードを検討する
アクティビティフィードを表示して、各Atlasプロジェクトのイベントを検討できます。オートスケーリングイベントが発生すると、Atlas はそのイベントをプロジェクトActivity Feed にログします。
Atlas では、次の監査するオートスケーリング イベントが使用されます。
アクティビティフィード内の各オートスケーリングイベントには、拡大アクションをトリガーした要因に関する詳細情報が含まれ、次のようなものがあります。
オートスケーリングイベントをトリガーした特定のメトリクス(CPU 使用率、メモリ使用量、ディスク容量など)。
超えたしきい値。
スケーリングがトリガーされたのはリアクティブなオートスケーリング(現在のリソース使用量に応じて)か、予測用オートスケーリング(予測された需要を想定して)か。
オートスケーリング イベントのみを表示またはダウンロードするには、次の手順に従います。
Atlas で、 Project Activity Feed ページに移動します。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
サイドバーで、Security ヘッダーの下の Activity Feed をクリックします。
プロジェクト アクティビティ フィードページが表示されます。
オートスケーリング イベントのアラートの構成
重要
2024 年 8 月上旬に、Atlas はレガシーのオートスケーリング通知メールを、設定可能なオートスケーリングイベントに置き換えました。デフォルトでは、Atlas はすべてのアラート通知を引き続きプロジェクト所有者に送信します。オートスケーリングアラートの送信をカスタマイズして、アラートの受信者または送信方法を変更できます。
オートスケーリング アクティビティは、Atlas アラートのサブセットです。 Atlas がオートスケーリング イベントのいずれかをトリガーするたびに、デフォルトのAtlas アラートが受け取ります。
プロジェクトレベルで、一部またはすべてのオートスケーリング イベントについて、 をオプトアウトしたり、アラート構成を変更したりできます。
重要
オートスケーリング アラートは、プロジェクト内のすべてのクラスターに適用されます。特定のクラスターにアラートをスコープ設定することはできません。アラート通知では、クラスター名とIDによってイベントがトリガーされたクラスターが識別されます。
アラート構成を変更するには、Category セクションで [Atlas Auto Scaling] を選択し、リストから [Condition/Metric] を選択します。次に、アラート受信者のロールを変更したり、メールや SMS などの通知方法を変更したり、Slackなどの通知機能を追加したりできます。詳細については、オートスケーリング アラートの構成を参照してください。
Terraform の効果的なフィールドによるオートスケーリングの強化
注意
この機能は、M10 階層以上の専有クラスターにのみ適用され、Flex クラスターではサポートされていません。
クラスターでオートスケーリングが有効になっている場合、Atlas はワークロードに基づいてインスタンスサイズとストレージキャパシティーを自動的に調整します。
クラスターインスタンスのサイズ設定とストレージ構成にMongoDB & HashiCorp Terraform を使用する場合、クラスター サイズ値のサブセットに有効なフィールドを指定できます。このアプローチは、次のように推奨されます。
指定属性は、Terraform 構成で定義したとおりに正確に維持されます。
デフォルト値とオートスケール値は効果的な仕様で個別に使用できます(例: 、
effectiveElectableSpecs)。Atlas がクラスターをオートスケールする場合、リソースドリフトは発生しません。構成はクリーンなままで、プロビジョニングの意図を表現しますが、効果的な仕様は Atlas が実現したことの実現を示します。
有効なフィールドは、特定のタイプのオートスケーリングによって管理されているフィールドへの変更のみを無視します。次の表では、有効なフィールドと特定のタイプのオートスケーリングが有効になっている場合に無視されるフィールドの詳細を示しています。
有効なオートスケーリングのタイプ | specs | 無視されたフィールド | ノード タイプ |
|---|---|---|---|
コンピュートまたはストレージ |
|
| |
コンピュートまたはストレージ |
|
| |
分析 |
|
|
有効なフィールドの有効化
有効なフィールドを有効にするには、APIリクエストに次のヘッダーを含めます。
--header "Use-Effective-Instance-Fields: true"
次の例に示すように、クラスターのリソース定義で use_effective_fields 引数を true に設定します。
resource "mongodbatlas_advanced_cluster" "this" { project_id = mongodbatlas_project.this.id name = var.cluster_name cluster_type = var.cluster_type use_effective_fields = true replication_specs = var.replication_specs tags = var.tags }
詳細については、「 有効フィールド モジュールの例 」を参照してください。
重要
有効なフィールドを有効にしない場合は、オートスケーリングが発生したときにリソースドリフトを防ぐために、 lifecycle.ignore_changes ブロックを手動で構成する必要があります。このアプローチは推奨されません。詳細については、Terraform ドキュメントのオートスケーリングを参照してください。
有効なフィールドの動作
全体的には、効果的なフィールドの動作は次の 3 つのシナリオのいずれかに該当します。
注意
ベストプラクティスとして、効果的なフィールドを有効にすることをお勧めします。
{ "replicationSpecs": [ { "regionConfigs": [ { "analyticsAutoScaling": { "compute": { "maxInstanceSize": "M30", "minInstanceSize": "M10", "enabled": true, "scaleDownEnabled": true }, "diskGB": { "enabled": true } }, "autoScaling": { "compute": { "maxInstanceSize": "M30", "minInstanceSize": "M10", "enabled": true, "scaleDownEnabled": true }, "diskGB": { "enabled": true } }, "effectiveAnalyticsSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "effectiveElectableSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 3 }, "effectiveReadOnlySpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "electableSpecs": { "instanceSize": "M20", "diskSizeGB": 50.0, "nodeCount": 3 }, "priority": 7, "providerName": "AWS", "regionName": "US_EAST_1" } ], "zoneId": "6924a70c67695449ba5625ce", "zoneName": "Zone 1" } ] }
注意
ベストプラクティスとして、効果的なフィールドを有効にすることをお勧めします。
{ "replicationSpecs": [ { "regionConfigs": [ { "effectiveAnalyticsSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "effectiveElectableSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 3 }, "effectiveReadOnlySpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "electableSpecs": { "instanceSize": "M30", "diskSizeGB": 100.0, "nodeCount": 3 }, "priority": 7, "providerName": "AWS", "regionName": "US_EAST_1" } ], "zoneId": "6924a70c67695449ba5625ce", "zoneName": "Zone 1" } ] }
重要
有効なフィールドを有効にしない場合は、オートスケーリングが発生したときにリソースドリフトを防ぐために、 lifecycle.ignore_changes ブロックを手動で構成する必要があります。このアプローチは推奨されません。詳細については、Terraform ドキュメントのオートスケーリングを参照してください。
{ "replicationSpecs": [ { "regionConfigs": [ { "analyticsAutoScaling": { "compute": { "maxInstanceSize": "M30", "minInstanceSize": "M10", "enabled": true, "scaleDownEnabled": true }, "diskGB": { "enabled": true } }, "autoScaling": { "compute": { "maxInstanceSize": "M30", "minInstanceSize": "M10", "enabled": true, "scaleDownEnabled": true }, "diskGB": { "enabled": true } }, "effectiveAnalyticsSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "effectiveElectableSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 3 }, "effectiveReadOnlySpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "analyticsSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "electableSpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 3 }, "readOnlySpecs": { "instanceSize": "M30", "diskIOPS": 3000, "diskSizeGB": 100.0, "ebsVolumeType": "STANDARD", "nodeCount": 0 }, "priority": 7, "providerName": "AWS", "regionName": "US_EAST_1" } ], "zoneId": "6924a70c67695449ba5625ce", "zoneName": "Zone 1" } ] }
効果的なフィールドでオートスケーリング範囲を調整する
有効なフィールドを有効にすると、Atlas は新しいオートスケーリング範囲をクラスターの現在の有効なインスタンスサイズに対して検証します。 Atlas は、現在有効なインスタンスサイズを含まない範囲を設定するリクエストを拒否します。この動作は、オートスケーリングを使用する運用ノードと分析ノードに適用されます。
リクエストは、いずれかの場合に検証エラーで失敗します。
新しい最小インスタンスサイズは、実効インスタンスサイズよりも大きくなります。
新しいインスタンスサイズの上限は、実効インスタンスサイズよりも小さくなっています。
新しい範囲に現在の実効インスタンスサイズが含まれている場合は、1つのリクエストで境界を変更できます。
現在の実効インスタンスサイズが新しい範囲の外にある場合は、境界を変更する前に、次の手順に従って新しい範囲に移動します。範囲変更と同じリクエストでインスタンスサイズを更新する場合、Atlas は実効フィールドでオートスケーリングが有効になっている間は新しいインスタンスサイズを適用しないため、リクエストは引き続き失敗します。
Terraform を使用してオートスケーリング範囲を調整するには、Terraform プロバイダーのドキュメントの「 use_効果_フィールドを使用してオートスケーリング範囲を調整する 」を参照してください。
Atlas オートスケーリングのMongoDBサポート
質問や心配な場合は、サポートにお問い合わせください 。