Azure での自動スケールの使用
この記事では、Azure portal でリソースの自動スケーリング設定をセットアップする方法について説明します。
Azure Monitor の自動スケーリングは、Azure Virtual Machine Scale Sets、Azure Cloud Services、Azure App Service - Web Apps、および Azure API Management サービスにのみ適用されます。
サブスクリプションの自動スケーリング設定を検出する
Azure Monitor で自動スケーリングを適用できるすべてのリソースを検出するには、次の手順に従います。
Azure portal を開きます。
ページの上部にある [Azure Monitor] アイコンを選択します。
[自動スケーリング] を選択して、自動スケーリングが適用できるすべてのリソースを、現在の自動スケールの状態とともに表示します。
特定のリソース グループ、特定のリソースの種類、または特定のリソースに絞り込んでリソースを選択するには、上部のフィルター ウィンドウを使用します。
各リソースについて、現在のインスタンス数と自動スケーリングの状態を確認できます。 自動スケーリングの状態は次のいずれかです。
- 未構成: このリソースに対する自動スケーリング設定はまだ有効になっていません。
- 有効: このリソースの自動スケーリング設定は有効になっています。
- 無効: このリソースの自動スケーリング設定は無効になっています。
ホーム ページで [すべてのリソース] を選択してスケーリング ページにアクセスし、フィルターをかけてスケーリング対象のリソースに絞り込むことができます。
目的のリソースを選択したら、[スケーリング] タブを選択して自動スケーリング ルールを構成します。
最初の自動スケーリング設定を作成する
段階的な手順に従って、最初の自動スケーリング設定を作成しましょう。
Azure Monitor で [自動スケーリング] ペインを開き、スケーリングするリソースを選択します。 次の手順では、Web アプリに関連付けられている App Service プランを使用します。 Azure で、初めての ASP.NET Web アプリを 5 分で作成できます。
現在のインスタンス数は 1 です。 [カスタム自動スケーリング] を選択します。
スケーリング設定の名前を入力します。 右側のコンテキスト ペインを開くには、[規則の追加] を選択します。 既定では、このアクションにより、リソースの CPU 使用率が 70% を超えた場合にインスタンス数を 1 つずつ増やしてスケーリングするようにオプションが設定されます。 これを既定値のままにして、[追加] を選択します。
これで最初のスケール ルールが作成されました。 UX では、ベスト プラクティスとして、"ルール内に少なくとも 1 つのスケーリングを含めることが推奨されています"。そのために次を行います。
- [ルールの追加] を選択します。
- [演算子] に [より小さい] を設定します。
- [しきい値] を 20 に設定します。
- [操作] の [Decrease count by](カウント数減少幅) を設定します。
これで、CPU 使用率に基づいてスケールアウトおよびスケールインするスケーリング設定ができました。
[保存] を選択します。
お疲れさまでした。 これで、CPU 使用率に基づいて Web アプリを自動スケールする最初のスケール設定が作成されました。
Note
Virtual Machine Scale Sets またはクラウド サービス ロールでの作業の開始にも同じ手順を適用できます。
その他の考慮事項
以降のセクションでは、自動スケーリングに関するその他の考慮事項について説明します。
スケジュールに基づくスケール変更
特定の曜日に異なる方法のスケーリングを設定することもできます。
- [スケーリング条件を追加する] を選択します。
- スケール モードとルールの設定は既定の条件と同じです。
- スケジュール、 [Repeat specific days](特定の曜日に繰り返す) を選択します。
- 曜日、スケール条件を適用する開始時刻と終了時刻を選択します。
特定の日に異なる方法でスケールする
特定の日付に異なる方法のスケーリングを設定することもできます。
- [スケーリング条件を追加する] を選択します。
- スケール モードとルールの設定は既定の条件と同じです。
- スケジュールで、 [Specify start/end dates](開始日/終了日を指定する) を選択します。
- スケール条件を適用する開始時刻と終了時刻を選択します。
リソースのスケール履歴を表示する
リソースをスケールアップ/スケールダウンするたびに、アクティビティ ログにイベントが記録されます。 [実行履歴] タブに切り替えることで、過去 24 時間のリソースのスケール履歴を表示できます。
すべてのスケーリング履歴 (最大 90 日間) を表示するには、[詳細については、こちらをクリックしてください] を選択します。 リソースやカテゴリに対して自動スケーリングがあらかじめ選択されているアクティビティ ログが表示されます。
リソースのスケール定義を表示する
自動スケールは、Azure Resource Manager のリソースです。 JSON でスケーリング定義を表示するには、[JSON] タブに切り替えます。
必要な場合は、JSON に直接変更を加えることができます。 これらの変更は保存後反映されます。
クールダウン期間の効果
自動スケーリングでは、インスタンスの高速に繰り返されるアップ スケーリングとダウン スケーリングである、"フラッピング" を防ぐためにクールダウン期間を使用します。 詳細については、自動スケーリングの評価手順に関するページを参照してください。 フラッピングに関するその他の重要な情報と、自動スケーリング エンジンの監視方法の理解のためには、「自動スケーリングでのフラッピング」と「自動スケールのトラブルシューティング」を参照してください。
正常なインスタンスにトラフィックをルーティングする (App Service)
Azure Web アプリを複数のインスタンスにスケールアウトする場合、App Service を使用すれば、ご利用のインスタンスに対して正常性チェックを実行して、正常なインスタンスにのみトラフィックをルーティングすることができます。 詳細については、「正常性チェックを使用して App Service インスタンスを監視する」を参照してください。
自動スケーリングを別のリージョンに移動する
このセクションでは、Azure の自動スケーリングを同じサブスクリプションおよびリソース グループの別のリージョンに移動する方法について説明します。 REST API を使って自動スケーリング設定を移動できます。
前提条件
- サブスクリプションとリソース グループが使用可能であり、移動元と移動先のリージョンの両方の詳細が同じであることを確認します。
- 移動先の Azure リージョンで Azure の自動スケーリングが使用可能であることを確認します。
詳細ビュー
新しい環境で自動スケーリング設定を作成するには、REST API を使います。 移動先のリージョンで作成される自動スケーリング設定は、移動元リージョンの自動スケーリング設定のコピーになります。
移動元リージョンの自動スケーリング設定と関連付けて作成された診断設定は移動できません。 自動スケーリング設定の作成の完了後に、移動先リージョンで診断設定を再作成する必要があります。
Azure リージョン間でのリソースの移動に関する詳細情報
リージョン間でのリソースの移動と Azure でのディザスター リカバリーの詳細については、「リソースを新しいリソース グループまたはサブスクリプションに移動する」を参照してください。