Azure Application Gatewayをコマンドで起動停止(課金を止める)

2020-01-19Application Gateway,Azure,PowerShell/Azure CLI

Azure Application Gatewayを起動および停止して課金を止める方法です。
Azure CLIおよびAzure PowerShellを使用して、Azure Application Gatewayの起動、停止、ステータス確認を行う手順を一覧表にまとめています。
課金の概要やAzure Portalでの起動・停止状態の確認方法についても確認しています。

Azure Application Gatewayのリソースを停止することで課金を停止することが可能です。
ただし、Azure Portalでは停止できないため、コマンド (コマンドレット) を使用して実施する必要があります。
今回は、Azure CLIとAzure PowerShellのコマンド (コマンドレット) について確認しました。

Azure CLIやAzure PowerShellのインストールについては、こちらで紹介しています。

Azure Cloud Shellの使い方については、こちらで紹介しています。

※本記事では、一部を除きAzure Application Gateway(アプリケーションゲートウェイ)を、Azure Application Gatewayとして表記しています。

スポンサーリンク

Azure Application Gatewayを停止すると課金も止まる

課金について

Application Gateway の価格

Azure Application Gatewayは、デプロイされている時間に応じて課金が発生します。
容量ユニットの数に関わらず、固定で$0.29/ゲートウェイ時間 (東日本リージョン) (V2の場合) の課金が発生します。
また、Webアプリケーションファイアウォールを利用する場合は、$0.522/ゲートウェイ時間 (東日本リージョン) (V2の場合) の課金が発生します。
検証環境などで夜間に使用しない場合であっても、デプロイしているだけで課金が発生してしまいます。

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

1時間に満たない利用時間も、1時間分として課金されます。
そのため、短時間のデプロイを繰り返すと、その分課金額が増加します。
例えば、1時間に3回デプロイを行うと、合計で3時間分の課金が発生します。

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

Azure Application Gatewayが停止状態の場合、課金は発生しません。

Azure Application Gateway を停止して開始する方法は?

ただし、Azure Application GatewayのフロントエンドIPとして利用されているパブリックIPに対する課金は停止しません。

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

Azure Application Gatewayの停止は、Azure Portalでは実行できません。
そのため、Azure CLIやAzure PowerShellのコマンドなどを使用する必要があります。

リソースの設定変更をすると起動する場合がある

設定変更により、Azure Application Gatewayが起動することがあります。
正常性プローブやリスナーなどの設定を変更した場合に起動することがあるようです。

※設定変更自体は、リソースの起動状況に関わらずできます。

Azure Application Gatewayのリスト、ステータス取得、起動、停止時使うコマンド

リストや詳細情報(ステータス)の取得に使うAzure CLIとAzure PowerShell

Azure Application Gatewayのリスト取得や情報の確認に使用するAzure CLIコマンドおよびAzure PowerShellコマンドレットについて一覧表にします。
起動や停止の状態は、OperationalStateで確認できます。

操作内容 Azure CLI Azure PowerShell
リソースのリストを取得 az network application-gateway list –output table

Get-AzApplicationGateway | ft Name,Location,ResourceGroupName,OperationalState,ProvisioningState

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

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

詳細情報(ステータス)を取得

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

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

個別のリソース
az network application-gateway show –resource-group “リソースグループ名" –name “Azure Application Gateway名"

サブスクリプション内すべて
Get-AzApplicationGateway

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

個別のリソース
Get-AzApplicationGateway -ResourceGroupName “リソースグループ名" -name “Azure Application Gateway名"

※Azure PowerShellの場合は詳細情報が表示されます。項目を指定して表形式で表示しています。
※Azure CLIの–resource-groupは-g、–nameは-nと省略して表記できます。
※Azure CLIで詳細情報取得時も–output tableを付与する事でリソース名、ステータスを表形式で取得できます。

Azureテナントへのログイン方法は、こちらで紹介しています。

起動停止時に使うAzure CLIとAzure PowerShell

Azure Application Gatewayの起動および停止に使用するAzure CLIコマンドやAzure PowerShellコマンドレットです。

操作内容 Azure CLI Azure PowerShell
起動 az network application-gateway start –name “Azure Application Gateway名"

$AppGw = Get-AzApplicationGateway -ResourceGroupName “リソースグループ名" -name “Azure Application Gateway名"
Start-AzApplicationGateway -ApplicationGateway $AppGw

停止

az network application-gateway stop –name “Azure Application Gateway名"

$AppGw = Get-AzApplicationGateway -ResourceGroupName “リソースグループ名" -name “Azure Application Gateway名"
Stop-AzApplicationGateway -ApplicationGateway $AppGw

※Azure CLIの–resource-groupは-g、–nameは-nと省略して表記できます。

—広告—

Azure CLIやAzure PowerShellを使ったAzure Application Gatewayの停止と起動

Azure CLIを使った停止と起動

Azure CLIを使用したAzure Application Gatewayの停止から起動までの流れを確認します。
それぞれのコマンド実行後にOperationalStateでリソースの起動および停止の状態を確認します。
停止状態の場合はStopped、起動状態の場合はRunningとなります。

    • 利用したAzure Application Gateway
      • Azure Application Gateway名:agw-test-01
      • リソースグループ名:RG-AGW-TEST-01
状態 コマンド実行内容
 停止

PS C:>az network application-gateway stop –resource-group “RG-AGW-TEST-01" –name “agw-test-01"

停止時のステータス

PS C:>az network application-gateway show –resource-group “RG-AGW-TEST-01" –name “agw-test-01" –output table

EnableHttp2 Location Name OperationalState ProvisioningState ResourceGroup ResourceGuid
————- ———- ———– —————— ——————- ————— ————————————
False eastus2 agw-test-01 Stopped Succeeded RG-AGW-TEST-01 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX

 起動

PS C:>az network application-gateway start –resource-group “RG-AGW-TEST-01" –name “agw-test-01"

起動時のステータス

PS C:>az network application-gateway show –resource-group “RG-AGW-TEST-01" –name “agw-test-01" –output table

EnableHttp2 Location Name OperationalState ProvisioningState ResourceGroup ResourceGuid
————- ———- ———– —————— ——————- ————— ————————————
False eastus2 agw-test-01 Running Succeeded RG-AGW-TEST-01 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX

Azure PowerShellを使った停止と起動

Azure PowerShellを使用したAzure Application Gatewayの停止から起動までの流れを確認します。
それぞれのコマンド実行後にOperationalStateでリソースの起動および停止の状態を確認します。
停止状態の場合はStopped、起動状態の場合はRunningとなります。

    • 利用したAzure Application Gateway
      • Azure Application Gateway名:agw-test-01
      • リソースグループ名:RG-AGW-TEST-01
状態 コマンド実行内容
 停止

PS C:>$AppGw = Get-AzApplicationGateway -Name “agw-test-01" -ResourceGroupName “RG-AGW-TEST-01"
PS C:>Stop-AzApplicationGateway -ApplicationGateway $AppGw

停止時のステータス

PS C:>Get-AzApplicationGateway -Name “agw-test-01" -ResourceGroupName “RG-AGW-TEST-01″| ft Name,Location,ResourceGroupName,OperationalState,ProvisioningState

Name Location ResourceGroupName OperationalState ProvisioningState
—- ——– —————– —————- —————–
agw-test-01 eastus2 RG-AGW-TEST-01 Stopped Succeeded

 起動

PS C:>$AppGw = Get-AzApplicationGateway -Name “agw-test-01" -ResourceGroupName “RG-AGW-TEST-01"
PS C:>Start-AzApplicationGateway -ApplicationGateway $AppGw

起動時のステータス

PS C:>Get-AzApplicationGateway -Name “agw-test-01" -ResourceGroupName “RG-AGW-TEST-01″| ft Name,Location,ResourceGroupName,OperationalState,ProvisioningState

Name Location ResourceGroupName OperationalState ProvisioningState
—- ——– —————– —————- —————–
agw-test-01 eastus2 RG-AGW-TEST-01 Running Succeeded

Azure PortalでAzure Application Gatewayの起動停止状態を確認

Azure Application Gatewayの起動および停止の状態は、Azure Portalで確認できます。
停止している場合、動作状態は停止済みと表示されます。
起動や停止を実行中の場合、プロビジョニング状態は更新中と表示されます。

起動状態 停止中 停止状態

リージョンのリソース枯渇の場合に起動できないことがある

リージョン内のリソースが不足している場合、Azure Application Gatewayの起動に失敗する可能性があります。

最後に

Azure CLIやAzure PowerShellを使用してAzure Application Gatewayを起動および停止する方法についてまとめてみました。
リソースの起動や停止には約5分程度かかる場合がありますが、停止することで課金が止まるのは大きなメリットだと思います。
特に、検証環境などでは、コスト削減にも活用できるのではないかと思います。

引き続き、いろいろ試していきたいと思います。

Azure Firewall(ファイアウォール)の起動停止については、こちらで紹介しています。

Azure Application Gatewayの概要からリソース作成手順については、こちらで紹介しています。

スポンサーリンク