はじめに
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
さいごに
誰かのお役に立てれば幸いです。