Azure 가상 머신 확장 집합에 대한 FAQAzure virtual machine scale sets FAQs

Azure의 가상 머신 확장 집합에 대한 FAQ(질문과 대답)에 대해 알아봅니다.Get answers to frequently asked questions about virtual machine scale sets in Azure.

확장 집합에 대한 상위 질문과 대답Top frequently asked questions for scale sets

확장 집합에 포함할 수 있는 VM 수는 몇 개인가요?How many VMs can I have in a scale set?

확장 집합에는 플랫폼 이미지에 기반하여 0~1,000대의 VM, 사용자 지정 이미지에 기반하여 0~600대의 VM을 포함할 수 있습니다.A scale set can have 0 to 1,000 VMs based on platform images, or 0 to 600 VMs based on custom images.

확장 집합 내에서 데이터 디스크가 지원되나요?Are data disks supported within scale sets?

예.Yes. 확장 집합은 집합에서 모든 VM에 적용되는 연결된 데이터 디스크 구성을 정의할 수 있습니다.A scale set can define an attached data disks configuration that applies to all VMs in the set. 자세한 내용은 Azure 크기 조정 설정 및 연결된 데이터 디스크를 참조하세요.For more information, see Azure scale sets and attached data disks. 데이터를 저장하는 기타 옵션은 다음과 같습니다.Other options for storing data include:

  • Azure 파일(SMB 공유 드라이브)Azure files (SMB shared drives)
  • OS 드라이브OS drive
  • 임시 드라이브(Azure Storage에서 지원되지 않는 로컬 드라이브)Temp drive (local, not backed by Azure Storage)
  • Azure 데이터 서비스(예: Azure 테이블, Azure Blob)Azure data service (for example, Azure tables, Azure blobs)
  • 외부 데이터 서비스(예: 원격 데이터베이스)External data service (for example, remote database)

확장 집합을 지원하는 Azure 지역은 어디인가요?Which Azure regions support scale sets?

모든 지역에서 확장 집합을 지원합니다.All regions support scale sets.

사용자 지정 이미지를 사용하여 확장 집합을 어떻게 만드나요?How do I create a scale set by using a custom image?

VM 이미지를 만들고 캡처한 다음, 확장 집합에 대한 원본으로 사용합니다.Create and capture a VM image, then use that as the source for your scale set. 사용자 지정 VM 이미지를 만들고 사용하는 방법에 대한 자습서의 경우 Azure CLI 또는 Azure PowerShell을 사용할 수 있습니다.For a tutorial on how to create and use a custom VM image, you can use the Azure CLI or Azure PowerShell

내 확장 집합 용량을 20에서 15로 줄이면, 어떤 VM이 제거되나요?If I reduce my scale set capacity from 20 to 15, which VMs are removed?

기본적으로 가상 컴퓨터는 가용성 영역 (확장 집합이 영역 구성에 배포 된 경우) 및 장애 도메인 간에 균등 하 게 확장 집합에서 제거 되어 가용성을 최대화 합니다.By default, virtual machines are removed from the scale set evenly across availability zones (if the scale set is deployed in zonal configuration) and fault domains to maximize availability. ID가 가장 높은 VM이 먼저 제거됩니다.VMs with the highest IDs are removed first.

확장 집합에 대 한 확장 정책을 지정 하 여 가상 머신 제거의 순서를 변경할 수 있습니다.You can change the order of virtual machine removal by specifying a scale-in policy for the scale set.

그런 다음 용량을 15에서 18로 늘리면 어떻게 되나요?What if I then increase the capacity from 15 to 18?

용량을 18로 늘리면 3개의 새로운 VM 생성됩니다.If you increase capacity to 18, then 3 new VMs are created. VM 인스턴스 ID는 이전의 가장 큰 값에서 증가합니다(예: 20, 21, 22).Each time, the VM instance ID is incremented from the previous highest value (for example, 20, 21, 22). Vm은 장애 도메인 간에 균형을 유지 합니다.VMs are balanced across fault domains.

확장 집합에서 여러 확장을 사용하는 경우, 실행 순서를 강제로 적용할 수 있나요?When I'm using multiple extensions in a scale set, can I enforce an execution sequence?

예, 확장 시퀀싱 확장 집합을 사용할 수 있습니다.Yes, you can use scale set extension sequencing.

확장 집합은 Azure 가용성 집합과 작업이 가능한가요?Do scale sets work with Azure availability sets?

지역(비 영역) 확장 집합은 배치 그룹 을 사용합니다. 5개의 장애 도메인과 5개의 업데이트 도메인이 있는 암시적 가용성 집합으로 역할을 합니다.A regional (non-zonal) scale set uses placement groups, which act as an implicit availability set with five fault domains and five update domains. 100개 이상의 VM 확장 집합은 여러 배치 그룹으로 확장합니다.Scale sets of more than 100 VMs span multiple placement groups. 배치 그룹에 대한 자세한 내용은 대규모 가상 머신 크기 집합과 작동을 참조하세요.For more information about placement groups, see Working with large virtual machine scale sets. VM의 가용성 집합은 동일한 가상 네트워크에 VM의 확장 집합으로 존재할 수 있습니다.An availability set of VMs can exist in the same virtual network as a scale set of VMs. 일반적인 구성은 가용성 집합에서 고유한 구성이 필요한 제어 노드 VM을 배치하고 확장 집합에 데이터 노드를 배치하는 것입니다.A common configuration is to put control node VMs (which often require unique configuration) in an availability set and put data nodes in the scale set.

확장 집합은 Azure 가용성 영역과 작업이 가능한가요?Do scale sets work with Azure availability zones?

예!Yes! 자세한 내용은 확장 집합 영역 문서를 참조하세요.For more information, see the scale set zone doc.

자동 크기 조정Autoscale

Azure 자동 크기 조정에 대한 모범 사례는 무엇인가요?What are best practices for Azure Autoscale?

자동 크기 조정에 대한 모범 사례는 가상 머신 자동 크기 조정에 대한 모범 사례를 참조하세요.For best practices for Autoscale, see Best practices for autoscaling virtual machines.

호스트 기반 메트릭을 사용하는 자동 크기 조정에 대한 메트릭 이름은 어디에서 찾을 수 있나요?Where do I find metric names for autoscaling that uses host-based metrics?

호스트 기반 메트릭을 사용하는 자동 크기 조정에 대한 메트릭 이름은 Azure Monitor에서 지원되는 메트릭을 참조하세요.For metric names for autoscaling that uses host-based metrics, see Supported metrics with Azure Monitor.

Azure Service Bus 토픽과 큐 길이를 기준으로 하는 자동 크기 조정의 예가 있나요?Are there any examples of autoscaling based on an Azure Service Bus topic and queue length?

예.Yes. Azure Service Bus 토픽과 큐 길이를 기준으로 하는 자동 크기 조정의 예는 Azure Monitor 자동 크기 조정 공용 메트릭을 참조하세요.For examples of autoscaling based on an Azure Service Bus topic and queue length, see Azure Monitor autoscaling common metrics.

Service Bus 큐를 모니터링하려면 다음 JSON을 수행합니다.For a Service Bus queue, use the following JSON:

"metricName": "MessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/s1/resourceGroups/rg1/providers/Microsoft.ServiceBus/namespaces/mySB/queues/myqueue"

스토리지 큐의 경우 다음 JSON을 사용합니다.For a storage queue, use the following JSON:

"metricName": "ApproximateMessageCount",
"metricNamespace": "",
"metricResourceUri": "/subscriptions/s1/resourceGroups/rg1/providers/Microsoft.ClassicStorage/storageAccounts/mystorage/services/queue/queues/mystoragequeue"

예제 값을 리소스 URI(Uniform Resource Identifier)로 바꿉니다.Replace example values with your resource Uniform Resource Identifiers (URIs).

자동 크기 조정을 수행할 때 호스트 기반 메트릭과 진단 확장 중에서 어떤 방식을 사용하는 것이 바람직한가요?Should I autoscale by using host-based metrics or a diagnostics extension?

VM에 자동 크기 조정 설정을 만들면 호스트 수준 메트릭 또는 게스트 OS 기반 메트릭을 사용할 수 있습니다.You can create an autoscale setting on a VM to use host-level metrics or guest OS-based metrics.

지원되는 메트릭 목록에 대해서는 Azure Monitor 자동 크기 조정 공용 메트릭을 참조하세요.For a list of supported metrics, see Azure Monitor autoscaling common metrics.

가상 머신 확장 집합의 전체 샘플을 보려면 가상 머신 확장 집합에 대해 Resource Manager 템플릿을 사용하여 고급 자동 크기 조정 구성을 참조하세요.For a full sample for virtual machine scale sets, see Advanced autoscale configuration by using Resource Manager templates for virtual machine scale sets.

샘플에서는 호스트 수준의 CPU 메트릭 및 메시지 개수 메트릭을 사용합니다.The sample uses the host-level CPU metric and a message count metric.

가상 머신 확장 집합에 대해 경고 규칙을 설정하려면 어떻게 해야 하나요?How do I set alert rules on a virtual machine scale set?

PowerShell 또는 Azure CLI를 통해 가상 머신 확장 집합의 메트릭에 대해 경고를 만들 수 있습니다.You can create alerts on metrics for virtual machine scale sets via PowerShell or Azure CLI. 자세한 내용은 Azure Monitor PowerShell 빠른 시작 샘플Azure Monitor 플랫폼 간 CLI 빠른 시작 샘플을 참조하세요.For more information, see Azure Monitor PowerShell quickstart samples and Azure Monitor cross-platform CLI quickstart samples.

가상 머신 확장 집합의 TargetResourceId는 다음과 같습니다.The TargetResourceId of the virtual machine scale set looks like this:

/subscriptions/yoursubscriptionid/resourceGroups/yourresourcegroup/providers/Microsoft.Compute/virtualMachineScaleSets/yourvmssname/subscriptions/yoursubscriptionid/resourceGroups/yourresourcegroup/providers/Microsoft.Compute/virtualMachineScaleSets/yourvmssname

경고를 설정할 메트릭으로 어떤 VM 성능 카운터도 선택할 수 있습니다.You can choose any VM performance counter as the metric to set an alert for. 자세한 내용은 Azure Monitor 자동 크기 조정 공용 메트릭 문서의 Resource Manager 기반 Windows VM에 대한 게스트 OS 메트릭Linux VM에 대한 게스트 OS 메트릭을 참조하세요.For more information, see Guest OS metrics for Resource Manager-based Windows VMs and Guest OS metrics for Linux VMs in the Azure Monitor autoscaling common metrics article.

PowerShell을 사용하여 가상 머신 확장 집합에 대해 자동 크기 조정을 설정하려면 어떻게 하나요?How do I set up autoscale on a virtual machine scale set by using PowerShell?

PowerShell을 사용하여 가상 머신 확장 집합에 대해 자동 크기 조정을 설정하려면 가상 머신 확장 집합의 크기를 자동으로 조정을 참조하세요.To set up autoscale on a virtual machine scale set by using PowerShell, see automatically scale a virtual machine scale set. Azure CLIAzure 템플릿으로 자동 크기 조정을 구성할 수도 있습니다.You can also configure autoscale with the Azure CLI and Azure templates

VM을 중지(할당 취소)한 경우 VM이 자동 크기 조정 작업의 일부로 시작되었나요?If I have stopped (deallocated) a VM, is that VM started as part of an autoscale operation?

아니요.No. 자동 크기 조정 규칙에 확장 집합의 일부로 추가 VM 인스턴스가 필요한 경우 새 VM 인스턴스가 생성됩니다.If autoscale rules require additional VM instances as part of a scale set, a new VM instance is created. 중지(할당 취소)된 VM 인스턴스는 자동 크기 조정 이벤트의 일부로 시작되지 않습니다.VM instances that are stopped (deallocated) are not started as part of an autoscale event. 그러나 중지(할당 취소)된 VM은 VM 인스턴스 ID의 순서에 따라 모든 VM 인스턴스를 삭제할 수 있는 것과 같은 방식으로, 인스턴스 수에 따라 자동 크기 조정 이벤트의 일부로 삭제할 수 있습니다.However, those stopped (deallocated) VMs may be deleted as part of an autoscale event that scales in the number of instances, the same way that any VM instance may be deleted based on the order of VM instance ID.

인증서Certificates

VM에 인증서를 안전하게 배달하려면 어떻게 해야 하나요?How do I securely ship a certificate to the VM?

VM에 인증서를 안전하게 전달하기 위해 고객의 Key Vault에서 Windows 인증서 저장소로 직접 고객 인증서를 설치할 수 있습니다.To securely ship a certificate to the VM, you can install a customer certificate directly into a Windows certificate store from the customer's key vault.

다음 JSON을 사용합니다.Use the following JSON:

"secrets": [
    {
        "sourceVault": {
            "id": "/subscriptions/{subscriptionid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1"
        },
        "vaultCertificates": [
            {
                "certificateUrl": "https://mykeyvault1.vault.azure.net/secrets/{secretname}/{secret-version}",
                "certificateStore": "certificateStoreName"
            }
        ]
    }
]

코드는 Windows와 Linux를 모두 지원합니다.The code supports Windows and Linux.

자세한 내용은 가상 머신 확장 집합 만들기 또는 업데이트를 참조하세요.For more information, see Create or update a virtual machine scale set.

Azure Service Fabric 클러스터에 대해 프로 비전 된 자체 서명 된 인증서를 사용 어떻게 할까요??How do I use self-signed certificates provisioned for Azure Service Fabric Clusters?

최신 예제의 경우 azure shell에서 다음 azure CLI 문을 사용하고, stdout으로 출력되는 Service Fabric CLI 모듈 예제 설명서를 읽어보세요.For the latest example use the following azure CLI statement within azure shell, read Service Fabrics CLI module Example documentation, which will be printed to stdout:

az sf cluster create -h

자체 서명 인증서는 인증 기관에서 제공하는 분산 트러스트에 사용할 수 없으며, 엔터프라이즈 프로덕션 솔루션을 호스트하기 위한 어떤 Service Fabric 클러스터에도 사용하지 말아야 합니다. 추가 Service Fabric 보안 지침에 대해서는 Azure Service Fabric 보안 모범 사례Service Fabric 클러스터 보안 시나리오를 검토하세요.Self-signed certificates can not be used for distributed trust provided by a Certificate Authority, and should not be used for any Service Fabric Cluster intended to host enterprise production solutions; for additional Service Fabric Security guidance, review Azure Service Fabric Security Best Practices and Service Fabric cluster security scenarios.

Resource Manager 템플릿에서 Linux 가상 머신 확장 집합으로 SSH 인증에 사용하려는 SSH 키 쌍을 지정할 수 있나요?Can I specify an SSH key pair to use for SSH authentication with a Linux virtual machine scale set from a Resource Manager template?

예.Yes. osProfile 에 대한 REST API는 표준 VM REST API와 비슷합니다.The REST API for osProfile is similar to the standard VM REST API.

템플릿에 osProfile 을 포함합니다.Include osProfile in your template:

"osProfile": {
    "computerName": "[variables('vmName')]",
    "adminUsername": "[parameters('adminUserName')]",
    "linuxConfiguration": {
        "disablePasswordAuthentication": "true",
        "ssh": {
            "publicKeys": [
                {
                    "path": "[variables('sshKeyPath')]",
                    "keyData": "[parameters('sshKeyData')]"
                }
            ]
        }
    }
}

이 JSON 블록은 이 Azure 빠른 시작 템플릿에서사용 됩니다.This JSON block is used in this Azure quickstart template.

자세한 내용은 가상 머신 확장 집합 만들기 또는 업데이트를 참조하세요.For more information, see Create or update a virtual machine scale set.

사용되지 않는 인증서를 제거하려면 어떻게 합니까?How do I remove deprecated certificates?

사용되지 않는 인증서를 제거하려면 자격 증명 모음 인증서 목록에서 이전 인증서를 제거합니다.To remove deprecated certificates, remove the old certificate from the vault certificates list. 목록에서 컴퓨터에 유지하려는 모든 인증서를 그대로 둡니다.Leave all the certificates that you want to remain on your computer in the list. 이렇게 하면 모든 VM에서 인증서가 제거되지 않습니다.This does not remove the certificate from all your VMs. 또한 가상 머신 확장 집합에서 만들어진 새 VM에 인증서가 추가되지 않습니다.It also does not add the certificate to new VMs that are created in the virtual machine scale set.

기존 Vm에서 인증서를 제거 하려면 사용자 지정 스크립트 확장을 사용 하 여 인증서 저장소에서 인증서를 수동으로 제거 합니다.To remove the certificate from existing VMs, use a custom script extension to manually remove the certificates from your certificate store.

프로비전하는 동안 기존 SSH 공개 키를 가상 머신 확장 집합 SSH 계층에 삽입하려면 어떻게 하나요?How do I inject an existing SSH public key into the virtual machine scale set SSH layer during provisioning?

VM에 공개 SSH 키만 프로비전하는 경우 Key Vault에 공개 키를 적용할 필요가 없습니다.If you are providing the VMs only with a public SSH key, you don't need to put the public keys in Key Vault. 공개 키는 비밀이 아닙니다.Public keys are not secret.

Linux VM을 만들 때 일반 텍스트로 SSH 공개 키를 제공할 수 있습니다.You can provide SSH public keys in plain text when you create a Linux VM:

"linuxConfiguration": {
    "ssh": {
        "publicKeys": [
            {
                "path": "path",
                "keyData": "publickey"
            }
        ]
    }
}
linuxConfiguration 요소 이름linuxConfiguration element name 필수Required TypeType 설명Description
sshssh 아니요No 컬렉션Collection Linux OS용 SSH 키 구성을 지정합니다.Specifies the SSH key configuration for a Linux OS
pathpath Yes StringString SSH 키 또는 인증서를 배치해야 하는 Linux 파일 경로를 지정합니다.Specifies the Linux file path where the SSH keys or certificate should be located
keyDatakeyData Yes StringString base64로 인코딩된 SSH 공개 키를 지정합니다.Specifies a base64-encoded SSH public key

예제는 101-vm-sshkey GitHub 빠른 시작 템플릿을 참조하세요.For an example, see the 101-vm-sshkey GitHub quickstart template.

동일한 Key Vault에서 둘 이상의 인증서를 추가한 후에 Update-AzVmss를 실행하면 다음과 같은 메시지가 나타납니다.When I run Update-AzVmss after adding more than one certificate from the same key vault, I see the following message:

AzVmss: List secret에는 허용 되지 않는/subscriptions//ResourceGroups/internal-rg-dev/providers/Microsoft.KeyVault/vaults/internal-keyvault-dev의 반복 되는 인스턴스가 포함 되어 있습니다 <my-subscription-id> .Update-AzVmss: List secret contains repeated instances of /subscriptions/<my-subscription-id>/resourceGroups/internal-rg-dev/providers/Microsoft.KeyVault/vaults/internal-keyvault-dev, which is disallowed.

이 기존 원본 자격 증명 모음에 대해 새 자격 증명 모음 인증서를 사용하는 대신, 동일한 자격 증명 모음을 다시 추가하려고 하면 이러한 현상이 발생할 수 있습니다.This can happen if you try to re-add the same vault instead of using a new vault certificate for the existing source vault. 다른 비밀을 더 추가하는 경우 Add-AzVmssSecret 명령은 제대로 작동하지 않습니다.The Add-AzVmssSecret command does not work correctly if you are adding additional secrets.

동일한 키 자격 증명 모음에서 더 많은 비밀을 추가하려면 $vmss.properties.osProfile.secrets[0].vaultCertificates 목록을 업데이트해야 합니다.To add more secrets from the same key vault, update the $vmss.properties.osProfile.secrets[0].vaultCertificates list.

필요한 입력 구조에 대한 자세한 내용은 가상 컴퓨터 설정 만들기 또는 업데이트를 참조하세요.For the expected input structure, see Create or update a virtual machine set.

Key Vault에 있는 가상 머신 확장 집합 개체에서 암호를 찾습니다.Find the secret in the virtual machine scale set object that is in the key vault. 그런 다음 인증서 참조(비밀 저장소 이름 및 URL)를 자격 증명 모음과 관련된 목록에 추가합니다.Then, add your certificate reference (the URL and the secret store name) to the list associated with the vault.

참고

현재 가상 머신 확장 집합 API를 사용하여 VM에서 인증서를 제거할 수 없습니다.Currently, you cannot remove certificates from VMs by using the virtual machine scale set API.

새 VM은 이전 인증서를 갖지 않게 됩니다.New VMs will not have the old certificate. 그러나 인증서가 있는 있고 이미 배포된 VM은 이전 인증서를 갖게 됩니다.However, VMs that have the certificate and which are already deployed will have the old certificate.

인증서가 현재 SecretStore에 있을 때 암호를 제공하지 않고 인증서를 가상 머신 확장 집합에 푸시할 수 있나요?Can I push certificates to the virtual machine scale set without providing the password, when the certificate is in the secret store?

스크립트에 하드 코드된 암호를 포함할 필요는 없습니다.You do not need to hard-code passwords in scripts. 배포 스크립트를 실행하는 데 사용하는 권한으로 암호를 동적으로 검색할 수 있습니다.You can dynamically retrieve passwords with the permissions you use to run the deployment script. 인증서를 비밀 저장소에서 Key Vault로 이동하는 스크립트가 있는 경우 secret store get certificate 명령을 실행하면 .pfx 파일의 암호도 출력됩니다.If you have a script that moves a certificate from the secret store key vault, the secret store get certificate command also outputs the password of the .pfx file.

가상 머신 확장 집합에 대한 virtualMachineProfile.osProfile의 Secrets 속성은 어떻게 작동합니까?How does the Secrets property of virtualMachineProfile.osProfile for a virtual machine scale set work? certificateUrl 속성을 사용하여 인증서에 대한 절대 URI를 지정해야 하는 경우 sourceVault 값이 필요한 이유는 무엇인가요?Why do I need the sourceVault value when I have to specify the absolute URI for a certificate by using the certificateUrl property?

Win RM(Windows 원격 관리) 인증서 참조는 OS 프로필의 Secrets 속성에 있어야 합니다.A Windows Remote Management (WinRM) certificate reference must be present in the Secrets property of the OS profile.

원본 자격 증명 모음을 지정하는 이유는 사용자의 Azure 클라우드 서비스 모델에 존재하는 ACL(액세스 제어 목록) 정책을 적용한다는 것입니다.The purpose of indicating the source vault is to enforce access control list (ACL) policies that exist in a user's Azure Cloud Service model. 원본 자격 증명 모음을 지정하지 않으면 Key Vault에 비밀을 배포하고 액세스할 수 있는 권한이 없는 사용자는 CRP(Compute 리소스 공급자)를 통해 배포하고 액세스할 수 있습니다.If the source vault isn't specified, users who do not have permissions to deploy or access secrets to a key vault would be able to through a Compute Resource Provider (CRP). ACL은 존재하지 않는 리소스에 대해서도 존재합니다.ACLs exist even for resources that do not exist.

잘못된 sourceVault ID를 제공했지만 유효한 Key Vault URL을 제공한 경우 작업을 폴링할 때 오류가 보고됩니다.If you provide an incorrect source vault ID but a valid key vault URL, an error is reported when you poll the operation.

기존 가상 머신 확장 집합에 비밀을 추가하면 비밀이 기존 VM에 삽입되나요? 아니면 새 VM에만 삽입되나요?If I add secrets to an existing virtual machine scale set, are the secrets injected into existing VMs, or only into new ones?

인증서는 기존 VM을 포함하여 모든 VM에 추가됩니다.Certificates are added to all your VMs, even pre-existing ones. 가상 머신 확장 집합 upgradePolicy 속성을 manual 로 설정하면 VM에서 수동 업데이트를 수행할 때 인증서가 해당 VM에 추가됩니다.If your virtual machine scale set upgradePolicy property is set to manual, the certificate is added to the VM when you perform a manual update on the VM.

Linux VM에 대한 인증서는 어디에서 추가하나요?Where do I put certificates for Linux VMs?

Linux VM에 대한 인증서를 배포하는 방법을 알아보려면 고객이 관리하는 Key Vault에서 VM에 인증서 배포를 참조하세요.To learn how to deploy certificates for Linux VMs, see Deploy certificates to VMs from a customer-managed key vault.

새 자격 증명 모음 인증서는 새 인증서 개체에 추가하려면 어떻게 하나요?How do I add a new vault certificate to a new certificate object?

기존 비밀에 자격 증명 모음 인증서를 추가하려면 다음 PowerShell 예제를 참조하세요.To add a vault certificate to an existing secret, see the following PowerShell example. 비밀 개체를 하나만 사용합니다.Use only one secret object.

$newVaultCertificate = New-AzVmssVaultCertificateConfig -CertificateStore MY -CertificateUrl https://sansunallapps1.vault.azure.net:443/secrets/dg-private-enc/55fa0332edc44a84ad655298905f1809

$vmss.VirtualMachineProfile.OsProfile.Secrets[0].VaultCertificates.Add($newVaultCertificate)

Update-AzVmss -VirtualMachineScaleSet $vmss -ResourceGroup $rg -Name $vmssName

VM을 이미지로 다시 설치하면 인증서는 어떻게 됩니까?What happens to certificates if you reimage a VM?

VM을 이미지로 다시 설치할 경우 인증서는 삭제됩니다.If you reimage a VM, certificates are deleted. 이미지로 다시 설치하면 전체 OS 디스크가 삭제됩니다.Reimaging deletes the entire OS disk.

키 자격 증명 모음에서 인증서를 삭제하면 어떻게 됩니까?What happens if you delete a certificate from the key vault?

키 자격 증명 모음에서 비밀을 삭제하고 모든 VM의 stop deallocate를 실행한 다음, 다시 시작하면 오류가 발생합니다.If the secret is deleted from the key vault, and then you run stop deallocate for all your VMs and then start them again, you encounter a failure. 이 오류는 CRP가 Key Vault에서 비밀을 검색해야 하기 때문에 발생합니다.The failure occurs because the CRP needs to retrieve the secrets from the key vault, but it cannot. 이 시나리오에서는 가상 머신 확장 집합 모델에서 인증서를 삭제할 수 있습니다.In this scenario, you can delete the certificates from the virtual machine scale set model.

CRP 구성 요소는 고객 비밀을 유지하지 않습니다.The CRP component does not persist customer secrets. 가상 머신 확장 집합의 모든 VM에 대해 stop deallocate를 실행하면 캐시가 삭제됩니다.If you run stop deallocate for all VMs in the virtual machine scale set, the cache is deleted. 이 시나리오에서는 Key Vault에서 비밀이 검색됩니다.In this scenario, secrets are retrieved from the key vault.

Azure Service Fabric에 비밀의 캐시 복사본이 있으므로 확장할 때 이 문제가 발생하지 않습니다(단일 패브릭 테넌트 모델).You don't encounter this problem when scaling out because there is a cached copy of the secret in Azure Service Fabric (in the single-fabric tenant model).

Key Vault를 사용할 때 인증서 버전을 지정해야 하는 이유는 무엇입니까?Why do I have to specify the certificate version when I use Key Vault?

Key Vault에서 인증서 버전을 지정하도록 요구하는 이유는 해당 VM에 배포된 인증서를 사용자에게 명확히 알리기 위한 것입니다.The purpose of the Key Vault requirement to specify the certificate version is to make it clear to the user what certificate is deployed on their VMs.

VM을 만든 다음 Key Vault에서 비밀을 업데이트하면 새 인증서가 VM에 다운로드되지 않습니다.If you create a VM and then update your secret in the key vault, the new certificate is not downloaded to your VMs. 그러나 VM에서 새 인증서를 참조하는 것처럼 보일 것이며, 새 VM에서 새 비밀을 가져오게 됩니다.But your VMs appear to reference it, and new VMs get the new secret. 이를 방지하려면 비밀 버전을 참조해야 합니다.To avoid this, you are required to reference a secret version.

.cer 공개 키를 가상 머신 확장 집합에 배포하려면 .cer 파일만 포함하는 .pfx 파일을 생성할 수 있습니다.To deploy .cer public keys to a virtual machine scale set, you can generate a .pfx file that contains only .cer files. 이렇게 하려면 X509ContentType = Pfx를 사용합니다.To do this, use X509ContentType = Pfx. 예를 들어 C# 또는 PowerShell에서 .cer 파일을 x509Certificate2 개체로 로드하고 이 메서드를 호출합니다.For example, load the .cer file as an x509Certificate2 object in C# or PowerShell, and then call the method.

자세한 내용은 X509Certificate.Export 메서드(X509ContentType, String)를 참조하세요.For more information, see X509Certificate.Export Method (X509ContentType, String).

인증서를 base64 문자열로 전달 어떻게 할까요??How do I pass in certificates as base64 strings?

인증서를 base64 문자열로 전달하는 것을 에뮬레이트하려면 Resource Manager 템플릿에서 최신 버전이 지정된 URL을 추출할 수 있습니다.To emulate passing in a certificate as a base64 string, you can extract the latest versioned URL in a Resource Manager template. Resource Manager 템플릿에 다음 JSON 속성을 포함합니다.Include the following JSON property in your Resource Manager template:

"certificateUrl": "[reference(resourceId(parameters('vaultResourceGroup'), 'Microsoft.KeyVault/vaults/secrets', parameters('vaultName'), parameters('secretName')), '2015-06-01').secretUriWithVersion]"

Key Vault의 JSON 개체에서 인증서를 래핑해야 하나요?Do I have to wrap certificates in JSON objects in key vaults?

가상 머신 확장 집합 및 VM에서 인증서가 JSON 개체에 래핑되어야 합니다.In virtual machine scale sets and VMs, certificates must be wrapped in JSON objects.

또한 콘텐츠 형식 application/x-pkcs12도 지원됩니다.We also support the content type application/x-pkcs12.

현재 .cer 파일은 지원하지 않습니다.We currently do not support .cer files. .cer 파일을 사용하려면 .pfx 컨테이너로 내보냅니다.To use .cer files, export them into .pfx containers.

규정 준수 및 보안Compliance and Security

가상 머신 확장 집합은 PCI 규정을 준수하나요?Are virtual machine scale sets PCI-compliant?

가상 머신 확장 집합은 CRP 위의 얇은 API 계층에 해당합니다.Virtual machine scale sets are a thin API layer on top of the CRP. 두 구성 요소 모두 Azure 서비스 트리에서 Compute 플랫폼에 속합니다.Both components are part of the compute platform in the Azure service tree.

따라서 규정 준수 관점에서 볼 때 가상 머신 확장 집합은 Azure Compute 플랫폼의 기본 요소입니다.From a compliance perspective, virtual machine scale sets are a fundamental part of the Azure compute platform. 이들은 CRP 자체와 팀, 도구, 프로세스, 배포 방법, 보안 제어, JIT(Just-In-Time) 컴파일, 모니터링, 경고 등을 공유합니다.They share a team, tools, processes, deployment methodology, security controls, just-in-time (JIT) compilation, monitoring, alerting, and so on, with the CRP itself. 가상 머신 확장 집합은 CRP가 현재 PCI DSS(데이터 보안 표준) 증명의 일부이므로 PCI(Payment Card Industry) 규격입니다.Virtual machine scale sets are Payment Card Industry (PCI)-compliant because the CRP is part of the current PCI Data Security Standard (DSS) attestation.

자세한 내용은 Microsoft 보안 센터를 참조 하세요.For more information, see the Microsoft Trust Center.

Azure 리소스에 대한 관리 ID는 가상 머신 확장 집합과 함께 작동하나요?Does managed identities for Azure resources work with virtual machine scale sets?

예.Yes. Azure 빠른 시작 템플릿에서 LinuxWindows에 대 한 몇 가지 예제 MSI 템플릿을 볼 수 있습니다.You can see some example MSI templates in Azure Quickstart templates for Linux and Windows.

삭제 중Deleting

인스턴스를 삭제할 때 가상 머신 확장 집합 인스턴스에 설정 된 잠금이 적용 되나요?Will the locks I set in place on virtual machine scale set instances be respected when deleting instances?

Azure Portal에서 여러 인스턴스를 선택 하 여 개별 인스턴스를 삭제 하거나 대량 삭제를 수행할 수 있습니다.In the Azure Portal, you have the ability to delete an individual instance or bulk delete by selecting multiple instances. 잠금이 준비 된 단일 인스턴스를 삭제 하려고 하면 잠금이 적용 되며 인스턴스를 삭제할 수 없습니다.If you attempt to delete a single instance that has a lock in place, the lock is respected and you will not be able to delete the instance. 그러나 여러 인스턴스를 대량으로 선택 하 고 해당 인스턴스에 잠금이 있는 경우에는 잠금이 적용 되지 않으며 선택한 모든 인스턴스가 삭제 됩니다.However, if you bulk select multiple instances and any of those instances have a lock in place, the lock(s) will not be respected and all of the selected instances will be deleted.

Azure CLI에서 개별 인스턴스를 삭제 하는 기능만 있습니다.In Azure CLI, you only have the ability to delete an individual instance. 잠금을 보유 한 단일 인스턴스를 삭제 하려고 하면 잠금이 적용 되 고 해당 인스턴스를 삭제할 수 없게 됩니다.If you attempt to delete a single instance that has a lock in place, the lock is respected and you will not be able to delete that instance.

확장Extensions

가상 머신 확장 집합 확장을 삭제하려면 어떻게 해야 하나요?How do I delete a virtual machine scale set extension?

가상 머신 확장 집합 확장을 삭제하려면 다음 PowerShell 예제를 사용합니다.To delete a virtual machine scale set extension, use the following PowerShell example:

$vmss = Get-AzVmss -ResourceGroupName "resource_group_name" -VMScaleSetName "vmssName"

$vmss=Remove-AzVmssExtension -VirtualMachineScaleSet $vmss -Name "extensionName"

Update-AzVmss -ResourceGroupName "resource_group_name" -VMScaleSetName "vmssName" -VirtualMacineScaleSet $vmss

$vmss에서 extensionName 값을 찾을 수 있습니다.You can find the extensionName value in $vmss.

Azure Monitor 로그와 통합 되는 가상 머신 확장 집합 템플릿 예제가 있나요?Is there a virtual machine scale set template example that integrates with Azure Monitor logs?

Azure Monitor 로그와 통합 되는 가상 머신 확장 집합 템플릿 예제는 Azure Service Fabric 클러스터 배포 및 Azure Monitor 로그를 사용 하 여 모니터링 사용의 두 번째 예제를 참조 하세요.For a virtual machine scale set template example that integrates with Azure Monitor logs, see the second example in Deploy an Azure Service Fabric cluster and enable monitoring by using Azure Monitor logs.

가상 머신 확장 집합의 모든 VM에 확장을 추가하려면 어떻게 하나요?How do I add an extension to all VMs in my virtual machine scale set?

업데이트 정책이 자동 으로 설정된 경우 템플릿을 새 확장 속성으로 다시 배포하면 모든 VM이 업데이트됩니다.If update policy is set to automatic, redeploying the template with the new extension properties updates all VMs.

업데이트 정책이 수동 으로 설정된 경우 먼저 확장을 업데이트한 다음 VM의 모든 인스턴스를 수동으로 업데이트합니다.If update policy is set to manual, first update the extension, and then manually update all instances in your VMs.

기존 가상 머신 확장 집합과 연결된 확장이 업데이트되면 기존 VM에 영향을 주나요?If the extensions associated with an existing virtual machine scale set are updated, are existing VMs affected?

가상 머신 확장 집합 모델의 확장 정의가 업데이트되고 upgradePolicy 속성이 자동 으로 설정되면 VM이 업데이트됩니다.If the extension definition in the virtual machine scale set model is updated and the upgradePolicy property is set to automatic, it updates the VMs. UpgradePolicy 속성을 수동 으로 설정하면 확장은 모델과 일치하지 않는 것으로 플래그가 지정됩니다.If the upgradePolicy property is set to manual, extensions are flagged as not matching the model.

기존 컴퓨터가 서비스를 치유 하거나 이미지로 다시 설치 때 확장이 다시 실행 되나요?Are extensions run again when an existing machine is service-healed or reimaged?

기존 VM이 서비스 치유 인 경우 재부팅으로 표시 되 고 확장이 다시 실행 되지 않습니다.If an existing VM is service-healed, it appears as a reboot, and the extensions are not run again. VM이 이미지로 다시 설치 경우 프로세스는 OS 드라이브를 원본 이미지로 교체 하는 것과 비슷합니다.If a VM is reimaged, the process is similar replacing the OS drive with the source image. 확장 등의 최신 모델의 모든 특수화는 다시 실행 됩니다.Any specialization from the latest model, such as extensions, are run again.

가상 머신 확장 집합을 Active Directory 도메인에 가입하려면 어떻게 하나요?How do I join a virtual machine scale set to an Active Directory domain?

가상 머신 확장 집합을 AD(Active Directory) 도메인에 가입하려면 확장을 정의할 수 있습니다.To join a virtual machine scale set to an Active Directory (AD) domain, you can define an extension.

확장을 정의하려면 JsonADDomainExtension 속성을 사용합니다.To define an extension, use the JsonADDomainExtension property:

"extensionProfile": {
    "extensions": [
        {
            "name": "joindomain",
            "properties": {
                "publisher": "Microsoft.Compute",
                "type": "JsonADDomainExtension",
                "typeHandlerVersion": "1.3",
                "settings": {
                    "Name": "[parameters('domainName')]",
                    "OUPath": "[variables('ouPath')]",
                    "User": "[variables('domainAndUsername')]",
                    "Restart": "true",
                    "Options": "[variables('domainJoinOptions')]"
                },
                "protectedsettings": {
                    "Password": "[parameters('domainJoinPassword')]"
                }
            }
        }
    ]
}

내 가상 머신 확장 집합은 설치를 시도하며 이로 인해 재부팅이 필요합니다.My virtual machine scale set extension is trying to install something that requires a reboot.

가상 머신 확장 집합 확장이 설치를 시도하며 이로 인해 재부팅이 필요한 경우 Azure Automation DSC(필요한 상태 구성) 확장을 사용할 수 있습니다.If your virtual machine scale set extension is trying to install something that requires a reboot, you can use the Azure Automation Desired State Configuration (Automation DSC) extension. 운영 체제가 Windows Server 2012 R2인 경우 Azure는 WMF(Windows Management Framework) 5.0 설치를 시작하고, 재부팅한 후 구성을 계속 진행합니다.If the operating system is Windows Server 2012 R2, Azure pulls in the Windows Management Framework (WMF) 5.0 setup, reboots, and then continues with the configuration.

가상 머신 확장 집합에 대해 맬웨어 방지를 설정하려면 어떻게 해야 하나요?How do I turn on antimalware in my virtual machine scale set?

가상 머신 확장 집합에 대해 맬웨어 방지를 설정하려면 다음 PowerShell 예제를 사용합니다.To turn on antimalware on your virtual machine scale set, use the following PowerShell example:

$rgname = 'autolap'
$vmssname = 'autolapbr'
$location = 'eastus'

# Retrieve the most recent version number of the extension.
$allVersions= (Get-AzVMExtensionImage -Location $location -PublisherName "Microsoft.Azure.Security" -Type "IaaSAntimalware").Version
$versionString = $allVersions[($allVersions.count)-1].Split(".")[0] + "." + $allVersions[($allVersions.count)-1].Split(".")[1]

$VMSS = Get-AzVmss -ResourceGroupName $rgname -VMScaleSetName $vmssname
echo $VMSS
Add-AzVmssExtension -VirtualMachineScaleSet $VMSS -Name "IaaSAntimalware" -Publisher "Microsoft.Azure.Security" -Type "IaaSAntimalware" -TypeHandlerVersion $versionString
Update-AzVmss -ResourceGroupName $rgname -Name $vmssname -VirtualMachineScaleSet $VMSS

개인 저장소 계정에서 호스트 되는 사용자 지정 스크립트를 실행할 어떻게 할까요? 있나요?How do I execute a custom script that's hosted in a private storage account?

프라이빗 스토리지 계정에 호스트되는 사용자 지정 스크립트를 실행하려면 스토리지 계정 키 및 이름을 사용하여 보호 설정을 지정합니다.To execute a custom script that's hosted in a private storage account, set up protected settings with the storage account key and name. 자세한 내용은 사용자 지정 스크립트 확장을 참조 하세요.For more information, see Custom Script Extension.

암호Passwords

가상 머신 확장 집합에서 VM에 대한 암호를 다시 설정하려면 어떻게 하나요?How do I reset the password for VMs in my virtual machine scale set?

확장 집합에서 VM의 암호를 변경하는 두 가지 기본 방법이 있습니다.There are two main ways to change the password for VMs in scale sets.

  • 가상 머신 확장 집합 모델을 직접 변경합니다.Change the virtual machine scale set model directly. API 2017-12-01 이상에서 사용할 수 있습니다.Available with API 2017-12-01 and later.

    확장 집합 모델에서(예: Azure Resource Explorer, PowerShell 또는 CLI 사용) 직접 관리 자격 증명을 업데이트합니다.Update the admin credentials directly in the scale set model (for example using the Azure Resource Explorer, PowerShell or CLI). 확장 집합이 업데이트되면 모든 새 VM에 새 자격 증명이 포함됩니다.Once the scale set is updated, all new VMs have the new credentials. 기존 VM은 이미지로 다시 설치되는 경우에만 새 자격 증명이 포함됩니다.Existing VMs only have the new credentials if they are reimaged.

  • VM 액세스 확장을 사용하여 암호를 다시 설정합니다.Reset the password using the VM access extensions. 여기에 설명 된 대로 암호 요구 사항을 준수 해야 합니다.Make sure to follow the password requirements as described here.

    다음 PowerShell 예제를 사용합니다.Use the following PowerShell example:

    $vmssName = "myvmss"
    $vmssResourceGroup = "myvmssrg"
    $publicConfig = @{"UserName" = "newuser"}
    $privateConfig = @{"Password" = "********"}
    
    $extName = "VMAccessAgent"
    $publisher = "Microsoft.Compute"
    $vmss = Get-AzVmss -ResourceGroupName $vmssResourceGroup -VMScaleSetName $vmssName
    $vmss = Add-AzVmssExtension -VirtualMachineScaleSet $vmss -Name $extName -Publisher $publisher -Setting $publicConfig -ProtectedSetting $privateConfig -Type $extName -TypeHandlerVersion "2.0" -AutoUpgradeMinorVersion $true
    Update-AzVmss -ResourceGroupName $vmssResourceGroup -Name $vmssName -VirtualMachineScaleSet $vmss
    

네트워킹Networking

집합의 모든 VM NIC에 적용되도록 확장 집합에 NSG(네트워크 보안 그룹)를 할당할 수 있나요?Is it possible to assign a Network Security Group (NSG) to a scale set, so that it applies to all the VM NICs in the set?

예.Yes. 네트워크 프로필의 networkInterfaceConfigurations 섹션에서 참조하여 네트워크 보안 그룹을 확장 집합에 직접 적용할 수 있습니다.A Network Security Group can be applied directly to a scale set by referencing it in the networkInterfaceConfigurations section of the network profile. 예제:Example:

"networkProfile": {
    "networkInterfaceConfigurations": [
        {
            "name": "nic1",
            "properties": {
                "primary": "true",
                "ipConfigurations": [
                    {
                        "name": "ip1",
                        "properties": {
                            "subnet": {
                                "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('vnetName'), '/subnets/subnet1')]"
                            },
                            "loadBalancerInboundNatPools": [
                                {
                                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/inboundNatPools/natPool1')]"
                                }
                            ],
                            "loadBalancerBackendAddressPools": [
                                {
                                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('lbName'), '/backendAddressPools/addressPool1')]"
                                }
                            ]
                        }
                    }
                ],
                "networkSecurityGroup": {
                    "id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/networkSecurityGroups/', variables('nsgName'))]"
                }
            }
        }
    ]
}

동일한 구독 및 동일한 지역에서 가상 머신 확장 집합에 대해 VIP 교환을 수행하려면 어떻게 합니까?How do I do a VIP swap for virtual machine scale sets in the same subscription and same region?

Azure Load Balancer 프런트 엔드가 포함된 두 개의 가상 머신 확장 집합이 있고 해당 항목이 동일한 구독 및 지역에 있는 경우 각 항목의 공용 IP 주소 할당을 취소하고 다른 항목에 할당할 수 있습니다.If you have two virtual machine scale sets with Azure Load Balancer front-ends, and they are in the same subscription and region, you could deallocate the public IP addresses from each one, and assign to the other. 예제는 VIP 교체: Azure Resource Manager에서 청록색 배포를 참조하세요.See VIP Swap: Blue-green deployment in Azure Resource Manager for example. 리소스가 네트워크 수준에서 할당 취소/할당되지만 지연되지는 않습니다.This does imply a delay though as the resources are deallocated/allocated at the network level. 더 빠른 옵션은 두 개의 백 엔드 풀 및 회람 규칙과 함께 Azure Application Gateway를 사용하는 것입니다.A faster option is to use Azure Application Gateway with two backend pools, and a routing rule. 또는 스테이징 및 프로덕션 슬롯 간의 빠른 전환을 지원하는 Azure App service를 사용하여 애플리케이션을 호스트할 수도 있습니다.Alternatively, you could host your application with Azure App service which provides support for fast switching between staging and production slots.

정적 개인 IP 주소를 할당하는 데 사용할 개인 IP 주소의 범위를 지정하려면 어떻게 하나요?How do I specify a range of private IP addresses to use for static private IP address allocation?

IP 주소는 사용자가 지정한 서브넷에서 선택됩니다.IP addresses are selected from a subnet that you specify.

가상 머신 확장 집합 설정 IP 주소를 할당하는 방법은 항상 "동적"이지만 이러한 IP 주소를 변경할 수 있다는 뜻은 아닙니다.The allocation method of virtual machine scale set IP addresses is always “dynamic,” but that doesn't mean that these IP addresses can change. 이 경우 "동적"은 PUT 요청에서 IP 주소를 지정하지 않는다는 것을 의미할 뿐입니다.In this case, "dynamic" only means that you do not specify the IP address in a PUT request. 서브넷을 사용하여 정적 집합을 지정합니다.Specify the static set by using the subnet.

기존 Azure Virtual Network에 가상 머신 확장 집합을 배포하려면 어떻게 하나요?How do I deploy a virtual machine scale set to an existing Azure virtual network?

기존 Azure Virtual Network에 가상 머신 확장 집합을 배포하려면 기존 가상 네트워크에 가상 머신 확장 집합 배포를 참조하세요.To deploy a virtual machine scale set to an existing Azure virtual network, see Deploy a virtual machine scale set to an existing virtual network.

가속 네트워킹을 포함한 확장 집합을 사용할 수 있나요?Can I use scale sets with Accelerated Networking?

예.Yes. 가속된 네트워킹을 사용하려면 확장 집합의 networkInterfaceConfigurations 설정에서 enableAcceleratedNetworking을 true로 설정합니다.To use accelerated networking, set enableAcceleratedNetworking to true in your scale set's networkInterfaceConfigurations settings. 예를 들면 다음과 같습니다.For example

"networkProfile": {
    "networkInterfaceConfigurations": [
        {
            "name": "niconfig1",
            "properties": {
                "primary": true,
                "enableAcceleratedNetworking" : true,
                "ipConfigurations": [
                ]
            }
        }
    ]
}

확장 집합에서 사용하는 DNS 서버를 구성하려면 어떻게 해야 하나요?How can I configure the DNS servers used by a scale set?

사용자 지정 DNS 구성을 포함한 가상 머신 확장 집합을 만들려면 dnsSettings JSON 패킷을 확장 집합 networkInterfaceConfigurations 섹션에 추가합니다.To create a virtual machine scale set with a custom DNS configuration, add a dnsSettings JSON packet to the scale set networkInterfaceConfigurations section. 예제:Example:

    "dnsSettings":{
        "dnsServers":["10.0.0.6", "10.0.0.5"]
    }

각 VM에 공용 IP 주소를 할당하도록 확장 집합을 구성하려면 어떻게 해야 하나요?How can I configure a scale set to assign a public IP address to each VM?

각 VM에 공용 IP 주소를 할당 하는 가상 머신 확장 집합을 만들려면 virtualMachineScaleSets/리소스의 API 버전이 2017-03-30 인지 확인 하 고 고 publicipaddressconfiguration JSON 패킷을 확장 집합 ipConfigurations 섹션에 추가 합니다.To create a virtual machine scale set that assigns a public IP address to each VM, make sure the API version of the Microsoft.Compute/virtualMachineScaleSets resource is 2017-03-30, and add a publicipaddressconfiguration JSON packet to the scale set ipConfigurations section. 예제:Example:

    "publicipaddressconfiguration": {
        "name": "pub1",
        "properties": {
        "idleTimeoutInMinutes": 15
        }
    }

여러 Application Gateway를 사용하도록 확장 세트을 구성할 수 있나요?Can I configure a scale set to work with multiple Application Gateways?

예.Yes. 여러 Application Gateway 백 엔드 주소 풀에 대 한 리소스 Id를 확장 집합 네트워크 프로필의 ipConfigurations 섹션에 있는 applicationGatewayBackendAddressPools 목록에 추가할 수 있습니다.You can add the resource IDs for multiple Application Gateway backend address pools to the applicationGatewayBackendAddressPools list in the ipConfigurations section of your scale set network profile.

확장Scale

어떤 경우에 VM이 2개 미만인 가상 머신 확장 집합을 만들어야 하나요?In what case would I create a virtual machine scale set with fewer than two VMs?

VM이 2개 미만인 가상 머신 확장 집합을 만드는 한 가지 이유는 가상 머신 확장 집합의 탄력적 속성을 사용해야 하는 경우입니다.One reason to create a virtual machine scale set with fewer than two VMs would be to use the elastic properties of a virtual machine scale set. 예를 들어 VM 실행 비용을 지불하지 않고 인프라를 정의하기 위해 VM이 없는 가상 머신 확장 집합을 배포할 수 있습니다.For example, you could deploy a virtual machine scale set with zero VMs to define your infrastructure without paying VM running costs. 그런 다음 VM을 배포할 준비가 되면 가상 머신 확장 집합의 "용량"을 프로덕션 인스턴스 수로 늘립니다.Then, when you are ready to deploy VMs, increase the “capacity” of the virtual machine scale set to the production instance count.

VM이 2개 미만인 가상 머신 확장 집합을 만드는 또 다른 경우는 개별 VM이 있는 가용성 집합을 사용하는 것보다 가용성에 별 관심이 없을 때입니다.Another reason you might create a virtual machine scale set with fewer than two VMs is if you're concerned less with availability than in using an availability set with discrete VMs. 가상 머신 확장 집합은 대체할 수 있는 미분화된 컴퓨팅 단위로 작업하는 방법을 제공합니다.Virtual machine scale sets give you a way to work with undifferentiated compute units that are fungible. 이 일관성은 가상 머신 확장 집합과 가용성 집합의 주요 차별 요인이기도 합니다.This uniformity is a key differentiator for virtual machine scale sets versus availability sets. 다양한 상태 비저장 워크로드는 개별 단위를 추적하지 않습니다.Many stateless workloads do not track individual units. 워크로드가 감소하면 하나의 컴퓨팅 단위로 축소하고, 워크로드가 증가하면 여러 단위로 확장합니다.If the workload drops, you can scale down to one compute unit, and then scale up to many when the workload increases.

가상 머신 확장 집합의 VM 수를 변경하려면 어떻게 해야 하나요?How do I change the number of VMs in a virtual machine scale set?

Azure Portal의 가상 머신 확장 집합에서 VM 수를 변경하려면 가상 머신 확장 집합 속성 섹션에서 “크기 조정” 블레이드를 설정하고 슬라이더 막대를 사용합니다.To change the number of VMs in a virtual machine scale set in the Azure portal, from the virtual machine scale set properties section, click on the "Scaling" blade and use the slider bar.

특정 임계값에 도달하는 경우 사용자 지정 경고를 정의하려면 어떻게 해야 하나요?How do I define custom alerts for when certain thresholds are reached?

지정된 임계값에 대한 경고를 처리하는 방법은 다소 유연한 편입니다.You have some flexibility in how you handle alerts for specified thresholds. 예를 들어 사용자 지정 웹후크를 정의할 수 있습니다.For example, you can define customized webhooks. 다음 웹후크 예제는 Resource Manager 템플릿에서 가져옵니다.The following webhook example is from a Resource Manager template:

{
    "type": "Microsoft.Insights/autoscaleSettings",
    "apiVersion": "[variables('insightsApi')]",
    "name": "autoscale",
    "location": "[parameters('resourceLocation')]",
    "dependsOn": [
        "[concat('Microsoft.Compute/virtualMachineScaleSets/', parameters('vmSSName'))]"
    ],
    "properties": {
        "name": "autoscale",
        "targetResourceUri": "[concat('/subscriptions/',subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Compute/virtualMachineScaleSets/', parameters('vmSSName'))]",
        "enabled": true,
        "notifications": [
            {
                "operation": "Scale",
                "email": {
                    "sendToSubscriptionAdministrator": true,
                    "sendToSubscriptionCoAdministrators": true,
                    "customEmails": [
                        "youremail@address.com"
                    ]
                },
                "webhooks": [
                    {
                        "serviceUri": "<service uri>",
                        "properties": {
                            "key1": "custommetric",
                            "key2": "scalevmss"
                        }
                    }
                ]
            }
        ]
    }
}

패치 및 작업Patching and operations

기존 리소스 그룹에서 확장 집합을 만들 수 있나요?Can I create a scale set in an existing resource group?

예, 기존 리소스 그룹에서 확장 집합을 만들 수 있습니다.Yes, you can create a scale set in an existing resource group.

확장 집합을 다른 리소스 그룹으로 이동할 수 있나요?Can I move a scale set to another resource group?

예. 확장 집합 리소스를 새 구독 또는 리소스 그룹에 이동할 수 있습니다.Yes, you can move scale set resources to a new subscription or resource group.

내 가상 머신 크기 집합을 새 이미지로 업데이트하는 방법은 무엇인가요?How to I update my virtual machine scale set to a new image? 패치는 어떻게 관리해야 하나요?How do I manage patching?

가상 머신 확장 집합을 새 이미지로 업데이트하고 패치를 관리하려면 가상 머신 확장 집합 업그레이드를 참조하세요.To update your virtual machine scale set to a new image, and to manage patching, see Upgrade a virtual machine scale set.

이미지로 다시 설치 작업을 사용하여 이미지를 변경하지 않고 VM을 다시 설정할 수 있나요?Can I use the reimage operation to reset a VM without changing the image? (즉 VM을 새 이미지가 아닌 출하 시 설정으로 다시 설정하려고 합니다.)(That is, I want reset a VM to factory settings rather than to a new image.)

예. 이미지로 다시 설치 작업을 사용하여 이미지를 변경하지 않고 VM을 다시 설정할 수 있습니다.Yes, you can use the reimage operation to reset a VM without changing the image. 그러나 가상 머신 확장 집합이 version = latest인 플랫폼 이미지를 참조하면 reimage를 호출할 때 VM에서 최신 OS 이미지로 업데이트할 수 있습니다.However, if your virtual machine scale set references a platform image with version = latest, your VM can update to a later OS image when you call reimage.

크기 집합을 Azure Monitor 로그와 통합할 수 있나요?Is it possible to integrate scale sets with Azure Monitor logs?

예, 확장 집합 Vm에 Azure Monitor 확장을 설치 하 여 수행할 수 있습니다.Yes, you can by installing the Azure Monitor extension on the scale set VMs. Azure CLI 예는 다음과 같습니다.Here is an Azure CLI example:

az vmss extension set --name MicrosoftMonitoringAgent --publisher Microsoft.EnterpriseCloud.Monitoring --resource-group Team-03 --vmss-name nt01 --settings "{'workspaceId': '<your workspace ID here>'}" --protected-settings "{'workspaceKey': '<your workspace key here'}"

Azure Portal의 Log Analytics 작업 영역에서 workspaceId 및 workspaceKey를 찾을 수 있습니다.You can find the required workspaceId and workspaceKey in the Log Analytics workspace of Azure portal. 개요 페이지에서 설정 타일을 클릭합니다.On the Overview page, click the Settings tile. 위쪽에서 연결된 원본 탭을 클릭합니다.Click the Connected Sources tab at the top.

참고

확장 집합 Upgradepolicy 를 수동으로 설정한 경우에는 업그레이드를 호출 하 여 집합의 모든 vm에 확장을 적용 해야 합니다.If your scale set upgradePolicy is set to Manual, you need to apply the extension to the all VMs in the set by calling upgrade on them. CLI에서이는 az vmss update-instances 입니다.In CLI this would be az vmss update-instances.

참고

이 문서는 Log Analytics 대신 Azure Monitor 로그라는 용어를 사용하도록 최근에 업데이트되었습니다.This article was recently updated to use the term Azure Monitor logs instead of Log Analytics. 로그 데이터는 여전히 Log Analytics 작업 영역에 저장되며 동일한 Log Analytics 서비스에 의해 계속 수집 및 분석됩니다.Log data is still stored in a Log Analytics workspace and is still collected and analyzed by the same Log Analytics service. Azure Monitor에서 로그의 역할을 보다 잘 반영하기 위해 용어를 업데이트하고 있습니다.We are updating the terminology to better reflect the role of logs in Azure Monitor. 자세한 내용은 Azure Monitor 용어 변경을 참조하세요.See Azure Monitor terminology changes for details.

문제 해결Troubleshooting

부팅 진단을 켜려면 어떻게 하나요?How do I turn on boot diagnostics?

부팅 진단을 켜려면 먼저 스토리지 계정을 만듭니다.To turn on boot diagnostics, first, create a storage account. 그런 후 이 JSON 블록을 가상 머신 확장 집합 virtualMachineProfile 에 배치하고 해당 가상 머신 확장 집합을 업데이트합니다.Then, put this JSON block in your virtual machine scale set virtualMachineProfile, and update the virtual machine scale set:

"diagnosticsProfile": {
    "bootDiagnostics": {
        "enabled": true,
        "storageUri": "http://yourstorageaccount.blob.core.windows.net"
    }
}

새 VM이 만들어지면 VM의 InstanceView 속성에 스크린샷 등에 대한 세부 정보가 표시됩니다.When a new VM is created, the InstanceView property of the VM shows the details for the screenshot, and so on. 예를 들면 다음과 같습니다.Here's an example:

"bootDiagnostics": {
    "consoleScreenshotBlobUri": "https://o0sz3nhtbmkg6geswarm5.blob.core.windows.net/bootdiagnostics-swarmagen-4157d838-8335-4f78-bf0e-b616a99bc8bd/swarm-agent-9574AE92vmss-0_2.4157d838-8335-4f78-bf0e-b616a99bc8bd.screenshot.bmp",
    "serialConsoleLogBlobUri": "https://o0sz3nhtbmkg6geswarm5.blob.core.windows.net/bootdiagnostics-swarmagen-4157d838-8335-4f78-bf0e-b616a99bc8bd/swarm-agent-9574AE92vmss-0_2.4157d838-8335-4f78-bf0e-b616a99bc8bd.serialconsole.log"
}

가상 머신 속성Virtual machine properties

여러 번 호출하지 않고도 각 VM에 대한 속성 정보를 얻으려면 어떻게 합니까?How do I get property information for each VM without making multiple calls? 예를 들어 가상 머신 확장 집합에서 100개의 VM 각각에 대해 장애 도메인을 얻으려면 어떻게 해야 할까요?For example, how would I get the fault domain for each of the 100 VMs in my virtual machine scale set?

여러 번 호출하지 않고 각 VM에 대한 속성 정보를 가져오려면 다음 리소스 URI에 대해 REST API GET을 수행하여 ListVMInstanceViews를 호출할 수 있습니다.To get property information for each VM without making multiple calls, you can call ListVMInstanceViews by doing a REST API GET on the following resource URI:

/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.Compute/virtualMachineScaleSets/<scaleset_name>/virtualMachines?$expand=instanceView&$select=instanceView/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.Compute/virtualMachineScaleSets/<scaleset_name>/virtualMachines?$expand=instanceView&$select=instanceView

가상 머신 확장 집합의 다른 VM에 다른 확장 인수를 전달할 수 있나요?Can I pass different extension arguments to different VMs in a virtual machine scale set?

아니요. 가상 머신 확장 집합의 다른 VM에 다른 확장 인수를 전달할 수 없습니다.No, you cannot pass different extension arguments to different VMs in a virtual machine scale set. 그렇지만 확장은 컴퓨터 이름과 같이 실행 중인 VM의 고유한 속성에 따라 작동할 수 있습니다.However, extensions can act based on the unique properties of the VM they are running on, such as on the machine name. 또한 확장은 http://169.254.169.254에 있는 인스턴스 메타데이터를 쿼리하여 VM에 대한 자세한 정보를 가져올 수 있습니다.Extensions also can query instance metadata on http://169.254.169.254 to get more information about the VM.

가상 머신 확장 집합 VM 컴퓨터 이름과 VM ID 간에 차이가 발생하는 이유는 무엇인가요?Why are there gaps between my virtual machine scale set VM machine names and VM IDs? 예를 들어 0, 1, 3...입니다.For example: 0, 1, 3...

가상 머신 확장 집합 overprovision 속성은 기본값인 true 로 설정되어 있으므로 가상 머신 확장 집합 VM 컴퓨터 이름 간에는 차이가 있습니다.There are gaps between your virtual machine scale set VM machine names and VM IDs because your virtual machine scale set overprovision property is set to the default value of true. 과도 프로비저닝이 true 로 설정되면 요청된 것보다 더 많은 VM이 생성됩니다.If overprovisioning is set to true, more VMs than requested are created. 그런 후에 추가 VM은 삭제됩니다.Extra VMs are then deleted. 이 경우 배포 안정성은 향상되지만 연속된 이름 지정 및 연속된 NAT(Network Address Translation) 규칙은 준수되지 못합니다.In this case, you gain increased deployment reliability, but at the expense of contiguous naming and contiguous Network Address Translation (NAT) rules.

이 속성을 false 로 설정할 수 있습니다.You can set this property to false. 소규모 가상 머신 확장 집합의 경우 이렇게 해도 배포 안정성에 큰 영향을 주지는 않습니다.For small virtual machine scale sets, this doesn't significantly affect deployment reliability.

가상 머신 확장 집합에서 VM을 삭제하는 것과 VM을 할당 취소하는 것 사이의 차이점은 무엇입니까?What is the difference between deleting a VM in a virtual machine scale set and deallocating the VM? 언제 다른 하나를 선택해야 합니까?When should I choose one over the other?

가상 머신 확장 집합에서 VM을 삭제하는 것과 VM을 할당 취소하는 것 사이의 주요 차이점은 deallocate로는 VHD(가상 하드 디스크)가 삭제되지 않는다는 것입니다.The main difference between deleting a VM in a virtual machine scale set and deallocating the VM is that deallocate doesn’t delete the virtual hard disks (VHDs). stop deallocate 실행과 관련된 스토리지 비용이 있습니다.There are storage costs associated with running stop deallocate. 다음과 같은 이유 중 하나로 두 가지 방법 중 하나를 사용할 수 있습니다.You might use one or the other for one of the following reasons:

  • Compute 비용은 더 이상 지불하지 않고, VM의 디스크 상태는 유지하려고 합니다.You want to stop paying compute costs, but you want to keep the disk state of the VMs.
  • 가상 머신 확장 집합을 확장하는 것보다 더 빠르게 VM 집합을 시작하려고 합니다.You want to start a set of VMs more quickly than you could scale out a virtual machine scale set.
    • 이 시나리오와 관련하여 사용자 고유의 자동 크기 조정 엔진을 만들고 더 빠른 엔드투엔드 확장을 원했을 수 있습니다.Related to this scenario, you might have created your own autoscale engine and want a faster end-to-end scale.
  • 장애 도메인이나 업데이트 도메인 간에 고르게 분산되지 않은 가상 머신 확장 집합이 있습니다.You have a virtual machine scale set that is unevenly distributed across fault domains or update domains. 이러한 상황은 과도한 프로비저닝 후에 선택적으로 VM을 삭제했거나 VM이 삭제되었기 때문에 발생할 수 있습니다.This might be because you selectively deleted VMs, or because VMs were deleted after overprovisioning. 가상 머신 확장 집합에 대해 stop deallocate를 실행한 후 start를 실행하면 장애 도메인 또는 업데이트 도메인 간에 VM이 균일하게 분산됩니다.Running stop deallocate followed by start on the virtual machine scale set evenly distributes the VMs across fault domains or update domains.

가상 머신 확장 집합 인스턴스의 스냅숏을 만들 어떻게 할까요? 있나요?How do I take a snapshot of a virtual machine scale set instance?

가상 머신 확장 집합의 인스턴스에서 스냅숏을 만듭니다.Create a snapshot from an instance of a virtual machine scale set.

$rgname = "myResourceGroup"
$vmssname = "myVMScaleSet"
$Id = 0
$location = "East US"

$vmss1 = Get-AzVmssVM -ResourceGroupName $rgname -VMScaleSetName $vmssname -InstanceId $Id     
$snapshotconfig = New-AzSnapshotConfig -Location $location -AccountType Standard_LRS -OsType Windows -CreateOption Copy -SourceUri $vmss1.StorageProfile.OsDisk.ManagedDisk.id
New-AzSnapshot -ResourceGroupName $rgname -SnapshotName 'mySnapshot' -Snapshot $snapshotconfig

스냅샷에서 새 관리 디스크를 만듭니다.Create a managed disk from the snapshot.

$snapshotName = "mySnapshot"
$snapshot = Get-AzSnapshot -ResourceGroupName $rgname -SnapshotName $snapshotName  
$diskConfig = New-AzDiskConfig -AccountType Premium_LRS -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id
$osDisk = New-AzDisk -Disk $diskConfig -ResourceGroupName $rgname -DiskName ($snapshotName + '_Disk')