よしたく blog

ほぼ週刊で記事を書いています

TerraformでAzureDataWarehouseを作成するときにDWUを指定する方法

TerraformでDataWarehouseを作成するときにDWUを指定する方法がドキュメントを見た限りではわからなかったので調査しました。

www.terraform.io

docs.microsoft.com

ファイル全体像

dataWarehouseを作成するTerraformファイルの全体像を書きました。今回初めてTerraformを触ってみたが可読性が高くて非常に使いやすいです。

provider "azurerm" {
    version = "~> 2.1.0"
    features {}
}

resource "azurerm_resource_group" "rg" {
    name     = "sample"
    location = "japaneast"
}

resource "azurerm_sql_server" "sql" {
  name                         = ""
  resource_group_name          = azurerm_resource_group.rg.name
  location                     = azurerm_resource_group.rg.location
  version                      = "12.0"
  administrator_login          = ""
  administrator_login_password = ""
}

resource "azurerm_sql_database" "sqldw" {
  name                = ""
  resource_group_name = azurerm_resource_group.rg.name
  location            = azurerm_resource_group.rg.location
  server_name         = azurerm_sql_server.sql.name

  requested_service_objective_name = "DW100c"
  edition = "DataWarehouse"
  collation = "Japanese_XJIS_100_CI_AS"
}

設定値を変更する方法

今回の主題である「TerraformでDataWarehouseを作成するときにDWUを指定する方法」は、azurerm_sql_databaseリソース内部のrequested_service_objective_name部分となります。

requested_service_objective_nameのドキュメントを確認すると次のようになります。DeepLを使った翻訳結果も載せておきます。

requested_service_objective_name - (Optional) The service objective name for the database. Valid values depend on edition and location and may include S0, S1, S2, S3, P1, P2, P4, P6, P11 and ElasticPool. You can list the available names with the cli: shell az sql db list-editions -l westus --edition Standard -o table. For further information please see Azure CLI - az sql db.
.

requested_service_objective_name - (オプション) データベースのサービス・オブジェクト名。有効な値はエディションと場所に依存し、S0, S1, S2, S3, P1, P2, P4, P6, P11, ElasticPoolが含まれます。利用可能な名前を cli: shell az sql db list-editions -l westus --edition Standard -o table でリストアップすることができます。詳細はAzure CLI - az sql dbを参照してください。

Azure Resource Manager: azurerm_sql_database - Terraform by HashiCorp

DWUについての記述はないため戸惑うかもしれませんが、この部分を変更することでDWUの値を変更することが出来きます。ちなみに、requested_service_objective_nameはオプション項目であり必須ではないので、DWUを指定しなかった時はDW100cが設定されます。しかし、このデフォルト値がいつ変わるかわからないので明示的に指定したほうが安心かと思います。

DW100c

画像は一部の表示ですが、DW100cに設定したときです。 f:id:yoshitaku_jp:20200430163527p:plain

DW200c

画像は一部の表示ですが、DW200cに設定したときです。 無事に反映されています。

f:id:yoshitaku_jp:20200430163558p:plain

参考

このissueが助けになりました。

github.com