빠른 라우팅 환경에서 VMSS 생성

PaaS(WebApps)의 자동 배율은 매우 가볍고 편리하지만, IaaS(VirtualMachine)로 같은 일을 하려면 어떻게 될까요?이렇게 생각해서 구축했어.
얻기 어려운 기회이기 때문에 IaaS의 환경에서 이루어진다.
ExpressRoute의 vNet에서 Azure VirtualMachine ScaleSets를 구축합니다.
중요한 것은 공공 부하 평형기를 사용하는 것이 아니라 내부 부하 평형기를 사용하는 것이다.
포털에서 내부 VMSS를 만들 수 없으므로 AzureCLI(CloudShell)로 설정합니다.
VMSS 개요는 공식 페이지를 참조하십시오.
Azure Virtual Machine Scale Sets

Cloud Shell 시작


닫힌 셸을 선택합니다.단계는 공식 페이지를 참조합니다.
Cloud Shell 빠른 시작

VM 생성


VMSS는 원래 OS 이미지가 필요하므로 먼저 VM을 만듭니다.
  • 변수 정의
  • export RESOURCE_GROUP=[任意のリソースグループ名]
    export NSG_NAME=${RESOURCE_GROUP}-NSG
    export NIC_NAME=${RESOURCE_GROUP}-NIC
    export VM_NAME=${RESOURCE_GROUP}-VM
    export USER_NAME=[任意のユーザ名]
    export USER_PASS=[任意パスワード]
    
  • 리소스 그룹 생성
  • az group create --name $RESOURCE_GROUP --location japaneast
    
  • NSG(Network Security Group) 생성
  • az network nsg create --resource-group $RESOURCE_GROUP --name $NSG_NAME
    
  • NSG에 RDP 라이센스 설정 추가
  • az network nsg rule create \
        --resource-group $RESOURCE_GROUP \
        --nsg-name $NSG_NAME \
        --name Allow-RDP-ALL \
        --protocol tcp \
        --priority 1000 \
        --destination-port-range 3389 \
        --access allow
    
  • NSG에 http 라이센스 설정 추가
  • az network nsg rule create \
        --resource-group $RESOURCE_GROUP \
        --nsg-name $NSG_NAME \
        --name Allow-HTTP-ALL \
        --protocol tcp \
        --priority 1001 \
        --destination-port-range 80 \
        --access allow
    
  • 서브넷 ID 가져오기(다른 리소스 그룹의 서브넷을 지정할 때 서브넷 이름 대신 ID를 지정해야 하기 때문)
  • export SUBNET_ID=`az network vnet subnet show --name [ExRouteのSubnet名] --resource-group [ExRouteのリソースグループ名] --vnet-name [ExRouteのvNet名] --query id -o tsv`
    
  • 가상 네트워크 카드 만들기
  • az network nic create \
        --resource-group $RESOURCE_GROUP \
        --name $NIC_NAME \
        --subnet $SUBNET_ID \
        --network-security-group $NSG_NAME
    
  • VM 생성
  • az vm create --resource-group $RESOURCE_GROUP \
        --name $VM_NAME \
        --image win2016datacenter \
        --location japaneast \
        --nics $NIC_NAME \
        --size Standard_DS1 \
        --admin-username $USER_NAME \
        --admin-password $USER_PASS
    
  • 제작이 완료되면 명령 실행 결과에서 PrivateIpAddress를 출력하기 때문에 RDP로 연결합니다.
    빠른 라우팅 연결을 가정하기 때문에 공용 IP
  • 가 부여되지 않음
  • 연결 후 PowerShell 시작
  • PowerShell 프롬프트에 IIS
  • 설치
    Install-WindowsFeature -name Web-Server –IncludeManagementTools
    Write-Output -InputObject “Azure!!! <br> VMSS!!!" > C:\inetpub\wwwroot\index.html
    
  • 본 PC의 브라우저에서 PrivateIpAddress에 액세스하여 웹 페이지를 표시하면 됩니다
  • sysprep 실행


    이미지를 만들기 전에 Windows Server를 일반화합니다.
    만든 Windows Server에서 sysprep을 실행합니다.자신의 컴퓨터에서 실행하지 않도록 주의하세요!
  • 방금 생성한 VM에 RDP로 로그인
  • 파일 이름을 지정하고 실행 화면에서'sysprep'을 실행합니다
  • Explorer가 열리므로 "Sysprep"을 실행합니다.
  • 만든 Windows Server에서 sysprep을 실행합니다.자신의 컴퓨터에서 실행하지 않도록 주의하세요!
  • Generalize를 선택하고 닫기 옵션을 닫기로 변경한 다음 확인 을 클릭합니다.
  • 이따가 RDP가 차단될 테니 대기
  • 사용자 정의 이미지 만들기


    일반 가상 시스템에서 이미지 생성
  • Cloud Shell로 돌아가 VM이 정상적으로 중지되었는지 확인
  • az vm get-instance-view -g $RESOURCE_GROUP -n $VM_NAME --query instanceView.statuses[1] -o table
    
  • PowerState/stopped를 표시하면 됩니다
  • VM의 Azure 리소스 할당 취소
  • az vm deallocate -g $RESOURCE_GROUP -n $VM_NAME
    
  • 일반 VM
    이 명령은 동기화되지 않습니다.Azure에서 볼 때, 이것은 일반화된 명령으로 표시된 것이다.
  • az vm generalize -g $RESOURCE_GROUP -n $VM_NAME
    
  • 이미지 만들기
  • az image create -g $RESOURCE_GROUP -n ${VM_NAME}-IMAGE --source $VM_NAME
    
  • 이미지화되어 원래 가상 머신 삭제
  • az vm delete -g $RESOURCE_GROUP -n $VM_NAME --no-wait –y
    
  • 운영 체제 디스크 삭제
  • export OSDISK=`az disk list -g $RESOURCE_GROUP --query [].name -o tsv`
    az disk delete -g $RESOURCE_GROUP -n $OSDISK --no-wait –y
    
  • 가상 네트워크 카드 삭제
  • az network nic delete -g $RESOURCE_GROUP -n $NIC_NAME
    
  • 포털 사이트 보기 리소스 그룹에는 사용자 지정 이미지 및 NSG만 있어야 합니다.
    NSG는 VMSS를 제작할 때 사용하기 때문에 남아 있습니다.
    필요하지 않은 자원을 신속하게 삭제하는 것이 중요하다.
  • VMSS 생성

  • 변수 정의
  • export RESOURCE_GROUP=[任意のリソースグループ名]
    export NSG_NAME=${RESOURCE_GROUP}-NSG
    export IMAGE_ID=`az image list --resource-group $RESOURCE_GROUP --query "[].id" -o tsv`
    export SUBNET_ID=`az network vnet subnet show --name [ExRouteのSubnet名] --resource-group [ExRouteのリソースグループ名] --vnet-name [ExRouteのvNet名] --query id -o tsv`
    export LB_NAME=${RESOURCE_GROUP}-LB
    export BACKEND_POOL=LoadBalancerBackEnd
    export FRONTEND_IP=LoadBalancerFrontEnd
    export PROBE=LoadBalancerWebProbe
    export RULE=weblb
    export VMSS_NAME=${RESOURCE_GROUP}-VMSS
    export USER_NAME=[任意のユーザ名]
    export USER_PASS=[任意のパスワード]
    
  • 내부 로드 밸런서 생성
  • az network lb create \
        -g $RESOURCE_GROUP \
        -n $LB_NAME \
        --subnet $SUBNET_ID \
        --backend-pool-name $BACKEND_POOL \
        --frontend-ip-name $FRONTEND_IP
    
  • 부하 평형기에 정상 탐지 생성
  • az network lb probe create \
        -g $RESOURCE_GROUP \
        --lb-name $LB_NAME \
        -n $PROBE \
        --port 80 \
        --protocol tcp \
        --interval 15 \
        --threshold 5
    
  • 부하 평형기에서 부하 균형 규칙 만들기
  • az network lb rule create \
        -g $RESOURCE_GROUP \
        --backend-port 80 \
        --frontend-port 80 \
        --lb-name $LB_NAME \
        -n $RULE \
        --protocol Tcp \
        --backend-pool-name $BACKEND_POOL \
        --floating-ip false \
        --frontend-ip-name $FRONTEND_IP \
        --probe-name $PROBE
    
  • VMSS 생성(여기는 하나의 인스턴스로 구성됨)
  • az vmss create \
        -g $RESOURCE_GROUP \
        -n $VMSS_NAME \
        --nsg $NSG_NAME \
        --load-balancer $LB_NAME \
        --subnet $SUBNET_ID \
        --image $IMAGE_ID \
        --authentication-type password \
        --admin-username $USER_NAME \
        --admin-password $USER_PASS \
        --backend-pool-name $BACKEND_POOL \
        --instance-count 1
    
  • 생성이 완료되면 로드 밸런스 프런트엔드 IP 주소 얻기
  • az network lb show -g $RESOURCE_GROUP -n $LB_NAME --query frontendIpConfigurations[].privateIpAddress -o tsv
    
  • 본 PC의 브라우저에서 프런트엔드 IP 주소에 액세스하여 웹 페이지를 표시할 수 있음
  • 어렵기 때문에 수동으로 규모를 줄여보자
  • az vmss scale -g $RESOURCE_GROUP -n $VMSS_NAME --new-capacity 2
    

    총결산


    WebApps가 얼마나 쉽고 편리한지 잘 알고 있습니다.
    (VMSS의 파란색과 녹색 배치가 더 힘든 것 같다...)
    그럼에도 불구하고 폐역망에서 가상 머신이 필요하고 자동 축소가 필요한 경우도 있다고 생각합니다.
    이 경우 VMSS를 선택 항목에 넣으면 어떨까요?

    추기: 2018/02/07


    VMSS의 인스턴스 유형 또는 디스크 유형 지정 및 시작


    VMSS 비용을 계산할 때 디스크 크기가 어떻게 되는지 생각해 봤습니다.
    기본값은 디스크 관리 표준_LRS를 설정한 것 같습니다.
    따라서 초기 이미지에서 Windows를 시작하는 경우 S10(128GB)의 사용량만 비용으로 발생합니다.
    인스턴스 유형은 표준_D1_v2는 기본값입니다.
    그러면 인스턴스 유형과 디스크 유형을 지정하여 VMSS를 생성하십시오.
    아래와 같이 vm-sku, --storage-sku 옵션을 부여합니다.
    az vmss create \
        -g $RESOURCE_GROUP \
        -n $VMSS_NAME \
        --nsg $NSG_NAME \
        --load-balancer $LB_NAME \
        --subnet $SUBNET_ID \
        --image $IMAGE_ID \
        --authentication-type password \
        --admin-username $USER_NAME \
        --admin-password $USER_PASS \
        --backend-pool-name $BACKEND_POOL \
        --instance-count 1 \
        --vm-sku Standard_DS1_v2 \
        --storage-sku Premium_LRS
    

    좋은 웹페이지 즐겨찾기