チュートリアル: Ansible を使用して Azure App Service のアプリをスケーリングする
重要
この記事のサンプル プレイブックを実行するには、Ansible 2.7 (以降) が必要です。
Azure App Service を使用して、コードをビルドおよびホストすることができます。 このコードは、Web アプリ、モバイル バックエンド、RESTful API の形式にすることができます。 App Service を使用して、インフラストラクチャを管理することなく、任意のプログラミング言語を使用してコードを開発できます。 App Service では Windows と Linux の両方がサポートされています。 GitHub と Azure DevOps を含む任意の Git リポジトリからの自動デプロイがサポートされています。
この記事では、次のことについて説明します。
- 既存の App Service プランのファクトを取得する
- App Service プランを 3 つのワーカーを持つ S2 にスケールアップする
前提条件
- Azure サブスクリプション:Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
Ansible のインストール: 次のいずれかのオプションを実行します。
- Linux 仮想マシンに Ansible をインストールして構成する
- Azure Cloud Shell の構成 - アクセスできる Linux 仮想マシンがない場合は、Ansible で仮想マシンを作成できます。
- Azure App Service アプリ - Azure App Service アプリがない場合は、Ansible を使用して Azure App Service でアプリを構成します。
アプリのスケールアップ
スケーリングには、"スケールアップ" と "スケールアウト" の 2 つのワークフローがあります。
スケールアップ: スケールアップとは、リソースを追加で取得することです。 対象となるリソースには、CPU、メモリ、ディスク領域、VM などがあります。 アプリをスケールアップするには、アプリが属している App Service プランの価格レベルを変更します。 スケールアウト: スケールアウトとは、アプリを実行する VM インスタンスの数を増やすことです。 App Service プランの価格レベルに応じて、最大 20 個のインスタンスまでスケールアウトできます。 自動スケーリングを使用すると、事前に定義したルールとスケジュールに基づいてインスタンス数を自動的にスケーリングできます。
このセクションのプレイブック コードでは、次の操作を定義します。
- 既存の App Service プランのファクトを取得する
- App Service プランを 3 つのワーカーを持つ S2 に更新します。
次のプレイブックを webapp_scaleup.yml
という名前で保存します。
- hosts: localhost
connection: local
vars:
resource_group: myResourceGroup
plan_name: myAppServicePlan
location: eastus
tasks:
- name: Get facts of existing App service plan
azure_rm_appserviceplan_facts:
resource_group: "{{ resource_group }}"
name: "{{ plan_name }}"
register: facts
- debug:
var: facts.appserviceplans[0].sku
- name: Scale up the App service plan
azure_rm_appserviceplan:
resource_group: "{{ resource_group }}"
name: "{{ plan_name }}"
is_linux: true
sku: S2
number_of_workers: 3
- name: Get facts
azure_rm_appserviceplan_facts:
resource_group: "{{ resource_group }}"
name: "{{ plan_name }}"
register: facts
- debug:
var: facts.appserviceplans[0].sku
ansible-playbook を使用してプレイブックを実行します
ansible-playbook webapp_scaleup.yml
プレイブックを実行すると、次の結果のような出力が表示されます。
PLAY [localhost]
TASK [Gathering Facts]
ok: [localhost]
TASK [Get facts of existing App service plan]
[WARNING]: Azure API profile latest does not define an entry for WebSiteManagementClient
ok: [localhost]
TASK [debug]
ok: [localhost] => {
"facts.appserviceplans[0].sku": {
"capacity": 1,
"family": "S",
"name": "S1",
"size": "S1",
"tier": "Standard"
}
}
TASK [Scale up the App service plan]
changed: [localhost]
TASK [Get facts]
ok: [localhost]
TASK [debug]
ok: [localhost] => {
"facts.appserviceplans[0].sku": {
"capacity": 3,
"family": "S",
"name": "S2",
"size": "S2",
"tier": "Standard"
}
}
PLAY RECAP
localhost : ok=6 changed=1 unreachable=0 failed=0
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示