こんにちは、ACS 事業部の埜下です。
2024年1月25日 に Terraform の AzureRM プロバイダ v3.89.0 がリリースされましたのでアップデート内容を確認していきましょう。
今回は次のサービスに関連したアップデートがありました。
- Azure Backup
- Azure Chaos Studio
- Azure Data Factory
- Azure Elastic SAN
- Azure NetApp Files
- Azure Red Hat OpenShift
- Azure Stream Analytics
- IP グループ
- Nginx デプロイ
AzureRM プロバイダのアップデート内容は 3 つのカテゴリに分かれてリリースページにて報告されていますが、FEATURES
の内容を拾いつつ、影響の大きそうな ENHANCEMENTS
や BUG FIXES
があれば確認します。
カテゴリ | 内容 |
---|---|
FEATURES | 新しいリソース、データソースの追加 プロバイダ自体の機能追加 |
ENHANCEMENTS | 既存リソース、データソースのプロパティ変更 利用している SDK (hashicorp/go-azure-sdk) などバージョンアップ対応 |
BUG FIXES | バグ修正 |
新規リソース
azurerm_redhat_openshift_cluster (Azure Red Hat OpenShift)
ドキュメント:azurerm_redhat_openshift_cluster
ついに Azure Red Hat OpenShift (ARO) を管理できる azurerm_redhat_openshift_cluster
リソースが公開されました!
ARO は Azure 上で簡単に OpenShift のクラスタを構築できるマネージド OpenShift サービスで、Microsoft と Red Hat が連携したサポートが提供されます。
「Terraform で ARO を構築できるようになったから ARO やってみよう」という方(組織)はあまりいないかも知れませんが、Terraform の可能性が広がったという点でとても喜ばしいことです。
azurerm_chaos_studio_target (Azure Chaos Studio)
ドキュメント:azurerm_chaos_studio_target
Azure Chaos Studio のターゲットを作成する azurerm_chaos_studio_target
リソースが公開されました。
ドキュメントでは AKS をターゲットにしたサンプルが載っていますが、AKS 対して障害を引き起こす場合は事前に AKS に対して Chaos Mesh のインストールが必要です。 また、「カオス実験 (Chaos experiments)」と呼ばれる発生させたい障害を定義した Azure リソースも必要になりますが、現時点では AzureRM プロバイダでサポートされていませんのでご注意ください。
詳しくは公式ドキュメントや弊社吉川の資料をご確認ください。
resource "azurerm_chaos_studio_target" "example" { location = azurerm_resource_group.example.location target_resource_id = azurerm_kubernetes_cluster.example.id target_type = "example-value" }
azurerm_elastic_san_volume_group (Azure Elastic SAN)
ドキュメント:azurerm_elastic_san_volume_group
Azure Elastic SAN のボリューム グループを管理する azurerm_elastic_san_volume_group
リソースが追加されました。
Azure Elastic SAN をデプロイ手順は以下のようになります。
- SAN の作成
- ボリューム グループの作成
- ボリュームの作成
「1. SAN の作成」は既存の azurerm_elastic_san
リソースで対応できていましたが、その他の手順に対応リソースはまだ公開されていませんでした。
今回のアップデートで「2. ボリューム グループの作成」を Terraform で実行できるようになりました。
resource "azurerm_elastic_san" "example" { name = "examplees-es" resource_group_name = azurerm_resource_group.example.name location = azurerm_resource_group.example.location base_size_in_tib = 1 sku { name = "Premium_LRS" } } resource "azurerm_elastic_san_volume_group" "example" { name = "example-esvg" elastic_san_id = azurerm_elastic_san.example.id encryption_type = "EncryptionAtRestWithCustomerManagedKey" encryption { key_vault_key_id = azurerm_key_vault_key.example.versionless_id user_assigned_identity_id = azurerm_user_assigned_identity.example.id } identity { type = "UserAssigned" identity_ids = [azurerm_user_assigned_identity.example.id] } network_rule { subnet_id = azurerm_subnet.example.id action = "Allow" } }
azurerm_netapp_account_encryption (Azure NetApp Files)
ドキュメント:azurerm_netapp_account_encryption
Azure NetApp Files ボリューム暗号化でカスタマー マネージド キーを設定できる azurerm_netapp_account_encryption
リソースが公開されました。
これにより、Terraform を使って Azure Key Vault に格納したカスタマー マネージド キーを使用した Azure NetApp Files のボリュームを暗号化ができるようになります。
resource "azurerm_key_vault_key" "example" { name = "anfencryptionkey" key_vault_id = azurerm_key_vault.example.id key_type = "RSA" key_size = 2048 key_opts = [ "decrypt", "encrypt", "sign", "unwrapKey", "verify", "wrapKey", ] } resource "azurerm_netapp_account" "example" { name = "netappaccount" location = azurerm_resource_group.example.location resource_group_name = azurerm_resource_group.example.name identity { type = "UserAssigned" identity_ids = [ azurerm_user_assigned_identity.example.id ] } } resource "azurerm_netapp_account_encryption" "example" { netapp_account_id = azurerm_netapp_account.example.id user_assigned_identity_id = azurerm_user_assigned_identity.example.id encryption { key_vault_key_id = azurerm_key_vault_key.example.versionless_id } }
azurerm_netapp_account_encryption
リソースにあわせて azurerm_netapp_account_encryption
データソースも公開されています。
新規データソース
azurerm_data_factory_trigger_schedule / azurerm_data_factory_trigger_schedules (Azure Data Factory)
ドキュメント:azurerm_data_factory_trigger_schedule, azurerm_data_factory_trigger_schedules
Azure Data Factory のスケジュール トリガーを取得する 2 種類のデータソースが追加されました。
データソース名が似ていますが、末尾 "s" の有無が違いです。
"s" がある azurerm_data_factory_trigger_schedules
データソースは ID で指定された Azure Data Factory が持つスケジュール トリガーの名前をリストで取得できます。
一方、"s" がない azurerm_data_factory_trigger_schedule
データソースは「Azure Data Factory のリソース ID」と「スケジュール トリガー名」を指定して、スケジュール トリガーの詳細情報を取得できます。
両者を以下のように組み合わせることで、Azure Data Factory のスケジュール トリガーの詳細情報を取得できそうです。
# スケジュール トリガー名のリスト data "azurerm_data_factory_trigger_schedules" "example" { data_factory_id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DataFactory/factories/datafactory1" } # リストのスケジュール名からスケジュール トリガー詳細情報を参照 data "azurerm_data_factory_trigger_schedule" "example" { for_each = toset(data.azurerm_data_factory_trigger_schedules.items) name = each.value data_factory_id = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg1/providers/Microsoft.DataFactory/factories/datafactory1" }
azurerm_ip_groups (IP グループ)
ドキュメント:azurerm_ip_groups
既に azurerm_ip_group
というデータソースがあるのですが、こちらは末尾に "s" がつく azurerm_ip_groups
データソースで、リソースグループ内の IP グループ一覧を取得します。
上記の Azure Data Factory スケジュール トリガーのデータソースと似たような関係ですね。
data "azurerm_ip_groups" "example" { name = "existing" resource_group_name = "existing" }
azurerm_nginx_certificate (Nginx デプロイ)
ドキュメント:azurerm_nginx_certificate
前回の v3.88.0 では Nginx デプロイを参照する azurerm_nginx_deployment
データソースが追加されましたが、今回は Nginx デプロイの証明書を参照する azurerm_nginx_certificate
データソースが公開されました。
リソースの変更
azurerm_data_protection_backup_vault でゾーン冗長がサポート (Azure Backup)
ドキュメント:azurerm_data_protection_backup_vault
Azure Backup のバックアップ コンテナー (Backup Vault) を管理する azurerm_data_protection_backup_vault
リソースでゾーン冗長がサポートされました。
今までは「ローカル冗長 (LocallyRedundant)」と「Geo 冗長 (GeoRedundant)」のみ選択できていました。
resource "azurerm_data_protection_backup_vault" "example" { name = "example-backup-vault" resource_group_name = azurerm_resource_group.example.name location = azurerm_resource_group.example.location datastore_type = "VaultStore" redundancy = "ZoneRedundant" }
バックアップコンテナーのゾーン冗長ストレージサポートは 2022 年には GA されていました。
azurerm_stream_analytics_job で 価格プラン (SKU 名) の指定がサポート (Azure Stream Analytics)
ドキュメント:azurerm_stream_analytics_job
Azure Stream Analytics はデバイスやセンサーで生成されたストリーミング データを分析および処理するように設計されたフル マネージド ストリーム処理エンジンです。
Azure Stream Analytics には「ジョブ」と「クラスター」という 2 種類のリソース モデルが存在します。
ジョブには「Standard」と、よりコストパフォーマンスに優れた「Standard V2」という 2 つの価格モデルが提供されています。 現在は Azure Portal で Azure Stream Analytics を作成すると Standard V2 の料金が適用されるようです。
今回のアップデートで Azure Stream Analytics ジョブに対応する azurerm_stream_analytics_job
リソースが価格プラン (sku_name) を指定できるようになって、Terraform からも Azure Stream Analytics ジョブの Standard V2 を作成できるようになりました。
今回はアップデート確認は以上です。 ARO や Chaos Studio、Elastic SAN といった新しめのサービスに AzureRM プロバイダが対応してきていて今後も楽しみですね。
【PR】
私達 ACS 事業部は Azure・AKS などのクラウドネイティブ技術を活用した内製化のご支援をしております。
一緒に働いていただける仲間も募集中です!
まだまだ組織規模拡大中なので、ご興味持っていただけましたらぜひお声がけください。
我々の事業部の CultureDeck はコチラ。