次の方法で共有


チュートリアル: Azure CLI を使用して仮想マシン スケール セット インスタンスに接続する

仮想マシン スケール セットを使用すると、一連の仮想マシンをデプロイおよび管理できます。 仮想マシン スケール セットのライフサイクル全体を通して、1 つ以上の管理タスクを実行することが必要になる場合があります。 このチュートリアルでは、次の方法について説明します。

  • 接続情報を一覧表示する
  • SSH を使用して個々のインスタンスに接続する

Azure サブスクリプションがない場合は、開始する前に、Azure 無料アカウント を作成します。

前提 条件

  • Azure Cloud Shellで Bash 環境を使用します。 詳細については、「Azure Cloud Shellでの Bash のクイック スタート」を参照してください。

  • CLI 参照コマンドをローカルで実行したい場合は、Azure CLI を インストールしてください。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用している場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、「Azure CLIを使用したサインイン」を参照してください。

    • メッセージが表示されたら、最初に使用するときに Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、「Azure CLIで拡張機能を使用する」を参照してください。

    • az version 実行して、インストールされているバージョンと依存ライブラリを見つけます。 最新バージョンにアップグレードするには、az upgrade実行します。

この記事では、Azure CLI のバージョン 2.0.29 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。

スケール セット内のインスタンスを一覧表示する

スケール セットがまだ作成されていない場合は、「チュートリアル: Azure CLI を使用して仮想マシン スケール セットを作成および管理する」を参照してください。

仮想マシン スケール セット内のすべてのインスタンスを一覧表示します。

az vmss list-instances \
  --resource-group myResourceGroup \
  --name myScaleSet \
  --output table
Location    Name                 ResourceGroup
----------  -------------------  ---------------
eastus      myScaleSet_0e7d4d21  myResourceGroup
eastus      myScaleSet_39379fc3  myResourceGroup

NIC 情報を取得する

az vm nic list と個々の VM インスタンスの名前 使用して、NIC 名を見つけます。

az vm nic list \
  --resource-group myResourceGroup
  --vm-name myScaleSet_0e7d4d21
[
  {
    "deleteOption": "Delete",
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a",
    "primary": true,
    "resourceGroup": "myResourceGroup"
  }
]

VM 名と NIC 名を使用して、NIC のプライベート IP アドレス、受信 NAT 規則名、ロード バランサー名 az vm nic showを取得します。

az vm nic show --resource-group myResourceGroup --vm-name myScaleSet_0e7d4d21 --nic mysca2215Nic-828c525a
{
  "enableAcceleratedNetworking": false,
  "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a",
  "ipConfigurations": [
    {
      "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/mysca2215Nic-828c525a/ipConfigurations/mysca2215IPConfig",
      "loadBalancerBackendAddressPools": [
        {
          "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSetLB/backendAddressPools/myScaleSetLBBEPool",
        }
      ],
      "name": "mysca2215IPConfig",
      "primary": true,
      "privateIpAddress": "10.0.0.5",
      "privateIpAddressVersion": "IPv4",
      "privateIpAllocationMethod": "Dynamic",
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "subnet": {
        "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myScaleSetVNET/subnets/myScaleSetSubnet",
        "resourceGroup": "myResourceGroup",
      },
      "type": "Microsoft.Network/networkInterfaces/ipConfigurations",
    }
  ],
  "location": "eastus",
  "name": "mysca2215Nic-828c525a",
  "networkSecurityGroup": {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkSecurityGroups/myScaleSetNSG",
    "resourceGroup": "myResourceGroup",
  },
  "nicType": "Standard",
  "primary": true,
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "tapConfigurations": [],
  "type": "Microsoft.Network/networkInterfaces",
  "virtualMachine": {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myScaleSet_0e7d4d21",
    "resourceGroup": "myResourceGroup"
  },
}

バックエンド プールの詳細を取得する

バックエンド プール名とロード バランサー名を使用して、を持つ az network lb list-mapping コマンドを使用し、接続したいインスタンスのプライベート IP アドレスのポートを取得します。

az network lb list-mapping --backend-pool-name myScaleSetLBBEPool --resource-group myResourceGroup --name myScaleSetLB --request ip=10.0.0.5
{
  "inboundNatRulePortMappings": [
    {
      "backendPort": 22,
      "frontendPort": 50001,
      "inboundNatRuleName": "NatRule",
      "protocol": "Tcp"
    }
  ]
}

ロード バランサーのパブリック IP を取得する

ロード バランサー のパブリック IP を az network public-ip listを使用して取得します。

az network public-ip list --resource-group myResourceGroup
[
  {
    "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myScaleSetLBPublicIP",
    "idleTimeoutInMinutes": 4,
    "ipAddress": "20.172.211.239",
    "ipConfiguration": {
      "id": "/subscriptions/resourceGroups/myResourceGroup/providers/Microsoft.Network/loadBalancers/myScaleSetLB/frontendIPConfigurations/loadBalancerFrontEnd",
      "resourceGroup": "myResourceGroup"
    },
    "ipTags": [],
    "location": "eastus",
    "name": "myScaleSetLBPublicIP",
    "provisioningState": "Succeeded",
    "publicIPAddressVersion": "IPv4",
    "publicIPAllocationMethod": "Static",
    "resourceGroup": "myResourceGroup",
    "sku": {
      "name": "Standard",
      "tier": "Regional"
    },
    "tags": {},
    "type": "Microsoft.Network/publicIPAddresses"
  }
]

インスタンスに接続する

ロード バランサーの IP と接続先のマシンのポートを使用してマシンに SSH 接続します。

ssh azureuser@20.172.211.239 -p 50000

次の手順

このチュートリアルでは、スケール セット内のインスタンスを一覧表示し、SSH 経由で個々のインスタンスに接続する方法について説明しました。

  • スケール セット内のインスタンスを表示し、閲覧する
  • スケール セット内の個々のインスタンスのネットワーク情報を収集する
  • スケール セット内の個々の VM インスタンスに接続する

スケール セットの を変更する