AWS Virtual Private CloudとAzureのNATを比較する|azコマンドで設定する

運営:リナックスマスター.JP(代表 宮崎智広)
HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > Azure > AWS Virtual Private CloudとAzureのNATを比較する|azコマンドで設定する
「AWSのVPCは理解できているのに、AzureのVNetは何が違うのか」
「NATゲートウェイの設定でハマった。ルートテーブルを変えても通信できない」

AWSとAzureではネットワークサービスに似た名称が多く存在しますが、設計の細部はかなり異なります。特にプライベートサブネットとNATゲートウェイの構成方法は、AWSとは発想が違うため混乱しやすいポイントです。

この記事では、AWS Virtual Private Cloud(VPC)とAzureのVirtual Network(VNet)を比較しながら、azコマンドを使ったプライベートサブネット構築とNATゲートウェイ設定の手順を解説します。想定環境はAzure CLI(az)が利用できるLinux端末(RHEL 9系/Ubuntu 24.04 LTSを含む)で、AWSのVPC基礎知識がある方を対象とします。

この記事のポイント

・Azure VNetはAWS VPCに対応するが、IGW(Internet Gateway)は存在しない
・Azure NATゲートウェイはルートテーブルでなくサブネットに直接関連付ける
・azコマンドでVNet・サブネット・NATゲートウェイを30分で構築できる
・AWSとAzureの対応表で「あのサービスはAzureでは何?」が一目でわかる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

AWS VPCとAzure VNetの基本概念の違い

AWSのVirtual Private Cloud(VPC)は、AWS上に作る論理的に分離されたネットワーク空間です。VPCの中にサブネットを切り、Internet Gateway(IGW)をアタッチしてルートテーブルで誘導すればパブリックサブネット、NAT Gatewayを経由すればプライベートサブネットのEC2がインターネットへ送信できる、という設計です。

Azureの対応物はVirtual Network(VNet)です。VNetの中にサブネットを切る点はAWSと同じですが、以下の3点が大きく異なります。

・Internet Gatewayが存在しない:AzureではVNet内のVMにパブリックIPを割り当てれば自動的にインターネット通信が可能です。AWSのようにIGWを別途アタッチしてルートテーブルに追記する操作は不要です
・デフォルトアウトバウンドは2025年9月30日以降に廃止:以前のAzureでは、NATゲートウェイ未設定のサブネットでも「デフォルトアウトバウンドアクセス」という仕組みでインターネットへの送信が可能でした。しかし2025年9月30日以降に作成された新規VMにはこの仕組みが適用されなくなりました。現在は本番環境で明示的にNATゲートウェイを設定することが必須です
・NATゲートウェイの関連付け先がサブネット:AWSのNAT Gatewayはパブリックサブネット内に配置し、プライベートサブネットのルートテーブルで参照します。AzureのNATゲートウェイはルートテーブルを経由せず、サブネットに直接関連付けます

AWS VPCとAzure VNetのサービス対応表

主要なネットワークサービスの対応関係をまとめます。

AWSサービス Azure対応サービス 主な違い
VPC Virtual Network(VNet) 概念はほぼ同じ
Subnet Subnet AzureはデフォルトSNATが2025年9月に廃止
Internet Gateway なし(PublicIPで代替) AzureはVM個別にPublicIPを割り当て
NAT Gateway NAT Gateway AzureはサブネットへDirect関連付け
Route Table Route Table(UDR) AzureはNATGWへの経路追記不要
Security Group Network Security Group(NSG) NSGはサブネット/NICに付与
VPC Peering VNet Peering 概念はほぼ同じ

azコマンドでVNetとサブネット・NATゲートウェイを構築する

Azureのネットワーク構築はAzure CLIで完結できます。以下の手順で、VNet・サブネット・NATゲートウェイを作成し、プライベートサブネットのVMがNATゲートウェイ経由でインターネットへ送信できる構成を組みます。

Azureのネットワーク設計をLinuxエンジニアの視点から体系的に学びたい場合は、azure.linuxmaster.jpで基礎から実践まで解説しています。

1. リソースグループとVNetを作成する

まずリソースグループを作成します。リソースグループはAWSのタグ管理に近い概念ですが、Azureではリソースを束ねる必須の入れ物です。VNet作成時にリソースグループとリージョンを指定します。

# リソースグループを作成(リージョン: 東日本) az group create --name myNetRG --location japaneast # VNetを作成(アドレス空間: 10.0.0.0/16) az network vnet create \ --name myVNet \ --resource-group myNetRG \ --location japaneast \ --address-prefixes 10.0.0.0/16

出力例(環境により異なります):

{ "newVNet": { "addressSpace": { "addressPrefixes": ["10.0.0.0/16"] }, "location": "japaneast", "name": "myVNet", "provisioningState": "Succeeded" } }

2. パブリック・プライベートサブネットを作成する

VNetの中にサブネットを作成します。AzureではIGWへのルートの有無ではなく、パブリックIPの有無とNATゲートウェイの設定でパブリック/プライベートを区別します。

# パブリックサブネット(VMにPublicIPを割り当てる側) az network vnet subnet create \ --name publicSubnet \ --resource-group myNetRG \ --vnet-name myVNet \ --address-prefixes 10.0.1.0/24 # プライベートサブネット(NATゲートウェイを関連付ける側) az network vnet subnet create \ --name privateSubnet \ --resource-group myNetRG \ --vnet-name myVNet \ --address-prefixes 10.0.2.0/24

3. NATゲートウェイを作成してプライベートサブネットに関連付ける

AzureのNATゲートウェイ作成は①パブリックIP作成→②NATゲートウェイ作成→③サブネットへの直接関連付けの3ステップです。AWSのように「パブリックサブネット内に配置」「ルートテーブルでプライベートサブネットの0.0.0.0/0をNAT GWへ」という設定は不要です。

# ① Standard SKUのパブリックIPを作成(NATゲートウェイにはStandard SKU必須) az network public-ip create \ --name myNatGwPIP \ --resource-group myNetRG \ --sku Standard \ --allocation-method Static \ --location japaneast # ② NATゲートウェイを作成 az network nat gateway create \ --name myNatGw \ --resource-group myNetRG \ --location japaneast \ --public-ip-addresses myNatGwPIP \ --idle-timeout 10 # ③ プライベートサブネットにNATゲートウェイを直接関連付ける(ルートテーブル変更は不要) az network vnet subnet update \ --name privateSubnet \ --resource-group myNetRG \ --vnet-name myVNet \ --nat-gateway myNatGw

③の操作がAWSとの最大の違いです。AWSではルートテーブルに「0.0.0.0/0 → nat-xxxxxxxx」のエントリを追加しますが、AzureはサブネットのプロパティにNATゲートウェイを直接バインドします。ルートテーブルの編集は不要です。

4. 設定内容を確認する

サブネットへのNATゲートウェイ関連付けが正しいことを確認します。

# サブネットのNATゲートウェイ関連状態を確認 az network vnet subnet show \ --name privateSubnet \ --resource-group myNetRG \ --vnet-name myVNet \ --query "{natGateway:natGateway.id, addressPrefix:addressPrefix}" \ --output table

出力例(環境により異なります):

NatGateway AddressPrefix ---------------------------------------------------------------------------------- -------------- /subscriptions/xxxxxxxx-xxxx/resourceGroups/myNetRG/providers/Microsoft.Network/natGateways/myNatGw 10.0.2.0/24

`NatGateway` 列にリソースIDが表示されていれば、NATゲートウェイの関連付けが完了しています。

AWS NAT GatewayとAzure NATゲートウェイの設計上の3つの違い


・配置場所の違い:AWSのNAT GatewayはパブリックサブネットのAZ内に配置します。マルチAZ構成では可用性確保のためにAZごとに1つ作成するのが一般的です。AzureのNATゲートウェイはAvailability Zone(AZ)を指定してゾーン冗長(zone-redundant)にする設定もあり、AZに依存しない設計も可能です
・経路制御の違い:AWSはルートテーブルでの0.0.0.0/0の誘導が必須です。AzureはサブネットへのDirect関連付けなので、ルートテーブルの修正が不要です。誤ってルートテーブルに不要なエントリを追加するミスが起きにくい点はAzureの利点といえます
・IPプレフィックスのサポート:AzureのNATゲートウェイはPublic IP Prefixと組み合わせて固定されたIPアドレス範囲からNATできます。外部サービスのIPホワイトリスト登録が必要な場合に便利な機能です

よくあるエラーと対処法

「Cannot use Basic SKU public IP」エラー

NATゲートウェイに関連付けるパブリックIPはStandard SKUが必須です。Basic SKUのIPを指定するとエラーになります。

# NG: Basic SKU(NATゲートウェイへの関連付け不可) az network public-ip create --name myPIP --resource-group myNetRG --sku Basic # OK: Standard SKU(Static固定) az network public-ip create \ --name myPIP \ --resource-group myNetRG \ --sku Standard \ --allocation-method Static

NATゲートウェイ作成後もアウトバウンド通信が通らない

NATゲートウェイの作成が完了しても、プライベートサブネットとの関連付けが漏れているケースがあります。`az network vnet subnet show` でサブネットの `natGateway` フィールドが `null` の場合は `az network vnet subnet update --nat-gateway` で関連付けを実施します。

また、プライベートサブネット内のVMにNSG(ネットワークセキュリティグループ)でアウトバウンドが制限されていないかも合わせて確認してください。

「Subscription not registered for resource type Microsoft.Network/natGateways」

サブスクリプションでリソースプロバイダーが有効化されていない場合に発生します。以下のコマンドで有効化します。

# リソースプロバイダーを登録 az provider register --namespace Microsoft.Network # 登録状態を確認(Registered になるまで数分かかることがある) az provider show --namespace Microsoft.Network --query registrationState

本記事のまとめ

AWS Virtual Private CloudとAzureのVNet・NATゲートウェイの比較と、azコマンドによる構築手順の要点をまとめます。

比較項目 AWS VPC Azure VNet
ネットワーク空間 VPC(CIDR指定) VNet(address-prefixes指定)
インターネット接続(VM) IGWをVPCにアタッチ必須 パブリックIPのみで可(IGW不要)
プライベートサブネット送信 NAT Gatewayをルートテーブルで参照 NATゲートウェイをサブネットに直接関連付け
NAT用IP SKU Elastic IP(Static固定) Standard SKUのパブリックIPが必須
デフォルトアウトバウンド プライベートサブネットはブロック 2025年9月30日以降の新規VMは廃止
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、Azureでのサーバー構築をLinuxエンジニアの視点から学べるAzure実践講座(azure.linuxmaster.jp)をご用意しています。VNetの設計からVMデプロイ・セキュリティ設定まで、ハンズオン形式で基礎から体系的に習得できます。>>詳細はこちら

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

運営

リナックスマスター.JP(代表 宮崎智広)

株式会社イーネットマーキュリーが運営するLinux教育サイトです。代表の宮崎智広は現役のLinuxサーバー管理者として20年以上の実務経験を持ち、累計3,100名以上のエンジニアを指導してきました。実践型のLinuxセミナーや無料マニュアルの配布を通じてLinux人材の育成に取り組んでいます。