関連ページ
- コンソール画面を一切見ない、TerraformによるAzureの勉強
- compute
- database
- iam
- network
- storage
👀 概要
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