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