はじめに

TerraformでAzure Filesを作成する機会があったのでアウトプットとしてコードを記載していきます。

過去シリーズ記事

とりあえずTerraformでAzure Redis for Cacheを作ってみる
とりあえずTerraformでAzure SQL Databaseを作ってみる
とりあえずTerraformでAzure Load Balancerをつくってみる
とりあえずTerraformでAzure Database for PostgreSQLをつくってみる
とりあえずTerraformでAzure Database for MySQLをつくってみる

コード

resource "random_integer" "test" {
  min = 1
  max = 100
}

resource "random_pet" "test" {
  length    = 1
  separator = ""
}

locals {
  storage_accounts = {
    standard = {
      account_kind  = "StorageV2"   # 一般的なストレージアカウントタイプ(SMB対応)
      account_tier  = "Standard"    # 一般的なユースケースに適したタイプ(HDD)
    }
    premium = {
      account_kind  = "FileStorage" # ファイル共有専用のストレージアカウントタイプ(SMB, NFS対応)
      account_tier  = "Premium"     # 高いI/O性能が必要なワークロードに適したタイプ(SSD)
    }
  }
}

resource "azurerm_storage_account" "test" {
  for_each = local.storage_accounts

  name                     = "${random_pet.test.id}${random_integer.test.result}${each.key}"
  resource_group_name      = azurerm_resource_group.test.name
  location                 = azurerm_resource_group.test.location
  account_tier             = each.value["account_tier"] # Storage Accountのパフォーマンス層
  account_kind             = each.value["account_kind"] # Storage Accountの種類
  account_replication_type = "LRS"                      # Storage Accountの冗長性
}

内容としては、ストレージのアカウントタイプが汎用タイプv2(Standard)とファイル共有専用タイプ(Premium)を1つずつ作成しています。
(アカウントタイプの詳細)

サンプルコードをGitHubに載せているので実際に立ち上げる際はご参照ください。
https://github.com/tkhs1121/terraform-azure-sample/tree/master/azurefiles

各パラメーターの説明

  • name
    Storage Accountの名前。
  • resource_group_name
    Storage Accountを作成するリソースグループの名前。
  • location
    Storage Accountを作成する場所。
  • account_tier
    Storage Accountのパフォーマンス層。
    汎用的なStandard(HDD)と高いI/O性能のあるPremium(SSD)がある。
  • account_kind
    Storage Accountの種類。
    BlobStorage, BlockBlobStorage, FileStorage, Storage, StorageV2があり、
    Azure Filesを利用したい場合は、StorageV2FileStorageになる。
  • account_replication_type
    Storage Accountの冗長性。
    LRS, GRS, RAGRS, ZRS, GZR, RAGZRSがある。

詳細については下記のドキュメントをご参照ください。
Terraform 公式ドキュメント
Azure Filesとは

手順

リソースを作成する際は以下のコマンドを実行してください。

terraform init
terraform plan -out main.tfplan
terraform apply main.tfplan

さいごに

誰かのお役に立てれば幸いです。