Azure Firewall を一旦停止して課金を止める方法

Azure Firewall を一旦停止して課金を止める方法

今回は Azure Firewall を一旦停止して課金の発生を防ぐ方法を紹介します。Azure Firewall は PaaS として提供されるマネージドなファイアウォールサービスです。L3/L4/L7 のフィルタールールを利用し、ネットワークトラフィックの統括的なセキュリティ制御を可能にします。しかし料金は結構お高めなので、検証で触ってみるのも慎重になってしまいます。。。(24時間で3千円。。。)

https://azure.microsoft.com/ja-jp/pricing/details/azure-firewall/

Azure Firewall の停止方法

Azure Firewall を停止するには次のコマンドを実行します。リソースグループ、Azure Firewall のリソース名を変数で指定しています。10分ちょっと割り当て解除に時間がかかります。

$rgName = <リソースグループ名>
$azfwName = <Azure Firewall名>
$azfw = Get-AzFirewall -Name $azfwName -ResourceGroupName $rgName
$azfw.Deallocate()
Set-AzFirewall -AzureFirewall $azfw

割り当てが解除されると、仮想ネットワークやパブリック IP が紐付けられていない状態となります。ただし、割り当て解除しても Standard SKU のパブリック IP はリソースが存在しているだけで課金されるはずです。

Azure Firewall の開始方法

Azure Firewall を再度開始するには次のコマンドを実行します。リソースグループ、Azure Firewall、仮想ネットワーク、パブリック IP のリソース名を変数で指定しています。開始まで2,3分くらいです。

$rgName = <リソースグループ名>
$azfwName = <Azure Firewall名>
$vnetName = <仮想ネットワーク名>
$pipName = <パブリック IP 名>
$azfw = Get-AzFirewall -Name $azfwName -ResourceGroupName $rgName
$vnet = Get-AzVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
$publicip = Get-AzPublicIpAddress -Name $pipName -ResourceGroupName $rgName
$azfw.Allocate($vnet,$publicip)
Set-AzFirewall -AzureFirewall $azfw