すべてのプロダクト
Search
ドキュメントセンター

Auto Scaling:Auto Scalingとは, Auto Scalingとは

最終更新日:Nov 11, 2024

Auto Scalingは、ワークロードの変更とスケーリングポリシーに基づいてインスタンスを自動的に追加または削除するクラウドサービスです。 Auto Scalingを使用すると、十分なコンピューティングリソースを確保し、リソースのアイドル化を防ぎ、コストを削減できます。

次のビデオでは、例としてECS (Elastic Compute Service) インスタンスを使用して、Auto Scalingの使用方法を説明しています。

Auto Scalingの理由

ビジネス需要が増大した場合、Auto ScalingはECSインスタンスまたはエラスティックコンテナインスタンスをスケーリンググループに追加して、十分なコンピューティングパワーを提供するのに役立ちます。 ビジネス需要が低下した場合、Auto ScalingはECSインスタンスまたはelastic containerインスタンスをスケーリンググループから削除し、リソースコストを最小限に抑えるのに役立ちます。 したがって、Auto Scalingは、変動するビジネス需要に合わせて、スケーリンググループ内の特定のタイプのインスタンスの数を自動的に調整できます。

次の表に、Auto Scalingのメリットを示します。

メリット

説明

自動化

  • スケールアウトイベント中、Auto Scalingはスケーリンググループ内に特定のタイプのインスタンスを自動的に作成します。 次に、作成したインスタンスを、スケーリンググループに関連付けられているServer Load Balancer (SLB) インスタンスにアタッチします。 Auto Scalingは、作成されたインスタンスのプライベートIPアドレスも、関連するApsaraDB RDSインスタンスのIPアドレスホワイトリストに自動的に追加します。

  • スケールインイベント中、Auto Scalingはスケーリンググループから特定のタイプのインスタンスを自動的に削除します。 次に、関連付けられたSLBインスタンスから削除されたインスタンスをデタッチします。 Auto Scalingは、関連するApsaraDB RDSインスタンスのIPアドレスホワイトリストから、削除されたインスタンスのプライベートIPアドレスも自動的に削除します。

費用対効果

Auto Scalingを使用する場合、アプリケーションを実行するインスタンスの数を調整したり、トラフィックスパイクが発生する前にインスタンスを準備したりすることに多くの時間と労力を費やす必要はありません。 Auto Scalingにより、アイドルリソースがなくなります。 Auto Scalingはインスタンスを自動的にスケーリングし、リソースコストを削減します。

Auto Scalingは、メトリック値またはスケーリンググループ内のインスタンスの予想数の変化を自動的に監視します。 デフォルトの統計期間は1分です。 メトリック値が許容範囲内にないことをAuto Scalingが検出した場合、Auto Scalingは直ちにスケーリングイベントをトリガーします。 次の要因がスケーリング速度に影響する可能性があります。

  • スケーリンググループへの追加を待機しているインスタンスの起動時間。 インスタンスの起動時間は、インスタンスが作成された時点から、インスタンスが期待どおりにサービスを提供できる時点までです。

  • スケーリンググループへの追加を待機しているインスタンスの数。 スケーリンググループへの追加を待機しているインスタンスの数が1,000以下の場合、Auto scalingは1分以内にスケーリングを完了できます。

高可用性

Auto Scalingを使用して、ECSインスタンスまたはエラスティックコンテナインスタンスのヘルスステータスを確認し、アプリケーションの高可用性を確保できます。 Auto Scalingは、インスタンスのヘルスステータスを自動的にチェックします。 インスタンスが正常でないことをAuto Scalingが検出した場合、Auto Scalingは自動的にインスタンスを追加して、正常でないインスタンスを置き換えます。 新しいインスタンスと異常なインスタンスは同じタイプである必要があります。

柔軟性とインテリジェンス

  • Auto Scalingを使用して、ビジネス要件に基づいてECSインスタンスまたはエラスティックコンテナインスタンスをスケールできます。

  • Auto Scalingには、複雑なビジネスシナリオの要件を満たすための複数のスケーリングモードが用意されています。 スケーリングモードには、固定数モード、ヘルスモード、スケジュールモード、動的モード、カスタムモードがあります。 動的モードでは、API操作を使用してAuto Scalingを外部監視システムと相互接続できます。

  • Auto Scalingでは、ビジネス要件に基づいてインスタンスを作成するためのテンプレートを選択できます。 これにより、スケールアウトイベントの成功率が向上します。

  • Auto Scalingは、さまざまなビジネスシナリオで使用できる複数のスケーリングポリシーもサポートしています。

簡単な監査

Auto Scalingは、各スケーリングイベントの詳細をログに記録し、スケーリンググループを監視します。 ログを使用して、問題を特定して解決できます。

詳細については、「メリット」をご参照ください。

特徴

Auto Scalingは、ECSインスタンスとエラスティックコンテナインスタンスのスケールインとスケールアウトのみをサポートします。 Auto Scalingは、ECSインスタンスまたはエラスティックコンテナインスタンスの設定調整をサポートしていません。 ECSインスタンスまたはエラスティックコンテナインスタンスの設定 (vCPUの数、メモリサイズ、帯域幅など) を変更するには、Alibaba Cloud Operation Orchestration Service (OOS) を有効化します。 詳細については、「OOSとは何ですか?」をご参照ください。

Auto Scalingは、必要な数のECSインスタンスまたはエラスティックコンテナインスタンスを自動的にスケーリングできます。 次の表に、Auto Scalingの主なコンポーネントを示します。

コンポーネント

説明

スケーリンググループ

スケーリンググループには、同様のビジネスシナリオで使用できる同じタイプのインスタンスが含まれます。 スケーリンググループを設定して、計算能力を提供するインスタンスのタイプを指定できます。 インスタンス構成ソース、インスタンスの最大数と最小数、およびスケーリンググループを関連付けるClassic Load Balancer (CLB) インスタンスまたはApplication Load Balancer (ALB) サーバーグループを指定することもできます。 複数のビジネスシナリオがある場合は、複数のスケーリンググループを作成できます。 Auto Scalingは、設定に基づいてコンピューティングリソースを各スケーリンググループに自動的に割り当てます。

インスタンス設定ソース

インスタンス設定ソースは、ECSインスタンスまたはエラスティックコンテナインスタンスの管理に使用されるテンプレートに関する情報を指定します。 Auto Scalingは、スケールアウトイベント中にECSタイプのテンプレートを使用してECSインスタンスを作成し、Elastic Container Instanceタイプのテンプレートを使用してエラスティックコンテナインスタンスを作成します。

スケーリングルール

スケーリングルールは、スケーリングイベントをトリガーするために使用されます。 たとえば、ECSインスタンスまたはエラスティックコンテナインスタンスが追加されるスケールアウトイベントをトリガーするスケーリングルールを作成できます。 スケーリングルールは手動で実行できます。 イベントトリガータスクまたはスケジュールタスクを作成して、スケーリングルールを自動的に実行することもできます。 スケーリングルールは、スケーリンググループで許可または必要なインスタンスの最大数または最小数を変更するのに役立ちます。

イベントトリガータスク

Auto ScalingはCloudMonitorに統合され、スケーリンググループのメトリクスをリアルタイムでモニタリングします。 監視されたメトリックが指定されたしきい値に達すると、指定されたスケーリングルールがトリガーされます。

スケジュール済みタスク

スケジュールされたタスクを作成して、指定した時点でスケーリングルールを自動的に実行できます。

Auto Scalingは、スケーリンググループを設定および有効にし、スケーリンググループのインスタンス設定ソースを指定した後にのみ実行できます。 ビジネス要件に基づいて他の設定を指定できます。 次の図は、Auto Scalingの使用方法を示しています。

image

Auto Scalingは、さまざまなビジネス要件を満たすために次の機能を提供します。

  • スケーリングイベントが成功、失敗、または拒否された場合、Auto scalingはルールに基づいて通知を送信します。 次の表にルールを示します。

    ルール

    説明

    通常の通知ルール

    Auto Scalingは、テキストメッセージ、内部メッセージ、および電子メールを使用して通知を送信します。

    高度な通知ルール

    Auto Scalingは、CloudMonitorまたはSimple Message Queue (SMQ、旧MNS) に通知を送信します。 SMQを使用する場合、通知は指定されたSMQトピックまたはSMQキューに送信されます。 あなたはSMQを使用するときに請求されます。 SMQの価格の詳細については、

    請求」をご参照ください。

  • Auto Scalingは、スケーリンググループ内のインスタンスを管理するのに役立つ機能を提供します。 次の表に、機能を示します。

    機能

    説明

    ライフサイクルフック

    ライフサイクルフックは、スケーリンググループ内のECSインスタンスまたはエラスティックコンテナインスタンスのライフサイクルを管理するために使用されます。 スケーリングイベント中に、ライフサイクルフックをトリガーして、ECSインスタンスまたはエラスティックコンテナインスタンスのステータスを [保留中の追加] または [保留中の削除] に切り替えることができます。 ライフサイクルフックがタイムアウトするまで、インスタンスに対して操作を実行できます。

    手動インスタンス管理

    Auto Scalingでは、ECSインスタンス、elastic containerインスタンス、またはAlibaba Cloudが管理するサードパーティインスタンスをスケーリンググループに手動で追加または削除できます。

    ローリング更新

    スケーリンググループがECSタイプの場合、ローリング更新機能を使用してECSインスタンスを管理できます。 ローリングアップデートタスクを作成して、複数のECSインスタンスの設定を同時に更新できます。 たとえば、イメージの更新、スクリプトの実行、サービス中状態のECSインスタンスへのOOSパッケージのインストールなどができます。

シナリオ

Auto Scalingには、次のビジネスシナリオで使用できるさまざまなスケーリング機能があります。

  • ワークロードの変動を予測できます。

    たとえば、ワークロードの変動を予測できるビデオ制作会社は、Auto Scalingを使用してスケジュールされたタスクを作成します。 Auto Scalingは、毎週金曜日の20:00:00に発生するトラフィックスパイクに対応できるように、ECSインスタンスまたはエラスティックコンテナインスタンスを自動的に追加します。

  • ワークロードの変動は予測できません。

    たとえば、ワークロードの変動を予測できないビデオ制作会社は、Auto Scalingを使用してイベントトリガータスクを作成し、インスタンスのCPU使用率を監視します。 CPU使用率が60% を超えると、Auto Scalingは自動的にECSインスタンスまたはエラスティックコンテナインスタンスを追加し、企業がトラフィックスパイクに対処できるようにします。

詳細については、「シナリオ」をご参照ください。

仕組み

Auto Scalingは、スケーリングモードに基づいてスケーリングイベントをトリガーし、ECSインスタンスまたはエラスティックコンテナインスタンスをスケーリンググループに追加または削除します。 ECSインスタンスまたはエラスティックコンテナインスタンスは、クライアント要求を処理するために使用されます。 Auto Scalingを使用して、変化するビジネス需要に基づいてインスタンスを追加または削除できます。 詳細については、「Auto Scalingの仕組み」をご参照ください。

課金ルール

Auto Scalingは無料です。 ただし、Auto ScalingコンソールでのECSインスタンス、エラスティックコンテナインスタンス、ApsaraDB RDSインスタンス、SLBインスタンス (ALBインスタンス、ALBサーバーグループ、NLBサーバーグループを含む) 、およびSMQトピックまたはキューの使用に対して課金されます。 詳細については、「課金」をご参照ください。

使用方法

  • Auto Scalingコンソール: インタラクティブな操作をサポートするwebページ。

  • API: GETおよびPOST要求をサポートするリモートプロシージャコール (RPC) API。 API操作の詳細については、「関数別の操作の一覧」をご参照ください。 Auto Scaling APIを呼び出す場合は、次の一般的な開発者ツールのいずれかを使用します。

    • Alibaba Cloud CLI:Alibaba Cloud API をベースにした柔軟でスケーラブルな管理ツールです。 CLIを使用して、Alibaba CloudネイティブAPIをカプセル化し、カスタム機能を開発できます。

    • OpenAPI Explorer: API操作の取得、API操作のオンライン呼び出し、SDKサンプルコードの動的生成を可能にするツールです。

関連サービス

サービス

説明

ECS

Alibaba Cloudが提供する、すぐに使用できるスケーラブルなIaaSレベルのサービス。

Elastic Containerインスタンス

Alibaba Cloudが提供するアジャイルで安全なサーバーレスコンテナランタイムサービス。 Elasticコンテナインスタンスは、ビジネスシステムに対してスケーラブルで安全であり、リソースとO&Mのコストを削減できます。

ApsaraDB RDS

データベースのO&Mの問題を解決するのに役立つ、安全で信頼性が高く、費用対効果が高く、スケーラブルなオンラインデータベースサービスです。

SLB

ネットワークトラフィックをオンデマンドで分散する負荷分散サービス。 SLBを使用すると、アプリケーションシステムの単一障害点を排除し、アプリケーションの可用性を向上させることができます。 SLBは、ALB、NLB、およびCLBのタイプのロードバランサを提供します。

CloudMonitor

Alibaba Cloudリソースとインターネットアプリケーションを監視するサービス。 CloudMonitorは、Alibaba Cloudリソースの使用状況とビジネスの状況を完全に理解するのに役立ちます。 これにより、障害のあるリソースをできるだけ早く処理して、ビジネスが期待どおりに実行されるようにすることができます。

SMQ

効率的で、信頼性が高く、安全で、便利で、スケーラブルな軽量メッセージングサービス。 SMQを使用すると、開発者はアプリケーションの分散コンポーネント間でデータとメッセージを転送して、疎結合システムを構築できます。