はじめに
ネットワーク周りの学習で学んだ内容のアウトプットです。
Azureベースの内容になっています。
完全にメモですので、悪しからず。
※誤りありましたら、ご指摘いただけますと幸いです。
Vnet
Vnet(仮想ネットワーク)は、Azureクラウド内に作成される仮想的なネットワークのこと。
オンプレミスのネットワークと同様に、IPアドレス空間を定義することで、サブネットに分割して、各種リソースを配置することができる。
主な役割
- IPアドレスの管理:プライベートIPアドレスを範囲で割り当て(CIDR: 10.0.0.0/16 など)。
- セキュリティ:後述するサブネットにNSG(ネットワークセキュリティグループ)やファイアウォールを使用してトラフィック(送受信されるデータ)のフィルタリングも可能。
- 通信の分離と接続:サブネットを分けて用途ごとに整理したり、オンプレ環境や他のVNetとも接続できる。
一般的な使用例
- 複数のVMを同じネットワークに配置して相互通信を可能にする。
- ハイブリッドなクラウド環境を構築する。(Azureとオンプレミス環境の接続)
- PaaSのサービス(App Service, Functions など)がVNetに入ることで、DBや内部システムと安全に通信できる。
サブネット
サブネットは、仮想ネットワーク(VNet)を小さな単位に分けたもので、用途ごとにリソースを整理できる。
例えば、VNetのCIDRブロック(例:10.0.0.0/16)を小さなCIDRブロック(例:10.0.1.0/24)に分割したもの、これがサブネットになる。
主な役割
- リソースの論理的なグループ化:サーバー、データベース、Webサービスなどを用途別に分けられる。
- セキュリティの強化:サブネットごとにNSG(ネットワークセキュリティグループ)を適用し、トラフィックを制御できる。
- トラフィック管理:UDR(ユーザー定義ルート)を使用して、特定のサブネットのトラフィック制御も可能。
一般的な使用例
- Webサーバーとアプリケーションサーバー、DBサーバーを異なるサブネットに配置することで、フロントとバックを分離。
- 開発/テスト/本番環境というように、環境ごとに異なるサブネットを割り当てる。
- VPN GatewayやAzure Firewallを配置した、ゲートウェイ用サブネットを作成。
- Bastion(安全なリモート接続用、いわゆる踏み台サーバ)やログ収集用のVMを専用サブネットに置くケースもあり。
NIC
NIC(ネットワークインターフェースカード)は、Azureの仮想マシン(VM)やコンテナがVNet/サブネットに接続するためのインターフェース。
主な役割
- ネットワーク接続: VMをVNetやサブネットに接続する。
- IPアドレスの割り当て: VMにプライベートIPアドレス(必須)や、必要に応じてパブリックIPアドレスを関連付ける。
補足
ここで、パブリックIPアドレスを関連付ける、と書いているのは、パブリックIPリソースは、Azure上では独立したオブジェクトであるため。このリソースをNIC(のIP構成)にアタッチすることで、NICのプライベートIPとペアになり、外部通信が可能になるというわけである。
- ネットワークセキュリティ: NIC単位で NSG を関連付けることも可能。(前述ではサブネット単位でサブネットを設定していた)
一般的な使用例
- 複数のNICをVMに接続し、異なるサブネットとの通信を可能にする、マルチNIC構成をとる。
- 管理トラフィックとデータトラフィックを分離するために別々のNICを使用。
- 複数のNICを使用して、ネットワーク冗長性を確保し、可用性を高める。
VM
VM(仮想マシン)は、物理的なコンピューターのハードウェアをソフトウェアで模倣したようなもの。Azure内でのIaaS(Infrastructure as a Service) の代表格で、オンプレのサーバーをクラウド上に持ってくるイメージ。
主な役割
- コンピューティングリソースの提供: アプリケーション、データベース、Webサーバーなどを実行するための環境を提供する。
- スケーラビリティ: 需要に応じてリソースをスケールアップ(より強力なVMに変更)またはスケールアウト(VMの数を増やす)できる。
- 可用性: 複数のVM間で負荷分散を行い、高可用性を実現。
- カスタマイズ可能性:PaaSよりも自由度が高く、さまざまなOSやサイズ、構成をサポートし、各種要件に合わせてカスタマイズできる。
一般的な使用例
- Webアプリケーションやサイトのホスティング。
- DBサーバーとして、PaaSのSQL Databaseを使わず、PostgreSQL / MySQL / Oracle / SQL Server 等をVMに直接インストールするケース。
- アプリケーション開発環境や検証環境として使用。
- 定期的なデータ処理や計算処理のタスクの実行等、バッチ処理・機械学習などの計算リソースに。
プライベートIPアドレス
プライベートIPアドレスは、Azureの仮想ネットワーク(VNet)内でリソースに割り当てられる内部IPアドレス。
RFC 1918で定義されたプライベートIPアドレス範囲(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)から割り当てられることが一般的。
主な役割
- **内部通信の識別子:**VNet内やオンプレLAN内で、リソースを一意に識別するための住所となる。
- **セキュリティの確保:**インターネットから直接アクセスできないため、セキュリティを強化する。
- **NAT:**NATを介してパブリックIPアドレスと変換することで、インターネットへのアウトバウンド接続を可能にする。
一般的な使用例
- WebサーバーがVNet内の別VMのDBサーバーにアクセスする際、DBサーバーのプライベートIPを使用。(外部から直接触れられない安全な構成)
- パブリックには公開せず、内部だけで複数VMにトラフィックを分散させる、内部ロードバランサーとして使用。(VM1、VM2に分散させるような形)
- オンプレミス環境とAzure環境間の通信時、VPN/ExpressRouteを介したハイブリッド接続に使用。
- PaaSサービスのVNet統合時に、内部リソースを直接参照する際に使用。
補足
VMはIaaSであり、ユーザーに割り当てられた独立環境であり、作成時にどのVNet・サブネットに所属するかを決めるため、同じVNet内のリソースとはプライベートIPで直接通信が可能。
一方でApp Service等はPaaSであり、Microsoftが提供するマネージド環境で動作する。デフォルトではVNetの外側に置かれているため、プライベートIPしか持たないリソースには届かない。そこで、VNet統合が必要となるという事である。
パブリックIPアドレス
パブリックIPアドレスは、インターネット上で一意に識別可能なIPアドレスで、インターネット経由でリソースにアクセスするために使用。
プライベートIPはLAN/VNet内だけで通じる住所ですが、パブリックIPは「外の世界(インターネット)」で通じる住所である。
主な役割
- インターネットからのアクセス窓口: 外部ユーザーがAzureリソースにアクセスするための「入口」になる。
- Azureリソースから外部への通信: VMなどがインターネットへ出るとき、パブリックIPがNATで使われる。
- 固定アドレスの提供: サービスによっては「特定のIPからしか接続を許可しない」ケースがあるが、AzureのパブリックIPは「静的」に割り当て可能なので、ファイアウォールや接続元制御に使える。
一般的な使用例
- WebサーバーやAPIの公開時のIPアドレス指定。
- パブリックロードバランサーとすることで、外からは1つのパブリックIPにアクセスすれば、Azure側で裏のVM群に振り分けてくれる。
- 外部サービスに「接続元IPを登録して認証する」仕組みがある場合、 Azure VMやApp Serviceからの通信に 固定パブリックIP を割り当てて利用。
NAT(SNAT, DNAT)
NAT(Network Address Translation)は、IPアドレスを変換する技術で、主にプライベートネットワークとパブリックネットワーク間の通信を可能する。
主な役割
-
SNAT(Source Network Address Translation):内部ネットワークからインターネットへの通信時に送信元IPアドレス(プライベートIPアドレス)をパブリックIPアドレスに変換する。
- 使用例:NAT Gateway が 送信元IPをパブリックIPアドレスに変換して外部に出す
-
DNAT(Destination Network Address Translation):インターネットから内部ネットワークへの通信時に宛先IPアドレス(パブリックIPアドレス)を内部のプライベートIPアドレス変換する。
- 使用例:Azure Firewall / Load Balancer が 宛先を VM (プライベートIPアドレス) に変換
- IPアドレスの節約:複数の内部リソースが単一のパブリックIPアドレスを共有することが可能に。
- セキュリティ強化:内部ネットワークのIPアドレスが外部に公開されないため、直接攻撃のリスクを低減。
一般的な使用例
- Azure NAT GatewayにパブリックIPアドレスを付与することで**、**大規模なアウトバウンド接続管理を可能にし、信頼性の高いアウトバウンドインターネット接続を提供する。
- ロードバランサーとして、着信トラフィックをバックエンドプールの複数のVMに分散させる際にDNATを使用する。
- VPN Gatewayを使用することで、オンプレLAN ⇔ Azure VNetでのプライベートIP通信を可能にする。