Azure Firewallの起動停止方法(停止で課金を止める)

Azure,Firewall

ファイアウォール(Azure Firewall)は停止させる事で課金を止める事が出来ます。
Azure Portalでは停止出来ませんが、CLIを使う事で停止出来ます。

CLIを使ったファイアウォール(Azure Firewall)の起動停止方法を纏めました。
リソースのリストやリソース情報を取得する為のコマンド(コマンドレット)も纏めています。
Azure CLIとAzure PowerShellについて纏めています。

スポンサーリンク

ファイアウォール(Azure Firewall)は停止すると課金も止まる

価格

Azure Firewall の価格

ファイアウォール(Azure Firewall)は、デプロイされている時間に応じて課金が発生します。
Standardで$1.25/デプロイ時間(東日本リージョン)、Premiumの場合は$1.75/デプロイ時間の課金が発生します。
検証環境などで夜間使わない場合でもデプロイしておくだけで課金が発生します。

1時間未満は1時間に切り上げられる

1 時間に満たない時間は、1 時間分として課金されます。
短時間でデプロイを繰り返すとその分課金額も上がっていきます。
例えば1時間に3回デプロイすると3時間分の課金となります。

停止させると課金も止まる

ファイアウォール(Azure Firewall)が停止状態(割り当て解除)の場合は課金が発生しません。

Azure Firewall の停止と起動の方法を教えてください

※パブリックIPの課金はファイアウォール(Azure Firewall)のリソース停止状況とは関連しません。パブリックIPのリソースが存在する限り課金は継続します。

Azure Portalでは起動停止できない

ファイアウォール(Azure Firewall)の停止はAzure Portalでは提供されていません。
Azure PowerShellを使って停止する必要があります。

※Azure CLIでの停止はサポートされていません。(2023年9月末時点)

起動時にはパブリックIPの再割り当てが必要

ファイアウォール(Azure Firewall)の停止時はパブリックIPの割り当てが解除されます。
起動時にはパブリックIPの再割り当てが必要になります。

※仮想ネットワークの割り当ても解除されます。

Azure CLIとAzure PowerShell使ってリストやリソース情報を取得

リストやリソース情報を取得

ファイアウォール(Azure Firewall)のリストやリソース情報取得時に使うAzure CLI、Azure PowerShellです。

実施内容 Azure CLI Azure PowerShell
リソースのリストを取得 az network firewall list –output table

Get-AzFirewall | ft Name,Location,ResourceGroupName,ProvisioningState,ThreatIntelMode

リソースのリストを取得
(リソースグループ指定)
az network firewall list list –resource-group “リソースグループ名" –output table

Get-AzFirewall -ResourceGroupName “リソースグループ名"| ft Name,Location,ResourceGroupName,ProvisioningState,ThreatIntelMode

リソース情報を取得

サブスクリプション内すべて
az network firewall list

リソースグループ内すべて
az network firewall list list –resource-group “リソースグループ名"

個別のリソース
az network firewall show –resource-group “リソースグループ名" –name “ファイアウォール名"

サブスクリプション内すべて
Get-AzFirewall | fl

リソースグループ内すべて
Get-AzFirewall -ResourceGroupName “リソースグループ名" | fl

個別のリソース
Get-AzFirewall -ResourceGroupName “リソースグループ名" -name “ファイアウォール名" | fl

※Azure PowerShellの表示内容はAzure CLIの出力結果と同じとなるよう項目を指定しています。
※Azure CLIの–resource-groupは-g、–nameは-nと省略して表記できます。
※Azure CLIで詳細情報取得時も–output tableを付与する事でリソース名、ステータスを表形式で取得できます。

Azureテナントへのサインイン方法はこちらに纏めています。

リソースのリスト取得結果

Azure CLIとAzure PowerShellを使ってファイアウォール(Azure Firewall)のリソース一覧を取得した例です。

※詳細情報の取得は停止起動の方で実施しています。

リソースリスト取得

Azure CLIを利用した場合

PS C:> az network firewall list –output table
Location Name ProvisioningState ResourceGroup ThreatIntelMode
———- ———- ——————- ————— —————–
eastus fw-test-01 Succeeded rg-fw-test-01 Alert

Azure PowerShellを利用した場合

PS C:> Get-AzFirewall | ft Name,Location,ResourceGroupName,ProvisioningState,ThreatIntelMode

Name Location ResourceGroupName ProvisioningState ThreatIntelMode
—- ——– —————– —————– —————
fw-test-01 eastus rg-fw-test-01 Succeeded Alert

※Azure PowerShellの場合の表示項目はAzure CLIの場合と同じとしています。

az network firewall初回実行時の注意点

Azure CLIのaz network firewallコマンド初回実行時には拡張機能のインストールが求められます。
Yを選択してインストールします。

PS C:> az network firewall list –output table
The command requires the extension azure-firewall.
Do you want to install it now? The command will continue to run after the extension is installed. (Y/n): Y

ファイアウォール(Azure Firewall)の起動停止

利用したファイアウォール

検証で利用したファイアウォール(Azure Firewall)のリソースです。

区分 項目 設定値
ファイアウォール リソースグループ名 rg-fw-test-01
ファイアウォール名 fw-test-01
SKU Standard
仮想ネットワーク リソースグループ名 rg-fw-test-01
仮想ネットワーク名 vnet-fw-test-01
パブリックIP リソースグループ名 rg-fw-test-01
パブリックIP名 pip-fw-fw-test-01
パブリックIP名(管理パブリック IP)
pip-fwm-fw-test-01

Azure CLIを使った停止はサポートされていません

Azure CLIを使ったファイアウォール(Azure Firewall)起動停止はサポートされていません。
Azure PowerShellのみがサポートされています。

※Azure CLIを使っても同じよう状態を作る事は出来ますが課金停止の保障はされていません。

Azure PowerShellを使った停止、起動

ファイアウォール(Azure Firewall)の停止と起動をAzure PowerShellを使ってやってみます。
FAQの中に起動停止の記載があります。

Azure Firewall に関する FAQ

Stop-AzFirewallやStart-AzFirewallと言ったコマンドレットは存在しません。
Get-AzFirewallとSet-AzFirewallを使ってパブリックIPアドレスや仮想ネットワークの割り当て解除(起動時は割り当て)します。

停止はすべての構成で同じですが、起動は構成により3パターンあります。

    • 強制トンネリング用に構成されていないファイアウォール
    • 強制トンネリング用に構成されているファイアウォール
    • セキュリティで保護された仮想ハブ アーキテクチャのファイアウォール

azfw.Allocateでの指定内容(割り当て方法)が異なります。

※今回はセキュリティで保護された仮想ハブ アーキテクチャのファイアウォールは実施していません。

ファイアウォール(Azure Firewall)の停止から起動まで
 停止

PS C:> $azfwrgname = “rg-fw-test-01″ #リソースグループ名(ファイアウォール)
PS C:> $azfwname = “fw-test-01″ #ファイアウォール名
PS C:> $azfw = Get-AzFirewall -Name $azfwname -ResourceGroupName $azfwrgname
PS C:> $azfw.Deallocate()
PS C:> Set-AzFirewall -AzureFirewall $azfw

 起動

PS C:> $azfwrgname = “rg-fw-test-01″ #リソースグループ名(ファイアウォール)
PS C:> $azfwname = “fw-test-01″ #ファイアウォール名
PS C:> $vnetrgname = “rg-fw-test-01″ #リソースグループ名(仮想ネットワーク)
PS C:> $vnetname = “vnet-fw-test-01″ #仮想ネットワーク名
PS C:> $piprgname01 = “rg-fw-test-01″ #リソースグループ名(パブリックIP)
PS C:> $pipname01 = “pip-fw-fw-test-01″ #パブリックIP名
PS C:> $piprgname02 = “rg-fw-test-01″ #リソースグループ名(パブリックIP)
PS C:> $pipname02 = “pip-fwm-fw-test-01″ #パブリックIP名

PS C:> $azfw = Get-AzFirewall -Name $azfwname -ResourceGroupName $azfwrgname
PS C:> $vnet = Get-AzVirtualNetwork -Name $vnetname -ResourceGroupName $vnetrgname
PS C:> $publicip1=Get-AzPublicIpAddress-Name $pipname01-ResourceGroupName $piprgname01
PS C:> $publicip2=Get-AzPublicIpAddress-Name $pipname02-ResourceGroupName $piprgname02
PS C:> $azfw.Allocate($vnet,@($publicip1,$publicip2))

PS C:> Set-AzFirewall -AzureFirewall $azfw
起動(強制トンネリング構成)

PS C:> $azfwrgname = “rg-fw-test-01″ #リソースグループ名(ファイアウォール)
PS C:> $azfwname = “fw-test-01″ #ファイアウォール名
PS C:> $vnetrgname = “rg-fw-test-01″ #リソースグループ名(仮想ネットワーク)
PS C:> $vnetname = “vnet-fw-test-01″ #仮想ネットワーク名
PS C:> $piprgname01 = “rg-fw-test-01″ #リソースグループ名(パブリックIP)
PS C:> $pipname01 = “pip-fw-fw-test-01″ #パブリックIP名
PS C:> $piprgname02 = “rg-fw-test-01″ #リソースグループ名(パブリックIP)
PS C:> $pipname02 = “pip-fwm-fw-test-01″ #パブリックIP名(管理パブリック IP)

PS C:> $azfw = Get-AzFirewall -Name $azfwname -ResourceGroupName $azfwrgname
PS C:> $vnet = Get-AzVirtualNetwork -Name $vnetname -ResourceGroupName $vnetrgname
PS C:> $publicip1=Get-AzPublicIpAddress-Name $pipname01-ResourceGroupName $piprgname01
PS C:> $publicip2=Get-AzPublicIpAddress-Name $pipname02-ResourceGroupName $piprgname02
PS C:> $azfw.Allocate($vnet,$publicip1,$publicip2)

PS C:> Set-AzFirewall -AzureFirewall $azfw

起動停止時のリソース状態

起動停止時のリソース状態について確認します。
ファイアウォール(Azure Firewall)のリソース状態はGet-AzFirewallで取得しています。

ProvisioningState(プロビジョニング状態)はありますが、起動停止状態を直接示す項目はありません。
IpConfigurationsTextの値の有無で起動停止状態を確認出来ます。

    • 停止状態
      • IpConfigurationsText:値が存在しない
      • ManagementIpConfigurationText:値が存在しない
    • 起動状態(強制トンネリング用に構成されていないファイアウォール)
      • IpConfigurationsText:値が存在する
      • ManagementIpConfigurationText:値が存在しない
    • 起動状態(強制トンネリング用に構成されていないファイアウォール)
      • IpConfigurationsText:値が存在する
      • ManagementIpConfigurationText:値が存在する

※リソースに対して課金が発生しているかどうかは停止後に確認した方が安全です。

Get-AzFirewall実行結果

停止状態

起動状態(強制トンネリング用に構成されていないファイアウォール)

起動状態(強制トンネリング用に構成されているファイアウォール)

Azure Portal上でステータスを確認

Azure Portal上でも起動停止状態を示す項目はありません。
パブリックIPアドレスや仮想ネットワークの表示状態で確認出来ます。

状態 コマンド実行内容
 停止状態
 起動状態
起動状態
(強制トンネリング構成)

※リソースに対して課金が発生しているかどうかは別途確認した方が安全です。

最後に

ファイアウォール(Azure Firewall)のリストやリソース情報取得から起動停止方法を纏めてみました。
リソースの起動停止には数分程度かかる事もありますが停止する事で課金停止するのは大変メリットかと思います。
検証環境等でのコスト削減に活用する事も出来ます。

引き続き色々試してみたいと思います。

アプリケーションゲートウェイ(Azure Application Gateway)は停止についてはこちらに纏めています。

スポンサーリンク