更新:Azure CLI を使用して専用ホストに VM をデプロイするPreview: Deploy VMs to dedicated hosts using the Azure CLI

この記事では、仮想マシン (VM) をホストするための Azure 専用ホストを作成する方法について説明します。This article guides you through how to create an Azure dedicated host to host your virtual machines (VMs).

Azure CLI バージョン2.0.70 以降がインストールされていること、および az login を使用して Azure アカウントにサインインしていることを確認します。Make sure that you have installed Azure CLI version 2.0.70 or later, and signed in to an Azure account using az login.

重要

現在、専用ホストはパブリック プレビュー段階にあります。Azure Dedicated Hosts is currently in public preview. このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。This preview version is provided without a service level agreement, and it's not recommended for production workloads. 特定の機能はサポート対象ではなく、機能が制限されることがあります。Certain features might not be supported or might have constrained capabilities. 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

プレビューに関する既知の制限事項Known preview limitations

  • 仮想マシン スケール セットは、現在、専用ホストではサポートされていません。Virtual machine scale sets are not currently supported on dedicated hosts.
  • プレビューの初期リリースでは、次の VM シリーズがサポートされています: DSv3 と ESv3。The preview initial release supports the following VM series: DSv3 and ESv3.

リソース グループの作成Create resource group

Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。An Azure resource group is a logical container into which Azure resources are deployed and managed. az group create で、リソース グループを作成します。Create the resource group with az group create. 次の例では、myDHResourceGroup という名前のリソース グループを "米国東部" の場所に作成します。The following example creates a resource group named myDHResourceGroup in the East US location.

az group create --name myDHResourceGroup --location eastus 

ホスト グループを作成するCreate a host group

ホスト グループは、専用ホストのコレクションを表すリソースです。A host group is a resource that represents a collection of dedicated hosts. リージョンと可用性ゾーンにホスト グループを作成し、それにホストを追加します。You create a host group in a region and an availability zone, and add hosts to it. 高可用性を計画する場合は、追加のオプションがあります。When planning for high availability, there are additional options. 専用ホストでは、次のいずれかまたは両方のオプションを使用できます。You can use one or both of the following options with your dedicated hosts:

  • 複数の可用性ゾーンにまたがります。Span across multiple availability zones. この場合は、使用する各ゾーンにホスト グループを用意する必要があります。In this case, you are required to have a host group in each of the zones you wish to use.
  • 物理ラックにマップされる複数の障害ドメインにまたがります。Span across multiple fault domains which are mapped to physical racks.

どちらの場合も、ホスト グループに対して障害ドメイン数を指定する必要があります。In either case, you are need to provide the fault domain count for your host group. グループ内で障害ドメインをまたがりたくない場合は、障害ドメインの数を 1 にします。If you do not want to span fault domains in your group, use a fault domain count of 1.

可用性ゾーンと障害ドメインの両方を使用することもできます。You can also decide to use both availability zones and fault domains.

この例では、az vm host group create を使用し、可用性ゾーンと障害ドメインの両方を使用してホスト グループを作成します。In this example, we will use az vm host group create to create a host group using both availability zones and fault domains.

az vm host group create \
   --name myHostGroup \
   -g myDHResourceGroup \
   -z 1 \
   --platform-fault-domain-count 2 

その他の例Other examples

az vm host group create を使用して、可用性ゾーン 1 (障害ドメインなし) にホスト グループを作成することもでいます。You can also use az vm host group create to create a host group in availability zone 1 (and no fault domains).

az vm host group create \
   --name myAZHostGroup \
   -g myDHResourceGroup \
   -z 1 \
   --platform-fault-domain-count 1 

以下では、az vm host group create を使用し、障害ドメインのみを使用してホスト グループを作成します (可用性ゾーンがサポートされていないリージョンで使用する場合)。The following uses az vm host group create to create a host group by using fault domains only (to be used in regions where availability zones are not supported).

az vm host group create \
   --name myFDHostGroup \
   -g myDHResourceGroup \
   --platform-fault-domain-count 2 

ホストを作成するCreate a host

次に、ホスト グループに専用ホストを作成してみましょう。Now let's create a dedicated host in the host group. ホストの名前に加えて、ホストの SKU を指定する必要があります。In addition to a name for the host, you are required to provide the SKU for the host. ホスト SKU では、専用ホストに対してサポートされている VM シリーズとハードウェアの世代がキャプチャされます。Host SKU captures the supported VM series as well as the hardware generation for your dedicated host. プレビュー期間中は、次のホスト SKU 値がサポートされます: DSv3_Type1 と ESv3_Type1。During the preview, we will support the following host SKU values: DSv3_Type1 and ESv3_Type1.

ホスト SKU の詳細と価格については、「Azure 専用ホストの価格」を参照してください。For more information about the host SKUs and pricing, see Azure Dedicated Host pricing.

az vm host create を使用してホストを作成します。Use az vm host create to create a host. ホスト グループの障害ドメイン数を設定した場合は、ホストの障害ドメインを指定するように求められます。If you set a fault domain count for your host group, you will be asked to specify the fault domain for your host.

az vm host create \
   --host-group myHostGroup \
   --name myHost \
   --sku DSv3-Type1 \
   --platform-fault-domain 1 \
   -g myDHResourceGroup

仮想マシンの作成Create a virtual machine

az vm create を使用して、専用ホスト内に仮想マシンを作成します。Create a virtual machine within a dedicated host using az vm create. ホスト グループを作成するときに可用性ゾーンを指定した場合は、仮想マシンを作成するときに同じゾーンを使用する必要があります。If you specified an availability zone when creating your host group, you are required to use the same zone when creating the virtual machine.

az vm create \
   -n myVM \
   --image debian \
   --generate-ssh-keys \
   --host-group myHostGroup \
   --host myHost \
   --generate-ssh-keys \
   --size Standard_D4s_v3 \
   -g myDHResourceGroup \
   --zone 1

警告

十分なリソースがないホストに仮想マシンを作成すると、仮想マシンは FAILED 状態で作成されます。If you create a virtual machine on a host which does not have enough resources, the virtual machine will be created in a FAILED state.

ホストの状態を確認するCheck the status of the host

az vm host get-instance-view を使用して、ホストの正常性状態と、ホストにデプロイできる仮想マシンの数を確認できます。You can check the host health status and how many virtual machines you can still deploy to the host using az vm host get-instance-view.

az vm host get-instance-view \
   -g myDHResourceGroup \
   --host-group myHostGroup \
   --name myHost

出力は次のようになります。The output will look similar to this:

{
  "autoReplaceOnFailure": true,
  "hostId": "6de80643-0f45-4e94-9a4c-c49d5c777b62",
  "id": "/subscriptions/10101010-1010-1010-1010-101010101010/resourceGroups/myDHResourceGroup/providers/Microsoft.Compute/hostGroups/myHostGroup/hosts/myHost",
  "instanceView": {
    "assetId": "12345678-1234-1234-abcd-abc123456789",
    "availableCapacity": {
      "allocatableVms": [
        {
          "count": 31.0,
          "vmSize": "Standard_D2s_v3"
        },
        {
          "count": 15.0,
          "vmSize": "Standard_D4s_v3"
        },
        {
          "count": 7.0,
          "vmSize": "Standard_D8s_v3"
        },
        {
          "count": 3.0,
          "vmSize": "Standard_D16s_v3"
        },
        {
          "count": 1.0,
          "vmSize": "Standard_D32-8s_v3"
        },
        {
          "count": 1.0,
          "vmSize": "Standard_D32-16s_v3"
        },
        {
          "count": 1.0,
          "vmSize": "Standard_D32s_v3"
        },
        {
          "count": 1.0,
          "vmSize": "Standard_D48s_v3"
        },
        {
          "count": 0.0,
          "vmSize": "Standard_D64-16s_v3"
        },
        {
          "count": 0.0,
          "vmSize": "Standard_D64-32s_v3"
        },
        {
          "count": 0.0,
          "vmSize": "Standard_D64s_v3"
        }
      ]
    },
    "statuses": [
      {
        "code": "ProvisioningState/succeeded",
        "displayStatus": "Provisioning succeeded",
        "level": "Info",
        "message": null,
        "time": "2019-07-24T21:22:40.604754+00:00"
      },
      {
        "code": "HealthState/available",
        "displayStatus": "Host available",
        "level": "Info",
        "message": null,
        "time": null
      }
    ]
  },
  "licenseType": null,
  "location": "eastus2",
  "name": "myHost",
  "platformFaultDomain": 1,
  "provisioningState": "Succeeded",
  "provisioningTime": "2019-07-24T21:22:40.604754+00:00",
  "resourceGroup": "myDHResourceGroup",
  "sku": {
    "capacity": null,
    "name": "DSv3-Type1",
    "tier": null
  },
  "tags": null,
  "type": null,
  "virtualMachines": [
    {
      "id": "/subscriptions/10101010-1010-1010-1010-101010101010/resourceGroups/MYDHRESOURCEGROUP/providers/Microsoft.Compute/virtualMachines/MYVM",
      "resourceGroup": "MYDHRESOURCEGROUP"
    }
  ]
}

テンプレートとしてのエクスポートExport as a template

同じパラメーターを使用して追加の開発環境を作成する場合や、開発環境に合った運用環境を作成する場合は、テンプレートをエクスポートできます。You can export a template if you now want to create an additional development environment with the same parameters, or a production environment that matches it. リソース マネージャーでは、環境に合ったすべてのパラメーターを定義する JSON テンプレートを使用します。Resource Manager uses JSON templates that define all the parameters for your environment. この JSON テンプレートを参照することで全体の環境を構築します。You build out entire environments by referencing this JSON template. JSON テンプレートを手動で構築できます。または、既存の環境をエクスポートして JSON テンプレートを作成することもできます。You can build JSON templates manually or export an existing environment to create the JSON template for you. az group export を使って、リソース グループをエクスポートします。Use az group export to export your resource group.

az group export --name myDHResourceGroup > myDHResourceGroup.json 

このコマンドで、現在の作業ディレクトリ内に myDHResourceGroup.json ファイルが作成されます。This command creates the myDHResourceGroup.json file in your current working directory. このテンプレートから環境を作成する場合、リソース名をすべて入力するように求められます。When you create an environment from this template, you are prompted for all the resource names. az group export コマンドに --include-parameter-default-value パラメーターを追加することで、テンプレート ファイルにこれらの名前を入力できます。You can populate these names in your template file by adding the --include-parameter-default-value parameter to the az group export command. リソース名を指定する JSON テンプレートを編集するか、リソース名を指定する parameters.json ファイルを作成します。Edit your JSON template to specify the resource names, or create a parameters.json file that specifies the resource names.

テンプレートから環境を作成するには、az group deployment create を使います。To create an environment from your template, use az group deployment create.

az group deployment create \ 
    --resource-group myNewResourceGroup \ 
    --template-file myDHResourceGroup.json 

クリーンアップClean up

仮想マシンがデプロイされていない場合でも、専用ホストに対して課金されます。You are being charged for your dedicated hosts even when no virtual machines are deployed. コストを節約するには、現在使用していないすべてのホストを削除する必要があります。You should delete any hosts you are currently not using to save costs.

ホストを削除できるのは、それを使用している仮想マシンがなくなった場合のみです。You can only delete a host when there are no any longer virtual machines using it. az vm delete を使用して VM を削除します。Delete the VMs using az vm delete.

az vm delete -n myVM -g myDHResourceGroup

VM を削除した後、az vm host delete を使用してホストを削除できます。After deleting the VMs, you can delete the host using az vm host delete.

az vm host delete -g myDHResourceGroup --host-group myHostGroup --name myHost 

すべてのホストを削除したら、az vm host group delete を使用してホスト グループを削除できます。Once you have deleted all of your hosts, you may delete the host group using az vm host group delete.

az vm host group delete -g myDHResourceGroup --host-group myHostGroup  

また、1 つのコマンドで、リソース グループ全体を削除することもできます。You can also delete the entire resource group in a single command. これにより、すべての VM、ホスト、ホスト グループを含めて、グループ内に作成されたすべてのリソースが削除されます。This will delete all resources created in the group, including all of the VMs, hosts and host groups.

az group delete -n myDHResourceGroup 

次の手順Next steps

  • 詳細については、専用ホストの概要に関するページを参照してください。For more information, see the Dedicated hosts overview.

  • また、Azure portal を使用して専用ホストを作成することもできます。You can also create dedicated hosts using the Azure portal.

  • こちらには、リージョン内の回復性を最大にするためにゾーンと障害ドメインの両方を使用するサンプル テンプレートがあります。There is sample template, found here, that uses both zones and fault domains for maximum resiliency in a region.