azurerm_subnetでサブネットを構築する【Azure Terraform】

関連ページ

👀 概要

azurerm_subnetは仮想ネットワーク(VNet)をさらに細かく分割するための論理的な区切りで、AWSの「サブネット」に相当します。 Azure上のリソースは、このサブネットの中に配置されます。

👦 対象読者

  • TerraformでAzureのネットワーク設計を行いたいエンジニア。
  • VNetの中に複数の役割(Web, DB等)を持たせたネットワークを構築したい方。

🔗 参考リンク

内容

コード例

サブネットを作成するには、親となるリソースグループ名とVNet名が必要です。

resource "azurerm_resource_group" "example" {
  name     = "example-resources"
  location = "Japan East"
}

resource "azurerm_virtual_network" "example" {
  name                = "example-vnet"
  address_space       = ["10.0.0.0/16"]
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
}

# 下が今回解説するリソース
resource "azurerm_subnet" "example" {
  name                 = "internal-subnet"
  resource_group_name  = azurerm_resource_group.example.name
  virtual_network_name = azurerm_virtual_network.example.name
  address_prefixes     = ["10.0.1.0/24"]
}

特筆するべき引数

  • virtual_network_name : 所属させるVNetの名前。
  • address_prefixes : サブネットで使用するIPアドレス範囲。リスト形式 [] で複数指定できるが、通常は1つの範囲を指定します。
  • service_endpoints : Azure SQLやStorageなどのサービスに対してインターネットを経由せずに直接アクセスさせる場合に指定します(例: ["Microsoft.Sql", "Microsoft.Storage"]
  • delegation : サブネットを特定のサービス(Azure App ServiceやNetApp Filesなど)専用として「委任」する場合に使用します。

service_endpointsについて

service_endpointsはAWSのVPC Endpointに非常に近いです。 private subnet内のリソースからS3やDynamoDBにアクセスする際に VPC Endpointが必要だったように、 Azureでもprivate subnetから blob storage等にアクセスする際に service_endpoints が必要になります。

決定的な違いは、実装の方法です。新しいリソースを追加するのではなく サブネットへ service_endpoints オプションを追加するだけで対応できます。

以下設定例です。

  • Microsoft.Storage : ストレージ
  • Microsoft.AzureActiveDirectory : Active Directory (Entra ID)
  • Container Registry : コンテナレジストリ

page:https://minegishirei.hatenablog.com/entry/2026/03/20/203245

Dear My Frends.: 個人開発宣伝ラボ - 個人開発者が間違った施策で時間を溶かさないための、心理学と実務知見のナレッジ共有コミュニティ