Azure Database for PostgreSQL フレキシブルサーバーの開始停止時に使うコマンド一覧

Azure,Database for PostgreSQL,PowerShell/Azure CLI

Azure Database for PostgreSQL フレキシブルサーバーのリソース情報取得、開始停止に使う、Azure CLIコマンドやAzure PowerShellコマンドレットの紹介です。
操作内容に合わせて、Azure CLIコマンドやAzure PowerShellコマンドレット一覧形式でまとめています。

Azure Database for PostgreSQL フレキシブルサーバーはAzureで提供されるマネージドデータベースサービスになります。
フレキシブルサーバーの特徴の1つに停止している間は課金が発生しないというのがあります。
使っていない間サーバーを停止させておくことでコスト削減する事が出来ます。

整理を兼ねて、Azure Database for PostgreSQL フレキシブルサーバーのリソース情報取得、開始停止、フェイルオーバーに関するAzure CLIコマンドやAzure PowerShellコマンドレットを一覧形式にまとめてみました。

スポンサーリンク

Azure Database for PostgreSQL フレキシブルサーバーの開始停止コマンド一覧

Azure PowerShellの場合、Az.PostgreSqlモジュールが必要

Azure PowerShellを使って、PostgreSQLフレキシブルサーバーのリソースを操作する場合、Az.PostgreSqlモジュールが必要となります。
コマンドレットが見つからない場合は、"Install-Module -Name Az.PostgreSql"でモジュールをインストールします。

Azure Database for PostgreSQL フレキシブルサーバーのリストやリソース情報取得

Azure Database for PostgreSQL フレキシブルサーバーのリスト取得やリソース情報取得時に使うコマンド(コマンドレット)一覧です。

実施内容 Azure CLI Azure PowerShell
リソースのリストを取得する az postgres flexible-server list –output table Get-AzPostgreSqlFlexibleServer
リソース情報を取得する

サブスクリプション内
az postgres flexible-server list

リソースグループ内
az postgres flexible-server list –resource-group “リソースグループ名"

各リソース
az postgres flexible-server show –resource-group “リソースグループ名" –name “サーバー名"

各リソース
Get-AzPostgreSqlFlexibleServer |Format-List

各リソース
Get-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" |Format-List

各リソース
Get-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -name “サーバー名" |Format-List

※Azure PowerShellの場合はFormat-Listを利用して一覧出力するようにしています。詳細はこちらを参照ください。

Azure Database for PostgreSQL フレキシブルサーバーの開始、停止

Azure Database for PostgreSQL フレキシブルサーバーの開始停止時に使うコマンド(コマンドレット)一覧です。

実施内容 Azure CLI Azure PowerShell
開始 az postgres flexible-server start –resource-group “リソースグループ名" –name “サーバー名"

Start-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

停止

az postgres flexible-server stop –resource-group “リソースグループ名" –name “サーバー名"

Stop-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

再起動

az postgres flexible-server restart –resource-group “リソースグループ名" –name “サーバー名"

Restart-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

※Azure CLIを使ったサーバー停止時に"–no-wait"オプションを使うと処理を待ちません。Azure PowerShellの場合は"-no-wait"オプションになります。
※Azure CLIを使ったサーバー操作時に"–ids"オプションを使うとリソースIDを利用して操作出来ます。
※Azure PowerShellを使ったサーバー操作時に"-InputObject"オプションを使うとリソースIDを利用して操作出来ます。リソースIDの最後に操作内容の付与が必要な点は注意が必要です。

Azure Database for PostgreSQL フレキシブルサーバーのフェイルオーバー

Azure Database for PostgreSQL フレキシブルサーバーをフェイルオーバーさせる場合に使うコマンド(コマンドレット)の一覧です。
フェイルオーバー時はRestartを利用します。

やりたい内容 Azure CLI Azure PowerShell
計画フェールオーバー

az postgres flexible-server restart –resource-group “リソースグループ名" –name “サーバー名" –failover Planned

Restart-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名" -RestartWithFailover -FailoverMode PlannedFailover

強制フェールオーバー

az postgres flexible-server restart –resource-group “リソースグループ名" –name “サーバー名" –failover Forced

Restart-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名" -RestartWithFailover -FailoverMode ForcedFailover

Azure CLIを使ってAzure Database for PostgreSQL フレキシブルサーバーを操作する

利用したサーバー

こちらで作成したサーバーを利用します。

リソース情報取得結果

az postgres flexible-server showコマンドを使ってPostgreSQLフレキシブルサーバーのリソース情報を取得します。
Azure PowerShellのGet-AzPostgreSqlFlexibleServerコマンドレットで取得出来る情報内容に差異がある点は注意が必要です。

az postgres flexible-server showコマンド

PS C:>az postgres flexible-server show –resource-group “test-rg" –name “test-postgresql-flexible-server"

{
  “administratorLogin": “管理者ユーザー名",
  “administratorLoginPassword": null,
  “availabilityZone": “2",
  “backup": {
    “backupRetentionDays": 7,
    “earliestRestoreDate": “2023-0X-0XT02:22:22.022222+00:00",
    “geoRedundantBackup": “Enabled"
  },
  “createMode": null,
  “fullyQualifiedDomainName": “test-postgresql-flexible-server.postgres.database.azure.com",
  “highAvailability": {
    “mode": “ZoneRedundant",
    “standbyAvailabilityZone": “1",
    “state": “Healthy"
  },
  “id": “/subscriptions/サブスクリプションID/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/flexibleServers/test-postgresql-flexible-server",
  “location": “East US",
  “maintenanceWindow": {
    “customWindow": “Enabled",
    “dayOfWeek": 6,
    “startHour": 19,
    “startMinute": 0
  },
  “minorVersion": “6",
  “name": “test-postgresql-flexible-server",
  “network": {
    “delegatedSubnetResourceId": null,
    “privateDnsZoneArmResourceId": null,
    “publicNetworkAccess": “Enabled"
  },
  “pointInTimeUtc": null,
  “resourceGroup": “test-rg",
  “sku": {
    “name": “Standard_D2ds_v4",
    “tier": “GeneralPurpose"
  },
  “sourceServerResourceId": null,
  “state": “Ready",
  “storage": {
    “storageSizeGb": 32
  },
  “systemData": null,
  “tags": {},
  “tagsPropertiesTags": null,
  “type": “Microsoft.DBforPostgreSQL/flexibleServers",
  “version": “14"
}

Azure CLIコマンドの使用例

Azure CLIコマンドを利用してAzure Database for PostgreSQL フレキシブルサーバーを操作します。

実施内容 コマンド実行内容
サーバーの電源ステータスを一覧表示

PS C:>az postgres flexible-server list –query “[].{ServerName:name, RGName:resourceGroup, PowerState:state}" -o table

ServerName RGName PowerState
——————————- ————— ————
test-postgresql-flexible-server test-rg Stopped

サーバーのコンピューティング情報を一覧表示

PS C:>az postgres flexible-server list –query “[].{ServerName:name, RGName:resourceGroup, Location:location, ComputeSize:sku.name, StorageSize:storage.storageSizeGb}" -o table

ServerName RGName Location ComputeSize StorageSize
——————————- ————— ———- —————- ————-
test-postgresql-flexible-server test-rg East US Standard_D2ds_v4 32

サブスクリプション内で起動しているサーバーをすべて停止

PS C:\> $PostgreSQL_ids = az postgres flexible-server list –query “[?state==’Ready’].id" –output tsv
PS C:\> az postgres flexible-server stop –ids $PostgreSQL_ids

サブスクリプション内で停止しているサーバーをすべて開始

PS C:\> $PostgreSQL_ids = az postgres flexible-server list –query “[?state==’Stopped’].id" –output tsv
PS C:\> az postgres flexible-server start –ids $PostgreSQL_ids

Azure PowerShellを使ってAzure Database for PostgreSQL フレキシブルサーバーを操作する

リソース情報取得結果

Get-AzPostgreSqlFlexibleServerコマンドレットを使ってPostgreSQLフレキシブルサーバーのリソース情報を取得します。

Get-AzPostgreSqlFlexibleServerコマンドレット

PS C:>Get-AzPostgreSqlFlexibleServer -ResourceGroupName “test-rg" -name “test-postgresql-flexible-server" |Format-List

SecuredPassword :
FirewallRuleName :
AdministratorLogin : 管理者アカウント名
AdministratorLoginPassword :
AvailabilityZone : 2
BackupEarliestRestoreDate : 2023/02/0X  22:22:22
BackupGeoRedundantBackup : Enabled
BackupRetentionDay : 7
CreateMode :
FullyQualifiedDomainName : test-postgresql-flexible-server.postgres.database.azure.com
HighAvailabilityMode : ZoneRedundant
HighAvailabilityStandbyAvailabilityZone : 1
HighAvailabilityState : Healthy
Id : /subscriptions/サブスクリプションID/resourceGroups/test-rg/providers/Microsoft.DBforPostgreSQL/flexibleServers/test-postgres
ql-flexible-server
IdentityPrincipalId :
IdentityTenantId :
IdentityType :
Location : East US
MaintenanceWindowCustomWindow : Enabled
MaintenanceWindowDayOfWeek : 6
MaintenanceWindowStartHour : 19
MaintenanceWindowStartMinute : 0
MinorVersion : 6
Name : test-postgresql-flexible-server
NetworkDelegatedSubnetResourceId :
NetworkPrivateDnsZoneArmResourceId :
NetworkPublicNetworkAccess : Enabled
PointInTimeUtc :
PropertiesTag : Microsoft.Azure.PowerShell.Cmdlets.PostgreSql.Models.Api20210601.ServerPropertiesTags
SkuName : Standard_D2ds_v4
SkuTier : GeneralPurpose
SourceServerResourceId :
State : Ready
StorageSizeGb : 32
SystemDataCreatedAt :
SystemDataCreatedBy :
SystemDataCreatedByType :
SystemDataLastModifiedAt :
SystemDataLastModifiedBy :
SystemDataLastModifiedByType :
Tag : Microsoft.Azure.PowerShell.Cmdlets.PostgreSql.Models.Api10.TrackedResourceTags
Type : Microsoft.DBforPostgreSQL/flexibleServers
Version : 14

Azure PowerShellコマンドレットの使用例

Azure PowerShellコマンドレットを利用して、Azure Database for PostgreSQL フレキシブルサーバーを操作します。
Azure CLIのaz postgres flexible-server showコマンドで取得出来る内容と差異がある点は注意が必要です。

実施内容 コマンド実行内容

電源ステータスを一覧表示
2つ目では表示タイトルを変更しています。

※"Format-Table"はftと略しています。

PS C:> Get-AzPostgreSqlFlexibleServer |ft Name,State

Name State
—- —–
test-postgresql-flexible-server Ready

PS C:> Get-AzPostgreSqlFlexibleServer |ft @{Name="ServerName"; Expression={$_.Name}} , @{Name="PowerState"; Expression={$_.State}} 

ServerName PowerState
———- ———-
test-postgresql-flexible-server Ready

サーバーのコンピューティング情報を一覧表示

PS C:> Get-AzPostgreSqlFlexibleServer |ft Name, Location, SkuName, StorageSizeGb

Name Location SkuName StorageSizeGb
—- ——– ——- ————-
test-postgresql-flexible-server East US Standard_D2ds_v4 32

サブスクリプション内で起動しているサーバーをすべて停止

※PowerShellのファイルとしてご利用下さい。

$PostgreSQL_list = Get-AzPostgreSqlFlexibleServer | Where-Object {$_.State -like “Stopped"}

for($i = 0; $i -lt $PostgreSQL_list.Count; $i++){
    $PostgreSQLServer = $PostgreSQL_list[$i]
    $PostgreSQL_id = $PostgreSQLServer.id
    $PostgreSQL_id = “$PostgreSQL_id/start"
    Start-AzPostgreSqlFlexibleServer -InputObject $PostgreSQL_id
}

サブスクリプション内で停止しているサーバーをすべて起動

※PowerShellのファイルとしてご利用下さい。

$PostgreSQL_list = Get-AzPostgreSqlFlexibleServer | Where-Object {$_.State -like “Ready"}

for($i = 0; $i -lt $PostgreSQL_list.Count; $i++){
    $PostgreSQLServer = $PostgreSQL_list[$i]
    $PostgreSQL_id = $PostgreSQLServer.id
    $PostgreSQL_id = “$PostgreSQL_id/stop"
    Stop-AzPostgreSqlFlexibleServer -InputObject $PostgreSQL_id
}

最後に

Azure Database for PostgreSQL フレキシブルサーバーのAzure CLIコマンドやAzure PowerShellコマンドレットを一覧形式でまとめてみました。
Azure CLIコマンドやAzure PowerShellで取得出来る情報が異なったり、同じ操作内容でも指定する値が違ったりする点は注意が必要かと思います。
今回はリソース情報取得から開始停止を中心に纏めていますが、ネットワーク設定、データベースの確認、リストア実施と言った事も出来ます。

今後も引き続き色々試していきたいと思います。

Azure CLIやAzure PowerShellのインストールについてはこちらに纏めています。

Rocky LinuxへのAzure PowerShellやAzure CLIのインストール手順についてはこちらに纏めています。

スポンサーリンク