はじめに

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

過去シリーズ記事

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

まずAzure Blob Storage とは

Blob Storage は、大量の非構造化データの保存に最適化されています。
非構造化データとは、テキストやバイナリデータなど、特定のデータモデルや定義に準拠しないデータのことです。
https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-blobs-introduction

コード

早速ですが、コードを記載していきます。

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

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

locals {
  storage_accounts = {
    standard = {
      account_kind = "StorageV2"        # 一般的なアカウントタイプ
      account_tier = "Standard"         # 一般的なユースケースに適したタイプ(HDD)
    }
    premium = {
      account_kind = "BlockBlobStorage" # Block Blob専用のアカウントタイプ
      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)とBlock Blob専用タイプ(Premium)を1つずつ作成しています。
(アカウントタイプの詳細)

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

各パラメーターの説明

  • 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 Blob Storageを利用したい場合は、StorageV2BlockBlobStorageになる。
  • account_replication_type
    Storage Accountの冗長性。
    LRS, GRS, RAGRS, ZRS, GZR, RAGZRSがある。

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

手順

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

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

さいごに

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