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

Server Load Balancer:Auto Scalingを使用したCLBサーバーグループのスケーリング

最終更新日:Sep 20, 2024

Auto ScalingはClassic Load Balancer (CLB) と統合されており、CLBのサーバーグループ内のサーバーを自動的にスケールインまたはスケールアウトできます。 イベントトリガータスクを作成した後、Auto ScalingはCLBのサーバーグループでElastic Compute Service (ECS) を動的にスケールインまたはスケールアウトできます。 これにより、CLBの可用性を確保し、リソースの浪費を防ぎます。

シナリオ

ニュースウェブサイトが最新のニュースをリリースすると、ページビュー (PV) の数が大幅に増加し、現在のサーバーのサービス容量を超える可能性があります。 その結果、サーバは、入ってくる要求に応答しないことがある。 ユーザーは、ニュースが時間の経過とともに消えるにつれてサーバーのワークロードが減少したときにwebページをロードできます。 このWebサイトでのユーザートラフィックの変動は予測できないため、ワークロード管理がより困難になります。

このシナリオでは、CloudMonitorがECSインスタンスのCPU使用率などのリソース使用率を監視できるように、イベントトリガタスクを作成できます。 これにより、システムは自動的にECSインスタンスをCLBサーバーグループに追加または削除できます。 スケーリンググループがCLBサーバーグループに関連付けられた後、スケーリンググループ内のECSインスタンスに対して自動的または手動でトリガーされるスケールインおよびスケールアウトアクティビティは、CLBサーバーグループと同期されます。 リクエストは、トラフィックボリュームとヘルスチェックステータスに基づいてECSインスタンスに配信され、高いサービス可用性を確保します。

次の例では、CLBは転送ルールに基づいてECS01という名前のECSインスタンスにリクエストを配信します。 ECS01のCPU使用率が指定されたしきい値に達すると、ECSインスタンスが作成され、スケーリングルールとイベントトリガータスクに基づいてサーバーグループに追加されます。 ECS01のCPU使用率が指定されたしきい値を下回ると、ECSインスタンスはサーバーグループから削除され、リリースされます。

image

前提条件

  • 少なくとも1つのCLBインスタンスが作成され、実行中です。 詳細については、「CLBインスタンスの作成と管理」をご参照ください。

  • CLBインスタンス用にvServerグループが作成され、ECSインスタンスがサーバーグループに追加されます。 この例では、サーバーグループの名前はRS1、ECSインスタンスの名前はECS01です。

  • ECS01用にカスタムイメージが作成されます。 詳細については、「インスタンスからのカスタムイメージの作成」をご参照ください。

  • CLBインスタンスのヘルスチェックが有効になっています。 詳細については、「CLBヘルスチェックの設定と管理」をご参照ください。

  • CLBインスタンスに対して少なくとも1つのリスナーが作成されます。 詳細については、「HTTPリスナーの追加」をご参照ください。

ステップ1: スケーリンググループの作成

  1. Auto Scalingコンソールにログインします。

  2. 左側のナビゲーションウィンドウで、スケーリンググループをクリックします。

  3. 上部のナビゲーションバーで、リージョンを選択します。

  4. [Auto Scaling] ページに移動します。 ビジネス要件に基づいて、スケーリンググループを作成するか、既存のスケーリンググループを使用できます。 [作成] をクリックし、パラメーターを設定します。 次の表に、いくつかのパラメーターを示します。

    パラメーター

    説明

    インスタンス設定ソース

    [スクラッチから作成] を選択します。

    最小インスタンス数

    スケーリンググループ内のインスタンス数が指定された最小インスタンス数未満の場合、インスタンス数が最小数に達するまでAuto scalingは自動的にスケールアウトします。 この例では、少なくとも1つのECSインスタンスが必要であることを指定する1が選択されています。

    最大インスタンス数

    スケーリンググループ内のインスタンス数が指定された最大インスタンス数を超える場合、インスタンス数が最大数に達するまでAuto scalingは自動的にスケールインします。 この例では、2が選択されています。これは、サーバーグループに追加できるECSインスタンスを1つだけ指定します。

    デフォルトのクールダウン時間

    スケールインまたはスケールアウトアクティビティが完了した後、次のスケールインまたはスケールアウトアクティビティは、指定されたクールダウン時間が終了するまで開始されません。 このパラメーターは、イベントトリガータスクでのみ使用できます。 この例では、0が選択されています。 ビジネス要件に基づいて値を指定します。

    VPCvSwitch

    ECS01のVPCとvSwitchを選択します。

    CLBインスタンスの関連付け

    サーバーグループを選択し、ポートと重みを指定します。

  5. ビジネス要件に基づいて他のパラメーターを設定し、[OK] をクリックします。 [スケーリンググループ] ページでスケーリンググループを表示できます。

手順2: スケーリンググループの設定テンプレートを作成する

  1. [スケーリンググループ] ページで、[操作] 列の [詳細] をクリックします。 [インスタンス設定ソース] タブで、[スケーリング設定] をクリックします。

  2. [スケーリング設定] タブで、[スケーリング設定の作成] をクリックし、パラメーターを設定します。 次の表に、いくつかのパラメーターを示します。 ビジネス要件に基づいて他のパラメーターを設定します。

    パラメーター

    説明

    [課金方法]

    ECSインスタンスの課金方法を選択します。 この例では、従量課金が選択されています。

    インスタンス設定モード

    この例では、[インスタンスタイプの指定] が選択されています。

    インスタンスタイプの選択

    この例では、ECS01のタイプが選択されています。

    画像の選択

    この例では、ECS01のカスタムイメージが選択されています。

    [セキュリティグループ]

    この例では、ECS01のセキュリティグループが選択されています。

  3. [作成] をクリックします。 [スケーリング設定のプレビュー] メッセージで、[作成] をクリックします。

  4. [スケーリング設定が作成されます] ダイアログボックスで、[有効にする] をクリックして、設定およびスケーリンググループを有効にします。

ステップ3: スケーリングルールの作成

  1. [スケーリンググループ] ページで、管理するスケーリンググループを見つけ、[操作] 列の [詳細] をクリックします。 [スケーリングルールとイベントトリガータスク] タブで、[スケーリングルール] タブをクリックします。

  2. 自動スケールアウトルールを作成します。 [スケーリングルール] タブで、[スケーリングルールの作成] をクリックし、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    ルール名

    1つのECSインスタンスを自動的に追加するなど、スケーリングルールの名前を入力します。

    ルールタイプ

    この例では、[シンプルスケーリングルール] が選択されています。

    操作

    この例では、[Add 1 Instance] が選択されています。

  3. 自動スケールインルールを作成します。 [スケーリングルール] タブで、[スケーリングルールの作成] をクリックし、次のパラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    ルール名

    1つのECSインスタンスを自動的に削除するなど、スケーリングルールの名前を入力します。

    ルールタイプ

    この例では、[シンプルスケーリングルール] が選択されています。

    操作

    この例では、[1インスタンスの削除] が選択されています。

ステップ4: イベントトリガータスクを作成し、スケーリングルールに関連付ける

  1. 左側のナビゲーションウィンドウで、[スケーリングタスク] > [イベントトリガータスク] を選択します。

  2. [イベントトリガータスク] ページで、[システムモニタリング] タブをクリックし、[イベントトリガータスクの作成] をクリックします。

  3. 自動スケールアウトをトリガーするイベントトリガータスクを作成します。 [イベントトリガータスクの作成] をクリックします。 表示されるダイアログボックスで、パラメーターを設定し、[OK] をクリックします。 次の表に、いくつかのパラメーターを示します。

    パラメーター

    説明

    名前

    1つのECSインスタンスを自動的に追加するなど、タスクの名前を入力します。

    リソース監視

    ステップ1で作成したスケーリンググループを選択します。

    アラート条件

    この例では、アラート条件はCPU使用率、最大 (最大) >= 60% に設定されています。

    統計期間

    この例では、1分が選択されています。

    トリガー後

    この例では、1回が選択されています。

    トリガールール

    手順3で作成した自動スケールアウトルールを選択します。

  4. 自動スケールインをトリガーするイベントトリガータスクを作成します。 [イベントトリガータスクの作成] をクリックします。 表示されるダイアログボックスで、パラメーターを設定し、[OK] をクリックします。 次の表に、いくつかのパラメーターを示します。

    パラメーター

    説明

    名前

    1つのECSインスタンスを自動的に削除するなど、タスクの名前を入力します。

    リソース監視

    ステップ1で作成したスケーリンググループを選択します。

    アラート条件

    この例では、アラート条件はCPU使用率、最大 (最大) <= 30% に設定されています。

    統計期間

    この例では、1分が選択されています。

    トリガー後

    この例では、1回が選択されています。

    トリガールール

    手順3で作成した自動スケールインルールを選択します。

ステップ5: ECSインスタンスをスケーリンググループに追加する

Auto Scalingは、モニタリングデータとイベントトリガータスクに基づいて、バックエンドサーバーの数を自動的に調整します。 そのため、監視するECSインスタンスをスケーリンググループに追加する必要があります。

  1. [スケーリンググループ] ページで、管理するスケーリンググループを見つけ、[操作] 列の [詳細] をクリックします。 [インスタンス] タブで、[手動で追加] タブをクリックします。

  2. 次に、[既存のインスタンスの追加] をクリックします。 表示されるページで、ECS01を選択し、[追加] をクリックします。

  3. [手動で追加] タブでECS01を表示できます。

ステップ6: バックエンドサーバーを自動的に追加および削除できるかどうかをテストする

ストレステストツールを使用して、ECSインスタンスを作成し、CLBサーバーグループに追加できるように、ECS01のCPU使用率を60% に増やしてイベントトリガータスクをトリガーします。 ECSインスタンスがサーバーグループに追加されているかどうかは、CLBコンソールで確認できます。 ストレステストが終了し、ECS01のCPU使用率が30% を下回った後、ECSインスタンスを自動的に削除するためにイベントトリガータスクが再度トリガーされるかどうかを確認します。

  1. ECS01にログインし、次のコマンドを実行してストレステストツールをインストールします。

    sudo yum install -y epel-release
    sudo yum install -y stress
  2. 次のコマンドを実行して、ECS01でストレステストを実行します。 ストレステストは60秒続きます。

    sudo stress --cpu 1 --io 4 --vm 2 --vm-bytes 128M --timeout 60s &
  3. [スケーリンググループ] ページに戻り、イベントトリガータスクのステータスアラートになるまで数分待ちます。

  4. スケーリンググループページに移動します。 スケールアウトアクティビティの後、[インスタンス /容量] 列に表示される [インスタンスの総数] が1つ増加したことを確認できます。 これは、ECSインスタンスが作成され、スケーリンググループに追加されたことを示します。

  5. CLB コンソールにログインします。

  6. 左側のナビゲーションウィンドウで、[CLB] > [インスタンス] を選択します。

  7. サーバーグループのIDをクリックし、[バックエンドサーバー] タブをクリックします。 このタブでは、サーバーグループに2つのバックエンドサーバーが含まれていることを確認できます。 ESS-XX形式のECSインスタンスがAuto Scalingによって追加されます。

  8. ストレステストの終了後、Auto ScalingコンソールとCLBコンソールにログインして、ECSインスタンスがサーバーグループから自動的に削除されるかどうかを確認できます。