■ 가상 머신의 부하 분산을 통해 고가용성 애플리케이션을 만드는 방법을 보여준다.
▶ 실행 명령
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
################################################## # 리소스 그룹을 만든다. ################################################## New-AzResourceGroup -ResourceGroupName TestResourceGroup -Location EastUS ################################################## # 공용 IP 주소를 만든다. ################################################## $publicIPAddress = New-AzPublicIpAddress ` -ResourceGroupName TestResourceGroup ` -Location EastUS ` -AllocationMethod Static ` -Name TestPublicIPAddress ################################################## # 프런트 엔드 IP 구성을 만든다. ################################################## $testFrontendIPConfig = New-AzLoadBalancerFrontendIpConfig -Name TestFrontendIPConfig -PublicIpAddress $publicIPAddress ################################################## # 백 엔드 주소 풀 구성을 만든다. ################################################## $testBackendAddressPoolConfig = New-AzLoadBalancerBackendAddressPoolConfig -Name TestBackendAddressPoolConfig ################################################## # 부하 분산 장치를 만든다. ################################################## $loadBalancer = New-AzLoadBalancer ` -ResourceGroupName TestResourceGroup ` -Name TestLoadBalancer ` -Location EastUS ` -FrontendIpConfiguration $testFrontendIPConfig ` -BackendAddressPool $testBackendAddressPoolConfig ################################################## # 상태 프로브를 만든다. ################################################## Add-AzLoadBalancerProbeConfig ` -Name TestHealthProbe ` -LoadBalancer $loadBalancer ` -Protocol tcp ` -Port 80 ` -IntervalInSeconds 15 ` -ProbeCount 2 Set-AzLoadBalancer -LoadBalancer $loadBalancer ################################################## # 부하 분산 장치 규칙을 만든다. ################################################## $probeConfig = Get-AzLoadBalancerProbeConfig -LoadBalancer $loadBalancer -Name TestHealthProbe Add-AzLoadBalancerRuleConfig ` -Name TestLoadBalancerRule ` -LoadBalancer $loadBalancer ` -FrontendIpConfiguration $loadBalancer.FrontendIpConfigurations[0] ` -BackendAddressPool $loadBalancer.BackendAddressPools[0] ` -Protocol Tcp ` -FrontendPort 80 ` -BackendPort 80 ` -Probe $probeConfig Set-AzLoadBalancer -LoadBalancer $loadBalancer ################################################## # 서브넷 구성을 생성한다. ################################################## $subnetConfig = New-AzVirtualNetworkSubnetConfig -Name TestSubnet -AddressPrefix 192.168.1.0/24 ################################################## # 가상 네트워크를 생성한다. ################################################## $vnet = New-AzVirtualNetwork ` -ResourceGroupName TestResourceGroup ` -Location EastUS ` -Name TestVNet ` -AddressPrefix 192.168.0.0/16 ` -Subnet $subnetConfig ################################################## # 네트워크 인터페이스를 생성한다. ################################################## for($i = 1; $i -le 3; $i++) { New-AzNetworkInterface ` -ResourceGroupName TestResourceGroup ` -Name TestVM$i ` -Location EastUS ` -Subnet $vnet.Subnets[0] ` -LoadBalancerBackendAddressPool $loadBalancer.BackendAddressPools[0] } ################################################## # 가용성 집합을 만든다. ################################################## $availabilitySet = New-AzAvailabilitySet ` -ResourceGroupName TestResourceGroup ` -Name TestAvailabilitySet ` -Location EastUS ` -Sku aligned ` -PlatformFaultDomainCount 2 ` -PlatformUpdateDomainCount 2 ################################################## # 가상 머신의 관리자 계정명과 암호를 설정한다. ################################################## $credential = Get-Credential ################################################## # 가상 머신을 만든다. ################################################## for($i = 1; $i -le 3; $i++) { New-AzVm ` -ResourceGroupName TestResourceGroup ` -Name TestVM$i ` -Location EastUS ` -VirtualNetworkName TestVNet ` -SubnetName TestSubnet ` -SecurityGroupName TestNetworkSecurityGroup ` -OpenPorts 80 ` -AvailabilitySetName TestAvailabilitySet ` -Credential $credential ` -AsJob } ################################################## # 가상 머신에 IIS를 설치한다. ################################################## for($i = 1; $i -le 3; $i++) { Set-AzVMExtension ` -ResourceGroupName TestResourceGroup ` -ExtensionName IIS ` -VMName TestVM$i ` -Publisher Microsoft.Compute ` -ExtensionType CustomScriptExtension ` -TypeHandlerVersion 1.8 ` -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' ` -Location EastUS } ################################################## # 공인 IP 주소를 구한다. ################################################## Get-AzPublicIPAddress -ResourceGroupName TestResourceGroup -Name TestPublicIPAddress | select IpAddress |