Azure Virtual Network について調べる
Azure Virtual Network (VNet) は、Azure でのプライベート ネットワークのための基本的な構成要素です。 VNet を使用すると、オンプレミスのネットワークに似た複雑な仮想ネットワークを構築でき、さらにスケール、可用性、分離などの Azure インフラストラクチャの他のベネフィットがあります。
作成したそれぞれの VNet には独自の CIDR ブロックがあり、CIDR ブロックが重複しない限り、他の VNet やオンプレミス ネットワークにリンクすることができます。 また、VNet の DNS サーバー設定を制御でき、仮想ネットワークをサブネットにセグメント化できます。
Azure Virtual Network の機能
Azure VNet を使用することで、Azure のリソースは、相互に、インターネットと、そしてオンプレミス ネットワークと、安全に通信できるようになります。
- インターネットとの通信。 VNet 内のすべてのリソースにおいて、既定でインターネットへの送信方向の通信が可能です。 リソースへの受信通信は、リソースにパブリック IP アドレスまたはパブリック ロード バランサーを割り当てることによって可能になります。 パブリック IP またはパブリック ロード バランサーを使用して、送信接続を管理することもできます。
- Azure リソース間の通信。 Azure リソースの通信を可能にする主要なメカニズムは、VNet、VNet サービス エンドポイント、VNet ピアリングの 3 つです。 Virtual Network は、VM だけではなく、App Service Environment、Azure Kubernetes Service、Azure Virtual Machine Scale Sets など、その他の Azure リソースも接続できます。 サービス エンドポイントを使用して、Azure SQL データベースやストレージ アカウントなど、他の Azure リソースの種類に接続することができます。 VNet を作成するとき、ご使用のサービスと VNet 内の VMが、クラウド内で互いに直接かつ安全に通信することができます。
- オンプレミス リソース間の通信。 データ センターを安全に拡張します。 次のオプションを使用して、オンプレミスのコンピューターとネットワークを仮想ネットワークに接続できます: ポイント対サイト仮想プライベート ネットワーク (VPN)、サイト間 VPN、Azure ExpressRoute。
- ネットワーク トラフィックのフィルター処理。 ネットワーク セキュリティ グループとネットワーク仮想アプライアンスの任意の組み合わせを使用して、サブネット間のネットワーク トラフィックをフィルター処理できます。
- ネットワーク トラフィックのルーティング。 Azure では、既定で、サブネット、接続されている仮想ネットワーク、オンプレミス ネットワーク、およびインターネット間でトラフィックがルーティングされます。 ルート テーブルまたは Border Gateway Protocol (BGP) ルートを実装して、Azure によって作成される既定のルートをオーバーライドできます。
Azure Virtual Network の設計に関する考慮事項
アドレス空間とサブネット
リージョンごとのサブスクリプションごとに、複数の仮想ネットワークを作成できます。 各仮想ネットワーク内には複数のサブネットを作成することができます。
仮想ネットワーク
VNet を作成するときは、RFC 1918 で列挙されたアドレス範囲を使用します。 これらのアドレスは、プライベートでルーティング不可能なアドレス空間用です。
- 10.0.0.0 - 10.255.255.255 (10/8 プレフィックス)
- 172.16.0.0 - 172.31.255.255 (172.16/12 プレフィックス)
- 192.168.0.0 ~ 192.168.255.255 (192.168/16 プレフィックス)
さらに、次のアドレス範囲は追加できません。
- 224.0.0.0/4 (マルチキャスト)
- 255.255.255.255/32 (ブロードキャスト)
- 127.0.0.0/8 (ループバック)
- 169.254.0.0/16 (リンク ローカル)
- 168.63.129.16/32 (内部 DNS)
ユーザーがプロビジョニングしたアドレス空間のプライベート IP アドレスが、Azure によって、仮想ネットワーク内のリソースに割り当てられます。 たとえば、サブネットのアドレス空間が 192.168.1.0/24 の VNet 内に VM をデプロイした場合、VM には 192.168.1.4 などのプライベート IP が割り当てられます。 Azure では、各サブネット内の合計 5 つの IP アドレスのために最初の 4 つの IP アドレスと最後の IP アドレスが予約されます。 これらのアドレスは x.x.x.0 から x.x.x.3 とサブネットの最後のアドレスです。
たとえば、IP アドレスの範囲が 192.168.1.0/24 の場合、次のアドレスが予約されます。
- 192.168.1.0
- 192.168.1.1: (既定のゲートウェイ用に Azure によって予約されています。)
- 192.168.1.2、192.168.1.3: (Azure DNS IP を VNet 空間にマッピングするために Azure によって予約されます。)
- 192.168.1.255: (ネットワーク ブロードキャスト アドレス。)
仮想ネットワークの実装を計画するときは、次の点を考慮する必要があります:
- アドレス空間が重複しないようにします。 VNet アドレス空間 (CIDR ブロック) が組織の他のネットワークの範囲と重複しないようにします。
- セキュリティの分離は必要か?
- IP アドレス指定の制限を軽減する必要はあるか?
- Azure VNet とオンプレミス ネットワークの間に接続はありますか?
- 管理のために必要な分離はあるか?
- 独自の VNet を作成する Azure サービスを使用しているか?
サブネット
サブネットは、VNet 内の IP アドレスの範囲です。 VNet を異なるサイズの複数のサブネットに分割し、サブスクリプションの制限内での組織化とセキュリティに必要なだけいくつでもサブネットを作成できます。 その後、特定のサブネット内に Azure リソースをデプロイできます。 従来のネットワークのように、サブネットでは、組織の内部ネットワークに適したセグメントに VNet アドレス空間をセグメント分割することができます。 サポートされる最小の IPv4 サブネットは /29、最大は /2 です (CIDR サブネット定義を使用)。 IPv6 のサブネットは、正確に /64 のサイズである必要があります。 サブネットの実装を計画する場合は、次の点を考慮してください:
- サブネットごとに、クラスレス ドメイン間ルーティング (CIDR) 形式で指定された、一意のアドレス範囲が必要です。
- 特定の Azure サービスには、独自のサブネットが必要です。
- トラフィック管理にサブネットを使用できます。 たとえば、サブネットを作成し、ネットワーク仮想アプライアンス経由でトラフィックをルーティングできます。
- 仮想ネットワーク サービス エンドポイントを使用して、Azure リソースへのアクセスを特定のサブネットに制限することができます。 複数のサブネットを作成し、一部のサブネットではサービス エンドポイントを有効にして、それ以外では無効にすることができます。
名前付け規則を決定する
Azure ネットワークの設計の一部として、リソースの名前付け規則を計画することが重要です。 有効な名前付け規則は、各リソースに関する重要な情報からリソース名を作成します。 適切な名前にすると、リソースの種類、それに関連付けられたワークロード、そのデプロイ環境、およびそれをホストしている Azure リージョンをすばやく識別できます。 たとえば、米国西部リージョンに存在する運用 SharePoint ワークロードのパブリック IP リソースは、pip-sharepoint-prod-westus-001 といったものになります
すべての Azure リソースの種類には、リソース名が一意である必要があるレベルを定義するスコープがあります。 リソースには、そのスコープ内の一意の名前が必要です。 スコープを指定できるレベルは、管理グループ、サブスクリプション、リソース グループ、リソースの 4 つです。 スコープは階層的であり、階層の各レベルによってスコープがより具体的になります。
たとえば、仮想ネットワークにはリソース グループ スコープがあります。つまり、指定されたリソース グループには vnet-prod-westus-001 という名前の 1 つのネットワークだけが存在できます。 他のリソース グループは vnet-prod-westus-001 という名前の独自の仮想ネットワークを持つことができます。 サブネットはスコープが仮想ネットワークに設定されるため、仮想ネットワーク内の各サブネットは個別の名前を持つ必要があります。
リージョンとサブスクリプションについて
すべての Azure リソースは、Azure リージョンと Azure サブスクリプションの内部に作成されます。 リソースを作成できるのは、リソースと同じリージョンおよびサブスクリプションに存在する仮想ネットワーク内だけです。 ただし、異なるサブスクリプションおよびリージョンに存在する仮想ネットワークに接続することはできます。 インフラストラクチャ、データ、アプリケーション、エンド ユーザーに関連して Azure ネットワークを設計するときは、Azure リージョンを考慮することが重要です。
サブスクリプションの制限内であれば、各サブスクリプション内に必要なだけいくつでも仮想ネットワークをデプロイできます。 たとえば、グローバルなデプロイを使用する一部の大規模な組織には、リージョン間で接続されている複数の仮想ネットワークがあります。
Azure 可用性ゾーン
Azure 可用性ゾーンを使用すると、リージョン内で一意の物理的な場所を定義できます。 それぞれのゾーンは、独立した電源、冷却手段、ネットワークを備えた 1 つまたは複数のデータセンターで構成されています。 Azure サービスの高可用性を確保するように設計された、リージョン内での Availability Zones の物理的な分離により、アプリケーションとデータがデータセンターの障害から保護されます。
Azure ネットワークを設計するときは可用性ゾーンを考慮し、Availability Zones に対応するサービスを計画する必要があります。
Availability Zones に対応している Azure サービスは、次の 3 つのカテゴリに分類されます。
- ゾーン サービス。 リソースは特定のゾーンにピン留めできます。 たとえば、仮想マシン、マネージド ディスク、または標準 IP アドレスは、特定のゾーンに固定できます。 この計画により、1 つ以上のリソース インスタンスをゾーン間に分散させることで、回復性を高めることができます。
- ゾーン冗長サービス。 リソースは、ゾーン間で自動的にレプリケートまたは分散されます。 Azure によってデータが 3 つのゾーンにレプリケートされるので、あるゾーンで障害が発生しても、その可用性に影響を及ぼすことはありません。
- 非リージョン サービス。 サービスは Azure の地域から利用でき、ゾーン全体の停止に対する回復性があります。