マイクロソフトのクラウドアカウント購入: Azure VMSSを利用してアプリケーションの自動化された柔軟な拡張容量を教えてください
前回のチュートリアルでは、Azureに最初の仮想マシンを導入することに成功しました。しかし、現実には、あなたのサイトが突然「双十一」式のトラフィックに襲われた場合、1台の仮想マシンが瞬時に麻痺する可能性があります深夜になると、トラフィックが落ち込んでしまうとたくさんの高性能サーバーを空転させて、また巨大な資金の浪費です。
クラウドの原始時代には、サーバや環境を手動で買うべきではない。
Azure仮想マシンスケールセット (VMSS)
このペインポイントを解決するために生まれたのです。業務流量の変化に応じて
仮想マシンインスタンスの数を増やす (購入する) または減らす (キャンセルする) ことができます
。
今日のこの深いチュートリアルは、ゼロから始めて、自分で「自動柔軟な拡張」能力を備えた超高可用性Webアプリケーションアーキテクチャを構築します。
一、核心概念: VMSSと柔軟な拡張容量とは?
手を出す前に、私たちはまず大きな口語で二つのハードコアの概念を整理します
仮想マシン規模セット (VMSS): 簡単に言えば、タイプライターのテンプレートです。1台の仮想マシンのオペレーティングシステム、ソフトウェア環境を構成するだけで、VMSSは数分で、5台、50台、さらには500台の同じ仮想マシンをクローンすることができます。
水平拡張 (スケールアウト) と水平収縮 (スケールイン):垂直拡張は、デュアルコアCPUをクアッドコアコアに変換する (再起動が必要で、上限がある)。水平拡張は「人が多くて力が大きい」ということです。一台は担げないので、自動的にもう二台来ます。流量がなくなったので、自動的に退却する。これが弾力性です。
二、コアアーキテクチャ設計
私たちが構築するのは丸裸の規模集ではなく、標準的な生産環境の枠組みです。
[インターネットトラフィック (HTTP/80)]
│
▼
[Azure負荷分散器]
(ロードバランサー)
│
-- -- -- -- -- -- -- -- -- -- -- --
▼ ▼
[VMSSインスタンス1] [VMSSインスタンス2]... (CPUによる自动増减)
トラフィックはまず負荷分散器に到着し、それがバックエンドのVMSSインスタンスに分配される。VMSSはこれらのインスタンスのCPU損失を見つめ、しきい値を超えると、新しいインスタンスが自動的に分裂して戦闘に参加する。
三、第一段階: VMSSの作成と配置 (基礎構築)
Azureポータルにログインし、検索バーに入力します
入る
「仮想マシンの規模セット」
(バーチャル・マシン・スケール・セット) 、「作成」をクリックします。
1. 基本情報
リソースグループ: MyVMSS-rg1などの新規作成を推奨します。
仮想マシンの規模セット名: my-web-scale-setなど。
エリア: East Asiaなど、あなたに一番近いエリアを選択します。
業務フロー: 「統一 (Uniform) 」を選択します。これにより、クローンされたすべてのマシンが完全に一致し、ステータスのないWebアプリケーションに最適です。
イメージ: Ubuntu Server 24.04 LTSを例にとると (Windowsの操作ロジックはまったく同じ)。
2.規模と規格
大きさ: 相変わらずコストパフォーマンスの高いstandard _ b 1sまたはstandard _ b 2sをお勧めします。
認証タイプ: 「パスワード」または「SSHキー」を選択します。教育デモが便利になるように、ここでパスワードを選択し、ユーザー名 (azureuserなど) と強力なパスワードを設定します。
3.ネットワーク構成 (重要な手順)
ネットワークセクションに移動すると、「負荷分散」オプションが表示されます。
「ロードバランサーを使用」にチェックを入れます。
ロードバランサのオプション: 「Azureロードバランサ」を選択します。
ロードバランサ/新規: my-load-balancerという名前を選択します。
バックエンドプール/新規: my-backend-poolという名前を選択します。
💡なぜこれを選ぶのですか。このようにして、VMSSが自動的に何台の仮想マシンを作成しても、Azureは自動的にこの「バックエンド・プール」に詰め込み、ロードバランサーは自動的にユーザーのアクセス・トラフィックを配布しますIPを手動で設定する必要はありません。
四、第二段階: カスタムスクリプトを利用して「開梱してすぐに使える」を実現する
規模集会は自動的に機械を作ってくれたが、新しい機械の中は空いていた。どのようにして新しくクローンされたマシンに自動的にWebサービス (Nginxなど) をインストールして、私たちのアプリケーションを実行させるのでしょうか?
利用する必要があります
高度
オプションの
カスタムスクリプト拡張
。
ページの作成中
「高級」
タブで「カスタムデータ」を見つけ、テキストボックスに次のLinux初期化スクリプトを貼り付けます
バッシュ
#! /ビン/バスト
# システムを更新してNginxをインストールする
Apt-get update -y
Apt-get install nginx -y
# Nginxサービスを開始する
Systemctorstartnginx
Sys
Temctoreningnginx
# Webページを書いて、現在のホストの名前を動的に表示します (効果をテストしてみましょう)
Echo "<h 1>Hello from Azure VMSS! Myhostname is: $ (Hostname)</h 1>" > /var/www/html/index.html
このスクリプトの役割は次のとおりです
VMSSがトラフィックが多く、自動的に新しい仮想マシンを発見するたびに、この新しいマシンは電源を入れた瞬間、このコードを自動的に実行します。Nginxをインストールし、サービスを開始し、webページを作成します。無人の自動化を真に実現する。
五、第三段階: コアの配置 ― 自動弾性拡張戦略
クリックして切り替える
「スケーリング」
タブ。これはチュートリアル全体の魂です。
デフォルトのオプションは「手動ズーム」です。
カスタムオートスケール
。
次に、厳密な「拡張容量ルール」を設定する必要があります
1.インスタンス範囲の設定
最小インスタンス数: 1 (通常誰もアクセスしていない場合は、1台のマシンを残してお金を節約する)。
最高事例数 (マキシム): 3 (コードの書き間違いがデッドサイクルに陥ったり、悪意のある攻撃に遭遇した場合、無限に機械を開けてクレジットカードが爆発したりしないように、上限を設けて財布を保護する)。
デフォルトインスタンス数(Default): 1。
2.拡張ルールの追加
「ルールを追加」をクリックして、いつ機械を追加するかをシステムに伝えます
測定値ソース: 現在のリソース (VMSS)。
時間集約: 平均値。
メトリック値名: Percentage CPU(CPU使用率)。
演算子: より大きい。
しきい値: 70 (CPUの平均使用率が70% を超えた場合)。
持続時間 (分): 5 (この状況は5分以上続き、偶発的な瞬時変動ではなく、本当に耐えられないことを示している)。
操作: カウントを増やします。
インスタンス数: 1 (マシンを1台増やすたびに)。
冷却時間 (分): 5 (機械を入れた後、弾丸をしばらく飛ばして、5分観察して、あまり速くしないでください)。
3.縮容ルールを追加する
借りがあります。ルールを追加して、いつ機械を返品してお金を節約すべきかをシステムに伝えます
メトリック値名: Percentage CPU。
演算子: 未満。
しきい値: 30 (満場平均CPUが30% 以下になった場合)。
操作: カウントを減らします。
インスタンス数: 1 (一度に1台のマシンをトリミングします。
を選択します。
設定が完了したら、をクリックします
「作成を表示」
を選択します。
六、奇跡を検証する: どのようにして自動拡張容量をテストするのか?
導入が完了したら、リソースグループに移動して、それを見つけます
ロードバランサー (my-load-balancer)
を選択します。
通常のアクセス: ブラウザでこのIPを入力すると、Hello from Azure VMSSが表示されるはずですMyhostname is: my-web-scale-set_0。何度か更新して、ページは泰山のように安定している。
人工的に暴力を作る: この機械のCPUを手動でいっぱいにする必要があります。SSHを介して現在のこの仮想マシンインスタンスに接続し、端末で古典的なCPU圧力テストコマンドを実行する (またはstressツールをインストールする)。bash # インストール圧力測定ツールsudo apt-get installstress-y # はCPU 4コアをフルに実行しますそれも全力でいっぱいになります。
3. ** 奇跡を目撃: **
AzureポータルのVMSSページに戻って、左側の ** 「稼働状況 (Run history) 」 ** または ** 「インスタンス」 ** をクリックします。
約5分後、グラフのCPU曲線が急上昇していることがわかります。次に、インスタンスリストに「my-web-scale-set_1」という新しいインスタンスが更新され、ステータスは「作成中」-> 「実行中」になります。
4. ** 再訪問: **
ブラウザの負荷分散器IPを更新します。「Hostname is: ..._ 0」が表示され、「hostname is: ..._ 1」になっていることがわかります。
** これは、ロードバランサーが生まれたばかりの弟に流量の一部を分流することに成功したことを示しています! **
5. ** 自動退場: **
10分後、圧力測定命令が終了し、CPUが下がった。あと5 ~ 10分で、システムは縮容ルールをトリガーし、新しくできたばかりの仮想マシンは自動的に優雅にシャットダウンされ、削除され、すべてが元に戻ります。
---
# # 七、まとめとピットガイド
今日の高度な学習を通じて、あなたはすでにクラウドの原生構造の核心能力をロック解除しました。実際の生産環境の応用には、次の2人の小さな投稿者が注意しなければならない
* * * 無状態設計 (Stateless):* * 弾性的に拡張された機械は「生まれて消えていく」。絶対にしないでください
ユーザーのアップロードしたファイルやデータベースをVMSS仮想マシンのローカルハードディスクに保存します。ファイルはAzure Blob Storage (オブジェクトストレージ) に保存し、データはAzure SQLなどの独立したデータベースに保存する必要があります。
* ** ミラー更新:** 私たちは今日、Nginxをスクリプトでインストールしています。もしあなたのアプリケーションが複雑で、依存度が多いなら、より良い方法は、普通のVMで環境をすべて組み合わせることですそして、それを ** カスタムイメージにパッケージ化して、VMSSがあなたのカスタムイメージに基づいて直接クローンできるようにします。
VMSSを把握すれば、夜中にサーバトラフィックボードを見つめなくても、安心して高可用性をマイクロソフトのクラウドの自動化アルゴリズムに渡すことができます!
