はじめに
AzureのPostgreSQLを触る機会があったので、アウトプットとしてTerraformのコードを記載していきます。
過去シリーズ記事
とりあえずTerraformでAzure Redis for Cacheを作ってみる
とりあえずTerraformでAzure SQL Databaseを作ってみる
とりあえずTerraformでAzure Load Balancerをつくってみる
コード
locals {
sku_name = {
"basic" = "B_Gen5_2" # Basic、Gen 5、および 2 個の仮想コア
"generalpurpose" = "GP_Gen5_2" # General Purpose、Gen 5、および 2 個の仮想コア
"memoryoptimized" = "MO_Gen5_2" # Memory Optimized 5、Gen 5、および 2 個の仮想コア
}
}
resource "azurerm_resource_group" "test" {
name = "postgresql-test-rg"
location = "japaneast"
}
resource "azurerm_postgresql_server" "test" {
for_each = local.sku_name
name = "postgresql-server-${each.key}"
location = azurerm_resource_group.test.location
resource_group_name = azurerm_resource_group.test.name
sku_name = each.value # SKU (Basic, General Purpose, Memory Optimized)
storage_mb = 5120 # ストレージの容量(MB)
backup_retention_days = 7 # バックアップ保持日数
geo_redundant_backup_enabled = false # Geo 冗長サーバーのバックアップの有効化
auto_grow_enabled = false # ストレージの自動拡張の有効化
administrator_login = "test" # 管理者ID
administrator_login_password = "12345" # 管理者パスワード
version = "11" # PostgreSQL Serverのバージョン
ssl_enforcement_enabled = false # SSL接続を強制するか
ssl_minimal_tls_version_enforced = "TLSEnforcementDisabled" # サポートするSSLの最小バージョン
public_network_access_enabled = true # パブリックアクセスの有効化
}
内容としては、
SKUがBasic, General Purpose, Memory Optimizedの3つのSKUで単一サーバーのPostgreSQLを作成しています。
(テスト目的で作成したものを流用しているのでSSL設定が無効化, パブリックアクセスが有効化されています。)
サンプルコードをGitHubに載せているので実際に立ち上げる場合はご参照ください。
https://github.com/tkhs1121/terraform-azure-sample/tree/master/postgresql
各パラメーターの説明
- name
PostgreSQLの名前。 - location
PostgreSQLを作成する場所。 - resource_group_name
PostgreSQLを作成するリソースグループの名前。 - sku_name
SKU (Basic, General Purpose, Memory Optimized) - storage_mb
ストレージの容量(MB) - backup_retention_days
バックアップ保持日数 - geo_redundant_backup_enabled
Geo 冗長サーバーのバックアップの有効化 - auto_grow_enabled
ストレージの自動拡張の有効化 - administrator_login
管理者ID - administrator_login_password
管理者パスワード - version
PostgreSQL Serverのバージョン - ssl_enforcement_enabled
SSL接続を強制するか - ssl_minimal_tls_version_enforced
サポートするSSLの最小バージョン - public_network_access_enabled
パブリックアクセスの有効化
詳細については下記のドキュメントをご参照ください。
Terraform 公式ドキュメント
Azure 公式ドキュメント
手順
リソースを作成する際は以下のコマンドを実行してください。
terraform init terraform plan -out main.tfplan terraform apply main.tfplan
さいごに
誰かのお役に立てれば幸いです。