Terraform を使用して読み取りレプリカ用の仮想エンドポイントを作成する

Terraform を使って、Azure Database for PostgreSQL - フレキシブル サーバーの読み取りレプリカ用の仮想エンドポイントを作成して管理できます。 Terraform はオープンソースのコードとしてのインフラストラクチャ ツールであり、高レベルの構成言語を使ってインフラストラクチャを定義してプロビジョニングできます。

前提条件

作業を開始する前に、以下を必ず取得してください。

  • 必要なアクセス許可を持つ Azure アカウント。
  • ローカル コンピューターにインストールされている Terraform。 Terraform の公式 Web サイトからダウンロードできます。
  • インストールされて認証されている Azure CLI。 手順については、Azure CLI のドキュメントをご覧ください。

Terraform の構文と Azure のリソース プロビジョニングの基本について理解しておきます。

ステップ バイ ステップの Terraform 構成: Terraform を使って読み取りレプリカ用の仮想エンドポイントを構成する手順が説明されています。

仮想エンドポイントの構成

Azure Database for PostgreSQL - フレキシブル サーバーの読み取りレプリカ用の仮想エンドポイントを作成するには、次の手順のようにします。

Terraform の構成を初期化する

main.tf ファイルを作成して、Azure プロバイダーを定義します。

 provider "azurerm" {
   features {}
 }

 resource "azurerm_resource_group" "example" {
   name     = "example-resources"
   location = "East US"
 }

プライマリ Azure Database for PostgreSQL を作成する

プライマリ PostgreSQL サーバー リソースを定義します。

resource "azurerm_postgresql_flexible_server" "primary" {
  name                = "primary-server"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  version             = "12"
  administrator_login = "adminuser"
  administrator_password = "password"
  sku_name            = "Standard_D4s_v3"

  storage_mb = 32768
  backup_retention_days = 7
  geo_redundant_backup = "Disabled"
  high_availability {
    mode = "ZoneRedundant"
  }
}

読み取りレプリカの作成

プライマリ サーバー用の読み取りレプリカを定義します。

resource "azurerm_postgresql_flexible_server_replica" "replica" {
  name                = "replica-server"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  source_server_id    = azurerm_postgresql_flexible_server.primary.id
}

仮想エンドポイントを構成する

仮想エンドポイントを構成するために必要なリソースを定義します。

resource "azurerm_private_endpoint" "example" {
  name                = "example-private-endpoint"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  subnet_id           = azurerm_subnet.example.id

  private_service_connection {
    name                           = "example-privateserviceconnection"
    private_connection_resource_id = azurerm_postgresql_flexible_server.primary.id
    is_manual_connection           = false
    subresource_names              = ["postgresqlServer"]
  }
}

構成を適用する

Terraform を初期化して、構成を適用します。

terraform init terraform apply

メッセージが表示されたら、適用アクションを確認します。 Terraform によってリソースがプロビジョニングされ、指定したように仮想エンドポイントが構成されます。

仮想エンドポイントについて詳しくは、「仮想エンドポイントの作成」をご覧ください。