チュートリアル:Azure CLI を使用して高可用性仮想マシンを作成して展開するTutorial: Create and deploy highly available virtual machines with the Azure CLI

このチュートリアルでは、可用性セットと呼ばれる機能を使用して、Azure で仮想マシン ソリューションの可用性と信頼性を向上させる方法を学習します。In this tutorial, you learn how to increase the availability and reliability of your Virtual Machine solutions on Azure using a capability called Availability Sets. 可用性セットは、Azure にデプロイする VM を、複数の分離されたハードウェア クラスターに分散します。Availability sets ensure that the VMs you deploy on Azure are distributed across multiple isolated hardware clusters. これにより、Azure 内でハードウェアまたはソフトウェアの障害が発生した場合に影響を受けるのは VM のサブセットに限定され、ソリューション全体は引き続き利用可能であり、運用可能であることが保証されます。Doing this ensures that if a hardware or software failure within Azure happens, only a subset of your VMs is impacted and that your overall solution remains available and operational.

このチュートリアルでは、以下の内容を学習します。In this tutorial, you learn how to:

  • 可用性セットの作成Create an availability set
  • 可用性セットに VM を作成するCreate a VM in an availability set
  • 使用可能な VM のサイズを確認するCheck available VM sizes

Azure Cloud Shell を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell では、bashPowerShell のいずれかを使用して Azure サービスを操作できます。Cloud Shell lets you use either bash or PowerShell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を起動するには:To launch Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [試してみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. <a href="https://shell.azure.com" title="Azure Cloud Shell を起動する
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を起動します。Launch Cloud Shell.
  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.
  3. Windows と Linux では Ctrl + Shift + V キー、macOS では Cmd + Shift + V キーを使用して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Enter キーを押して、コードを実行します。Press Enter to run the code.

CLI をローカルにインストールして使用する場合、このチュートリアルでは、Azure CLI バージョン 2.0.30 以降を実行していることが要件です。If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. バージョンを確認するには、az --version を実行します。Run az --version to find the version. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI.

可用性セットの概要Availability set overview

可用性セットは、Azure で使用できる論理グループ作成機能であり、グループに配置された VM リソースは、Azure データ センター内にデプロイされるときに互いに分離されます。An Availability Set is a logical grouping capability that you can use in Azure to ensure that the VM resources you place within it are isolated from each other when they are deployed within an Azure datacenter. Azure では、可用性セット内に配置された VM は、複数の物理サーバー、コンピューティング ラック、ストレージ ユニット、およびネットワーク スイッチ間で実行されます。Azure ensures that the VMs you place within an Availability Set run across multiple physical servers, compute racks, storage units, and network switches. ハードウェアまたは Azure ソフトウェアの障害が発生した場合に影響を受けるのは VM のサブセットに限定され、アプリケーション全体が停止することはなく、顧客は引き続きアプリケーションを利用できます。If a hardware or Azure software failure occurs, only a subset of your VMs are impacted, and your overall application stays up and continues to be available to your customers. 可用性セットは、信頼性の高いクラウド ソリューションを構築する際に不可欠な機能です。Availability Sets are an essential capability when you want to build reliable cloud solutions.

フロントエンド Web サーバーが 4 台あり、データベースをホストする 2 台のバックエンド VM を使用する典型的な VM ベースのソリューションを考えてみましょう。Let’s consider a typical VM-based solution where you might have four front-end web servers and use two back-end VMs that host a database. Azure で VM をデプロイする前に、2 つの可用性セット ("Web" 階層用に 1 つ、"データベース" 層用に 1 つ) を定義します。With Azure, you’d want to define two availability sets before you deploy your VMs: one availability set for the “web” tier and one availability set for the “database” tier. 新しい VM を作成するときに、az vm create コマンドのパラメーターとして可用性セットを指定でき、可用性セット内に作成した VM は、Azure によって複数の物理的なハードウェア リソースに自動的に分離されます。When you create a new VM you can then specify the availability set as a parameter to the az vm create command, and Azure automatically ensures that the VMs you create within the available set are isolated across multiple physical hardware resources. いずれかの Web サーバーまたはデータベース サーバー VM で問題が発生した場合でも、Web サーバーとデータベース VM の他のインスタンスは別のハードウェアで実行されているため、稼働し続けます。If the physical hardware that one of your Web Server or Database Server VMs is running on has a problem, you know that the other instances of your Web Server and Database VMs remain running because they are on different hardware.

Azure 内で信頼性の高い VM ベースのソリューションをデプロイする場合は、可用性セットを使用します。Use Availability Sets when you want to deploy reliable VM-based solutions within Azure.

可用性セットの作成Create an availability set

可用性セットは、az vm availability-set create を使用して作成できます。You can create an availability set using az vm availability-set create. この例では、myResourceGroupAvailability リソース グループ内の myAvailabilitySet という名前の可用性セットに対して、更新ドメインと障害ドメインの数を 2 に設定します。In this example, the number of update and fault domains is set to 2 for the availability set named myAvailabilitySet in the myResourceGroupAvailability resource group.

最初に az group create を使用してリソース グループを作成した後、可用性セットを作成します。First, create a resource group with az group create, then create the availability set:

az group create --name myResourceGroupAvailability --location eastus

az vm availability-set create \
    --resource-group myResourceGroupAvailability \
    --name myAvailabilitySet \
    --platform-fault-domain-count 2 \
    --platform-update-domain-count 2

可用性セットでは、障害ドメインと更新ドメインでリソースを分離できます。Availability Sets allow you to isolate resources across fault domains and update domains. 障害ドメインは、サーバーとネットワークとストレージ リソースの分離されたコレクションを表します。A fault domain represents an isolated collection of server + network + storage resources. 前の例では、VM が展開されるときに、少なくとも 2 つの障害ドメインに可用性セットが分散されます。In the preceding example, the availability set is distributed across at least two fault domains when the VMs are deployed. 可用性セットは、2 つの更新ドメインにも分散されます。The availability set is also distributed across two update domains. 2 つの更新ドメインを使用すると、Azure がソフトウェアの更新を実行するときに、VM リソースが分離されて、VM 上で実行するすべてのソフトウェアが同時に更新されるのを防ぎます。Two update domains ensure that when Azure performs software updates, the VM resources are isolated, preventing all the software that runs on the VM from being updated at the same time.

可用性セット内の VM の作成Create VMs inside an availability set

VM は、ハードウェア全体で適切に分散させるために、可用性セット内に作成する必要があります。VMs must be created within the availability set to make sure they are correctly distributed across the hardware. 可用性セットを作成した後に、既存の VM を追加することはできません。An existing VM cannot be added to an availability set after it is created.

az vm create を使って VM を作成するときに、--availability-set パラメーターを使って可用性セットの名前を指定します。When a VM is created with az vm create, use the --availability-set parameter to specify the name of the availability set.

for i in `seq 1 2`; do
   az vm create \
     --resource-group myResourceGroupAvailability \
     --name myVM$i \
     --availability-set myAvailabilitySet \
     --size Standard_DS1_v2  \
     --vnet-name myVnet \
     --subnet mySubnet \
     --image UbuntuLTS \
     --admin-username azureuser \
     --generate-ssh-keys
done

可用性セット内に 2 つの仮想マシンが存在するようになります。There are now two virtual machines within the availability set. それらは同じ可用性セットに属しているため、VM と (データ ディスクを含む) すべてのリソースは、複数の分離された物理ハードウェアに分散されます。Because they are in the same availability set, Azure ensures that the VMs and all their resources (including data disks) are distributed across isolated physical hardware. この分散によって、VM ソリューション全体の可用性が大きく向上します。This distribution helps ensure much higher availability of the overall VM solution.

可用性セットの分散は、ポータルで [リソース グループ]、myResourceGroupAvailability、myAvailabilitySet の順に移動して確認できます。The availability set distribution can be viewed in the portal by going to Resource Groups > myResourceGroupAvailability > myAvailabilitySet. 次の例で示すように、VM は 2 つの障害ドメインと更新ドメインに分散されています。The VMs are distributed across the two fault and update domains, as shown in the following example:

ポータルの可用性セット

使用可能な VM のサイズのチェックCheck for available VM sizes

ハードウェアに VM に使用できるサイズがある場合は、後で新しい VM を可用性セットに追加できます。Additional VMs can be added to the availability set later, where VM sizes are available on the hardware. ハードウェア クラスター上で可用性セットに使用可能なすべてのサイズを一覧表示するには、az vm availability-set list-sizes を使います。Use az vm availability-set list-sizes to list all the available sizes on the hardware cluster for the availability set:

az vm availability-set list-sizes \
     --resource-group myResourceGroupAvailability \
     --name myAvailabilitySet \
     --output table

次の手順Next steps

このチュートリアルでは、以下の内容を学習しました。In this tutorial, you learned how to:

  • 可用性セットの作成Create an availability set
  • 可用性セットに VM を作成するCreate a VM in an availability set
  • 使用可能な VM のサイズを確認するCheck available VM sizes

次のチュートリアルに進み、仮想マシンのスケール セットについて学習してください。Advance to the next tutorial to learn about virtual machine scale sets.