はじめに
Azure AZ-103の勉強で、MicrosoftLearnのネットワーク系コンテンツをやった時に使ったAzure CLIのチートシートです。
コマンドは、MicrosoftLearnのコンテンツごとにまとめています。コンテンツ毎の画像とコマンドだけを見て、「これはこんなことやってるんだなー」と思えれば、しっかりと理解できているかと思います。
また、ネットワーク以外のコマンド類(vm createなど)や類似コマンドは、適宜省略します。(別途まとめようと思います。)
2020年6月現在、AZ-104が発表されています。比較記事は以下です。
ネットワーク(1)
VPN Gateway を使用して、ご利用のオンプレミス ネットワークを Azure に接続する
仮想ネットワーク一覧
az network vnet list --output table
仮想ネットワーク、サブネット作成
az network vnet create \
--resource-group [sandbox resource group name] \
--name Azure-VNet-1 \
--address-prefix 10.0.0.0/16 \
--subnet-name Services \
--subnet-prefix 10.0.0.0/24
サブネット追加
az network vnet subnet create \
--resource-group [sandbox resource group name] \
--vnet-name Azure-VNet-1 \
--address-prefix 10.0.255.0/27 \
--name GatewaySubnet
ローカルゲートウェイ作成
az network local-gateway create \
--resource-group [sandbox resource group name] \
--gateway-ip-address 94.0.252.160 \
--name LNG-HQ-Network \
--local-address-prefixes 172.16.0.0/16
パブリックIPアドレス作成
az network public-ip create \
--resource-group [sandbox resource group name] \
--name PIP-VNG-Azure-VNet-1 \
--allocation-method Dynamic
仮想ネットワーク作成
az network vnet-gateway create \
--resource-group [sandbox resource group name] \
--name VNG-Azure-VNet-1 \
--public-ip-address PIP-VNG-Azure-VNet-1 \
--vnet Azure-VNet-1 \
--gateway-type Vpn \
--vpn-type RouteBased \
--sku VpnGw1 \
--no-wait
VPNコネクション作成
az network vpn-connection create \
--resource-group [sandbox resource group name] \
--name Azure-VNet-1-To-HQ-Network \
--vnet-gateway1 VNG-Azure-VNet-1 \
--shared-key [sharedkey] \
--local-gateway2 LNG-HQ-Network
ネットワーク(2)
ネットワーク セキュリティ グループとサービス エンドポイントを使うことで Azure リソースへのアクセスをセキュリティで保護し、分離する
NSG作成
az network nsg create \
--resource-group $rg \
--name ERP-SERVERS-NSG
NSGルール作成
az network nsg rule create \
--resource-group $rg \
--nsg-name ERP-SERVERS-NSG \
--name AllowSSHRule \
--direction Inbound \
--priority 100 \
--source-address-prefixes '*' \
--source-port-ranges '*' \
--destination-address-prefixes '*' \
--destination-port-ranges 22 \
--access Allow \
--protocol Tcp \
--description "Allow inbound SSH"
ASG作成
az network asg create \
--resource-group $rg \
--name ERP-DB-SERVERS-ASG
ASGにNICを登録
az network nic ip-config update \
--resource-group $rg \
--application-security-groups ERP-DB-SERVERS-ASG \
--name ipconfigDataServer \
--nic-name DataServerVMNic \
--vnet-name ERP-servers \
--subnet Databases
NSGルール更新
az network nsg rule update \
--resource-group $rg \
--nsg-name ERP-SERVERS-NSG \
--name httpRule \
--direction Inbound \
--priority 150 \
--source-address-prefixes "" \
--source-port-ranges '*' \
--source-asgs ERP-DB-SERVERS-ASG \
--destination-address-prefixes 10.0.0.4 \
--destination-port-ranges 80 \
--access Deny \
--protocol Tcp \
--description "Deny from DataServer to AppServer on port 80 using application security group"
ネットワーク(3)
Azure 仮想ネットワーク全体にサービスを分散させ、仮想ネットワーク ピアリングを使用して統合する
ピアリング作成
az network vnet peering create \
--name SalesVNet-To-MarketingVNet \
--remote-vnet MarketingVNet \
--resource-group [sandbox resource group name] \
--vnet-name SalesVNet \
--allow-vnet-access
ピアリングリスト
az network vnet peering list \
--resource-group [sandbox resource group name] \
--vnet-name SalesVNet \
--output table
ルーティング確認
az network nic show-effective-route-table \
--resource-group [sandbox resource group name] \
--name SalesVMVMNic \
--output table
ネットワーク(4)
Azure Traffic Manager を使ってサービスの可用性とデータの局所性を強化する
Traffic Manager プロファイルを作成(優先ルーティング)
az network traffic-manager profile create \
--resource-group Sandbox resource group \
--name TM-MusicStream-Priority \
--routing-method Priority \
--unique-dns-name TM-MusicStream-Priority-$RANDOM
Traffic Manager プロファイルを作成(パフォーマンスルーティング)
az network traffic-manager profile create \
--resource-group learn-34f2044c-be93-48ff-877a-dd4ed036ccf0 \
--name TM-MusicStream-Performance \
--routing-method Performance \
--unique-dns-name TM-MusicStream-Performance-$RANDOM \
--output table
ネットワーク(5)
Application Gateway で Web サービスのトラフィックを負荷分散する
アプリケーション ゲートウェイを作成
az network application-gateway create \
--resource-group $rg \
--name vehicleAppGateway \
--sku WAF_v2 \
--capacity 2 \
--vnet-name vehicleAppVnet \
--subnet appGatewaySubnet \
--public-ip-address appGatewayPublicIp \
--http-settings-protocol Http \
--http-settings-port 8080 \
--frontend-port 8080
アドレスプール(バックエンドプール)を作成(VM側)
az network application-gateway address-pool create \
--gateway-name vehicleAppGateway \
--resource-group $rg \
--name vmPool \
--servers $WEBSERVER1IP $WEBSERVER2IP
アドレスプール(バックエンドプール)を作成(AppService側)
az network application-gateway address-pool create \
--resource-group $rg \
--gateway-name vehicleAppGateway \
--name appServicePool \
--servers $APPSERVICE.azurewebsites.net
正常性プローブを作成
az network application-gateway probe create \
--resource-group $rg \
--gateway-name vehicleAppGateway \
--name customProbe \
--path / \
--interval 15 \
--threshold 3 \
--timeout 10 \
--protocol Http \
--host-name-from-http-settings true
パスベースルーティングを作成(vmPool)
az network application-gateway url-path-map create \
--resource-group $rg \
--gateway-name vehicleAppGateway \
--name urlPathMap \
--paths /VehicleRegistration/* \
--http-settings appGatewayBackendHttpSettings \
--address-pool vmPool
パスベースルーティングを追加(appServicePool)
az network application-gateway url-path-map rule create \
--resource-group $rg \
--gateway-name vehicleAppGateway \
--name appServiceUrlPathMap \
--paths /LicenseRenewal/* \
--http-settings appGatewayBackendHttpSettings \
--address-pool appServicePool \
--path-map-name urlPathMap
ルーティング規則を作成
az network application-gateway rule create \
--resource-group $rg \
--gateway-name vehicleAppGateway \
--name appServiceRule \
--http-listener vehicleListener \
--rule-type PathBasedRouting \
--address-pool appServicePool \
--url-path-map urlPathMap
コメント