はじめに
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を利用したい場合は、StorageV2かFileStorageになる。 - 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
さいごに
誰かのお役に立てれば幸いです。