Auto Scalingは、ワークロードの変更とスケーリングポリシーに基づいてElastic Compute service (ECS) インスタンスの数を自動的に調整するAlibaba Cloudサービスです。 十分なコンピューティングリソースを確保し、アイドルリソースを防ぎ、コストを削減するのに役立ちます。 識別可能なパターンがないワークロード変動に効果的に対処するには、Auto Scalingコンソールでイベントトリガータスクを作成してワークロード変動を監視し、CPU使用率などのメトリックがアラートしきい値に達したときにスケーリングルールを自動実行できるようにします。 これにより、ビジネスニーズを満たすためにECSインスタンスの数を自動的に増減できます。
シナリオ
説明
ワークロードに動的な変動が発生する場合、最適なサーバー数とサーバーの追加または削除のタイミングを決定するのが難しい場合があります。 この場合、リアルタイムのワークロードに基づいてサーバーの容量を調整する場合は、Auto Scalingコンソールでイベントトリガータスクを作成できます。
たとえば、ニュースウェブサイトのトラフィックは予測できません。 ページビューの急増はニュース速報で発生しますが、ニュースが適時性を失うとビューは低下します。
解決策
イベントトリガータスクを作成して、CloudMonitorメトリクスをモニタリングできます。 これにより、メトリックデータがアラートしきい値に達したときにスケーリングルールを自動的に実行できます。 この方法を使用すると、ビジネスワークロードに基づいてサーバーの自動スケーリングを効果的に有効にできます。
メリット
ゼロ先行リソースセットアップコスト
Auto Scalingは、ビジネス要件に基づいてECSインスタンスを作成およびリリースするため、リソースセットアップに関連する初期費用が不要になります。 毎日のビジネストラフィックに対してコンピューティングリソースを予約するだけで済みます。
自動スケーリング
Auto ScalingはCloudMonitorと統合され、ワークロードの変動を監視し、ECSインスタンスの自動スケーリングを効率的に実行します。 この統合は、リソースとO&Mのコストを削減しながら、ビジネス需要を満たすのに役立ちます。
前提条件
Auto Scalingを初めて使用するときは、Resource Access Management (RAM) ユーザー認証を完了する必要があります。
AliyunServiceRoleForAutoScalingサービスにリンクされたロールが作成されます。 詳細については、「サービスにリンクされたロール」をご参照ください。
RAMユーザーとしてAuto Scalingを使用する場合、RAMユーザーにAliyunESSFullAccessポリシーが付与されている必要があります。 詳細については、「RAM ユーザーへの権限の付与」をご参照ください。
ステップ1: スケーリンググループの作成
スケーリンググループとは、ビジネス要件を満たすインスタンスのグループを指し、Auto scalingの基本単位として機能します。 Auto Scalingは、スケーリンググループにインスタンスを追加または削除します。
スケーリンググループページに移動します。
Auto Scalingコンソールにログインします。
左側のナビゲーションウィンドウで、[スケーリンググループ] をクリックします。
上部のナビゲーションバーで、Auto Scalingが有効になっているリージョンを選択します。
スケーリンググループページの左上隅にある [作成] をクリックします。
[フォームで作成] タブで、スケーリンググループを設定し、[作成] をクリックします。
この例で使用するパラメーター設定を次の表に示します。 次の表に記載されていないパラメーターについては、デフォルト設定が使用されます。 スケーリンググループの作成方法については、「スケーリンググループの作成」をご参照ください。
パラメーター
例
説明
スケーリンググループ名
test
スケーリンググループの名前を入力します。 名前は、UIに表示されるフォーマット要件に従う必要があります。
データ型
ECS
[ECS] を選択します。スケーリンググループにECSインスタンスが含まれることを指定します。
インスタンス設定ソース
スクラッチから作成
ECSインスタンスの自動作成に使用するテンプレートを指定しないでください。 スケーリンググループを作成した後、引き続きスケーリング設定を作成する必要があります。
最小インスタンス数
1
スケーリンググループ内のインスタンス数の下限を指定します。 スケーリンググループ内のインスタンス数がこのパラメーターの値未満の場合、Auto scalingは、スケーリンググループ内のECSインスタンス数が下限に達するまで、ECSインスタンスをスケーリンググループに追加します。
最大インスタンス数
5
スケーリンググループ内のインスタンス数の上限を指定します。 スケーリンググループ内のインスタンス数がこのパラメーターの値より大きい場合、Auto scalingは、スケーリンググループ内のECSインスタンス数が上限を下回るまで、ECSインスタンスをスケーリンググループから削除します。
ネットワークタイプ
VPC
[VPC] を選択します。スケーリンググループのECSインスタンスが仮想プライベートクラウド (VPC) に存在することを指定します。
[VPC]
vpc-bp1jmxxau0lur929p ****
スケーリンググループでECSインスタンスのVPCを選択します。
vSwitch
vsw-2zeknnyw2ewufbs4z ****
vsw-2zesy03h8eaf9fe0l ****
スケーリンググループ内のECSインスタンスに対して1つ以上のvSwitchを選択します。 スケールアウトイベントの成功率を向上させるために、複数のvSwitchを選択することを推奨します。
手順2: スケーリング設定を作成し、スケーリング設定とスケーリンググループを有効にする
スケーリング設定は、スケールアウトイベント中にECSインスタンスを作成するために使用されるテンプレートで、課金方法、インスタンスタイプ、ストレージ、ネットワーク設定などの情報が含まれています。 スケーリング設定を作成したら、スケーリング設定を有効にしてから、スケーリンググループを有効にできます。
目的のスケーリンググループを見つけ、次のいずれかの方法でスケーリンググループの詳細ページを開きます。
スケーリンググループ名 /ID列のスケーリンググループのIDをクリックします。
[操作] 列の [詳細] をクリックします。
詳細ページの上部で、インスタンス設定ソースタブをクリックします。
[スケーリング設定] タブで、[スケーリング設定の作成] をクリックします。
[スケーリング設定の作成] ページで、パラメーターを設定してスケーリング設定を作成し、[作成] をクリックします。
この例で使用するパラメーター設定を次の表に示します。 次の表に記載されていないパラメーターについては、デフォルト設定が使用されます。 スケーリング設定の作成方法の詳細については、「ECSタイプのスケーリング設定の作成」をご参照ください。
セクション
パラメーター
例
説明
基本情報
スケーリング設定名
test
スケーリング設定の名前を入力します。 名前は、UIに表示されるフォーマット要件に従う必要があります。
[課金方法]
従量課金制
Auto Scalingは無料です。 ただし、スケールアウトイベント中に作成されたECSインスタンスに対しては課金されます。 この例では、従量課金方法が使用されています。 詳細については、ECSの「課金の概要」をご参照ください。
インスタンスとイメージ
インスタンス設定モード
インスタンスパターンの指定
[インスタンスパターンの指定] を選択し、ECSインスタンスの仕様を選択します。
インスタンス属性の組み合わせ
2 vCPU、4 GiBメモリ、エンタープライズレベル
ビジネス要件に基づいて、vCPUの数とECSインスタンスのメモリサイズを指定します。
画像の選択
パブリックイメージ: Alibaba Cloud Linux 3.2104 LTS 64ビット
ECSインスタンスをデプロイするイメージを選択します。 この例では、パブリックイメージが使用されます。 実際のビジネスシナリオでは、アプリケーションのカスタムイメージを選択できます。
ストレージ
システムディスク
エンタープライズSSD (ESSD) 、40 GiB、およびPL0
ECSインスタンスのシステムディスクを選択します。
ネットワークとセキュリティグループ
パブリック IP アドレス
パブリックIPv4アドレスの割り当て、帯域幅課金、および1 Mbit/s帯域幅
ECSインスタンスにパブリックIPアドレスを割り当てるかどうかを指定します。 アウトバウンドパブリック帯域幅に対して課金されます。 帯域幅料金はECSインスタンス料金に含まれています。
[セキュリティグループ]
sg-bp18kz60mefsicfg ****
既存のセキュリティグループを選択します。 セキュリティグループの作成方法については、「セキュリティグループの作成」をご参照ください。
管理設定
[ログイン資格情報]
後で設定
[後で設定] を選択します。インスタンスの作成後、ECSインスタンスのパスワードを手動で設定する必要があります。
[スケーリング設定のプレビュー] ダイアログボックスで情報を確認し、[作成] をクリックします。
では、スケーリング設定が作成されます。 [有効化] をクリックします。
[スケーリング設定の有効化] ダイアログボックスで、[OK] をクリックします。
説明スケーリンググループでは、1つのスケーリング設定を有効にする必要があります。 スケーリング設定を有効にすると、スケーリング設定は [アクティブ] 状態になります。
[スケーリンググループの有効化] メッセージで、[OK] をクリックします。
スケーリンググループを有効にすると、ビジネス要件に基づいて自動インスタンスのスケーリングがトリガーされます。
この例では、[最小インスタンス数] パラメーターを1に設定します。 この場合、Auto Scalingは、スケーリンググループを有効にした後、スケーリンググループのスケーリング設定に基づいて1つのECSインスタンスを自動的に作成します。 スケーリンググループの詳細ページの [インスタンス] タブに移動し、[自動作成] タブでインスタンス情報を確認できます。
ステップ3: スケーリングルールの作成
スケーリングルールは、スケーリンググループにインスタンスを追加するか、スケーリンググループからインスタンスを削除するかを指定します。
スケーリンググループの詳細ページで、[スケーリングルールとイベントトリガータスク] タブをクリックします。 次に、[スケーリングルール] タブをクリックします。
[スケーリングルールの作成] をクリックし、スケーリングルールを作成するパラメーターを設定し、[OK] をクリックします。
この例では、単純なスケーリングルールが作成されます。 スケーリングルールの作成方法については、「スケーリングルールの管理」をご参照ください。
パラメーター
説明
ルール名
スケーリングルールの名前を入力します。 名前は、UIに表示されるフォーマット要件に従う必要があります。
ルールタイプ
この例では、単純なスケーリングルールが作成されます。 スケーリングルールの詳細については、「概要」をご参照ください。
操作
スケーリングルールの実行時に追加または削除するインスタンスの数を指定します。 各スケーリングイベント中に追加または削除するインスタンスの数は1,000を超えることはできません。
クールダウン時間
オプションです。 単位は秒です。 このパラメーターを設定しない場合、スケーリンググループのクールダウン期間が有効になります。 詳細については、「クールダウン期間」をご参照ください。
この手順を繰り返して、スケールアウトとスケールインのルールを作成します。 この例で使用される設定を次の表に示します。
スケーリングルール
サンプル設定
スケールアウトルール
ルール名: 追加
ルールタイプ: 単純なスケーリングルール
操作: 1つのインスタンスを追加
スケールインルール
ルール名: 削除
ルールタイプ: 単純なスケーリングルール
操作: 1つのインスタンスを削除します。
手順4: イベントトリガータスクの作成
イベントトリガータスクは、特定のメトリックを監視し、リアルタイムのメトリック値を収集するように設計されています。 これらの値がアラート条件を満たすと、Auto Scalingはアラートをトリガーし、指定されたスケーリングルールを実行します。
スケーリンググループの詳細ページで、[スケーリングルールとイベントトリガータスク] タブをクリックします。 次に、[イベントトリガータスク] タブをクリックします。
[イベントトリガータスク (システム)] タブで、[イベントトリガータスクの作成] をクリックし、パラメーターを設定してタスクの作成を完了し、[OK] をクリックします。
説明この例では、システムメトリックはイベントトリガータスクで指定されています。 CloudMonitorにカスタムメトリクスを報告し、イベントトリガータスクでカスタムメトリクスを指定することもできます。 詳細については、「概要」をご参照ください。
このトピックで使用されるパラメーター設定を次の表に示します。 次の表に記載されていないパラメーターは、デフォルト設定になります。 イベントトリガータスクの詳細については、「イベントトリガータスクの管理」をご参照ください。
パラメーター
説明
名前
イベントトリガータスクの名前を入力します。 名前は、UIに表示されるフォーマット要件に準拠している必要があります。
アラート条件
メトリックデータが指定されたしきい値に達したときにアラートが報告される条件を定義します。 少なくとも1つのメトリックを指定する必要があります。 複数のメトリックを指定する場合は、[メトリックの追加] をクリックします。
以下の点にご注意ください。
メトリック: 監視するシステムメトリックの名前。 たとえば、(ECS) CPU使用率メトリックを使用する場合、スケーリンググループ内のすべてのECSインスタンスのCPU使用率が監視されます。
統計方法: メトリックデータが指定されたしきい値を超えるかどうかを判断するために使用する方法。 統計方法として、平均、最大、または最小を使用できます。 たとえば、Averageメソッドを使用し、Average >= 70% のルールを指定した場合、スケーリンググループ内のすべてのECSインスタンスの平均CPU使用率が70% 以上になるとアラートがトリガーされます。
トリガールール
アラートが報告されたときに実行するスケーリングルールを選択します。
この手順を繰り返して、スケールアウトおよびスケールインルールの実行をトリガーするイベントトリガータスクを作成します。 サンプル設定:
イベントトリガータスク
例
スケールアウトを目的としたイベントトリガータスク
名前: アラーム追加
アラート条件 :( ECS) CPU使用率 > 平均 (平均) > 70%
トリガールール: 追加
スケールイン用のイベントトリガータスク
名前: alarm-remove
アラート条件 :( ECS) CPU使用率 > 平均 (平均) < 20%
トリガールール: 削除
自動スケーリングの効果の確認
イベントトリガータスクの作成後、Auto Scalingはスケーリンググループのメトリックデータをリアルタイムで継続的に監視し、アラート条件が満たされると指定されたスケーリングルールを実行します。
この例では、次の結果が得られます。
スケーリンググループ内のECSインスタンスのCPU使用率が70% を超えると、1つのECSインスタンスが自動的にスケーリンググループに追加されます。
スケーリンググループ内のECSインスタンスのCPU使用率が20% を下回ると、1つのECSインスタンスがスケーリンググループから自動的に削除されます。
ストレステストツールを使用して、テストをシミュレートし、次の方法でスケーリング効果を確認できます。
イベントトリガータスクがトリガーされたら、スケーリンググループの詳細ページに移動し、[インスタンス] > [自動作成] を選択します。 次に、インスタンス数の変更を確認します。
イベントトリガータスクがトリガーされたら、スケーリンググループの詳細ページに移動し、[スケーリングアクティビティ] タブをクリックします。 次に、スケーリングアクティビティが生成されているかどうかを確認します。 対応するスケーリングアクティビティが生成されたら、そのIDをクリックしてスケーリングアクティビティの詳細を表示します。