Azure上に独自のインターネットを構築してみる
<1.概要>
Azure 仮想ネットワークとは、Azureのデータセンター上に独自のネットワークを構築できるサービスです。
また、仮想ネットワークの設定より、ゲートウェイを作成することでAzure外部のネットワークとシームレスに接続することができます。
よっては、Azure上に作成した仮想ネットワーク上に仮想サーバーと必要なサーバーアプリケーションをデプロイして、自社の回線経由で利用可能となったアプリケーションを使用することができます。また、追加設定を行うことで、他の仮想マシンやオンプレミスサーバーと接続・連携を取ることも可能です。
<2.ネットワークリソース>
- 1.仮想ネットワーク(VNet)
- 2.サブネット
- 3.ネットワークインターフェイス(NIC)
- 4.パブリックIPアドレス
- 5.プライベートIPアドレス
- 6.ネットワークアドレス変換機能(NAT)
- 7.ネットワークセキュリティグループ(NSG)
Azure上にユーザーが独自のネットワークを構築できるサービスです。作成できた仮想ネットワーク上に、仮想マシンやサーバーアプリケーションをデプロイすることでAzure上でのシステムとしての運用が行えます。また、複数のシステムを運用する場合は、運用フェーズにおいて、システムごとの調整が必要ケースが多いです。そのため、事前にVNetを複数用意しておくと、作業効率と時短に繋がります。
VNetを細かく分散させた小さなVNetです。仮想マシン等のVNetに対応したリソースは、サブネットに所属することでVNetを使った通信利用が可能になります。もちろん仮想マシンはサブネットの接続が必須条件になりますのでご注意ください。
NICには各1つのIPアドレスが割り当てられます。割り当てはDHCPによる動的な割り当てと固定的な割り当てを選択できます。
インターネット側からアクセスできるように、仮想マシンに対して割り当てられたグローバルIPアドレスのことです。インターネットに直接公開するサービスをユーザーに提供する場合は、このIPアドレスを1つ維持用は割り当てる必要があります。仮に割り当てられなかった場合、外部接続やSSH接続(Linuxでの接続)をすることができないのでご注意ください。
仮想マシンのNICに割り当てられるローカルなIPアドレスのことです。一般的には「10.0.0.0./8」や「172.16.0.0/20」等の範囲ないから割り当てられます。
仮想マシンから発信されたインターネット向けのパケットに対しネットワークアドレスやポート番号等の変換を行い、インターネット側へ中継する機能です。仮想ネットワークやサブネット上のホストはプライベートIPアドレスを所持しているため、ユーザー側のプライベートIPアドレス情報をそのまま送信することはできません。
ネットワーク上を通過するパケットに対するパケットフィルターです。NSGはサブネットかネットワークインターフェースのいずれかに対して適用されます。デフォルトは後者のネットワークインターフェースに適用化されます。
<3.ネットワークサービス>
以下はAzure上のネットワークサービスの主な機能になります。使用用途は単独や組み合わせで使用することが可能となります。
- 1.接続サービス
- 2.アプリケーションの保護
- 3.アプリケーション配信サービス
- 4.ネットワークの監視
Azureリソース間の接続、オンプレミスネットワークからの接続やAzureでのブランチ間接続を実現するサービスです。
サービス | 使用理由 | シナリオ |
・Virtual Network | ・Azureリソースの一致、インターネット、オンプレミスネットワークへの接続を可能にするため。 | ・ネットワークトラフィックをフィルター処理します。 |
・ネットワークトラフィックをルーティングする。 | ||
・リソースへのアクセス制限をする。 | ||
・仮想ネットワークに接続する。 |
・ExpressRoute | ・接続プロバイダーが提供するプライベート接続を介して、オンプレミスネットワークをMicrosoftクラウド上へと拡張する。 | ・回線の作成と変更。 |
・回線ピアリングの作成と変更。 | ||
・VNetへのリンク。 | ||
・ルートフィルムを構築して管理。 |
・VPN Gateway | ・Azure Virtual Networkとオンプレミスの場所の間で、パブリックインターネットを介して暗号化したトラフィックを送信します。 | ・サイト間の接続。 |
・VNet間の接続 | ||
・ポイント対サイト接続 |
・Virtual WAN | ・Azureへのブランチ接続および、Azure経由のブランチ接続の最適化と自動化を行います。リージョンはブランチの接続先として機能をします。 | ・サイト管接続 |
・ExpressRoute接続 |
・Azure DNS | ・Microsoft Azureインフラストラクチャーを利用して名前の解決を実行するDNSドメインのホストを行います。 | ・Azure DNSでドメインホストを実行する。 |
・webアプリのDNSレコードの作成。 | ||
・Traffic Managerのエイリアスレコードの作成。 | ||
・パブリックIPアドレスのエイリアスレコードの作成。 | ||
・ゾーンリソースレコードのエイリアスコードの作成。 |
・Azure Bastion | ・TLSを使用してAzure portalで直接仮想マシンへのシームレスなRDP/SSH接続を構成します。その際にパブリックIPアドレスは不要です。 | ・ホストの作成。 |
・SSHを利用してLinux VMへの接続。 | ||
・RDPを利用してWindowsへの接続。 |
・Virtual Network NAT Gateway | ・仮想マシンに送信接続する際に提供するNATGatewayを作成します。 | ・NATGatewayを作成します。 |
・Azure Peering Server | ・サービスプロバイダーと協力して、パブリックネットワーク経由でMicrosoftクラウドへのルーティングを行います。 | ・Azure Peering Serverを登録します。 |
保護を行う場合は、以下のネットワークサービスを「単独」か「組み合わせ」で行います。
サービス | 使用理由 | シナリオ |
・DDoS Protection | ・過剰なIPトラフィックチャージからアプリケーションを保護することで可用性を高められます。 | ・DDoS Protectionの管理を行います。 |
・webアプリケーションファイアウォール | ・Application GatewayでのAzure WAFは、パブリックならびにプライベートでのアドレス空間のエンティティをリージョン別に保護します。 | ・ボット保護規制を構成します。 |
・Front DoorでのAzure WAFはパブリックエンドポイントをネットワークエッジで保護します。 | ・カスタム応答コードの構成を行います。 | |
・IP構成規制の構成を行います。 | ||
・レート制限の構成を行います。 |
・Azure Firewall | ・Azure Virtual Networkリソースを保護するクラウドベースのマネージドネットワークセキュリティサービスです。 | ・Azure FirewallをVNetにデプロイできます。 |
・Azure Firewallをハイブリッドネットワークにデプロイします。 | ||
・Azure Firewall DNATで受信トラフィックをフィルター処理できます。 |
・ネットワークセキュリティグループ | ・すべてのネットワークトラフィックフローを対象にVM/サブネットでエンドノードを細かく分散制御します。 | ・ネットワークセキュリティグループを介してネットワークトラフィックをフィルター処理します。 |
・仮想ネットワークサービスエンドポイント | ・一部のサービスリソースへのネットワークアクセスをサブネットで制限できます。 | ・PaaSリソースへのネットワークアクセスの制御を行います。 |
・private link | ・使用している仮想ネットワーク内のプライベートエンドポイントを経由してAzure PaaSサービスとAzure上でホストされているユーザー所有かパートナーサービスへのアクセスが可能になります。 | ・プライベートエンドポイントの作成を行います。 |
・private linkの作成を行います。 |
アプリケーション配信サービスを利用するには、以下のネットワークサービスを単独か組み合わせで利用します
サービス | 使用理由 | シナリオ |
・Content Delivery Network | ・高常域幅コンテンツをユーザーに配信します。CDNは待機時間を短縮するためにエンドユーザーに近いポイントオブプレゼンスの場所のエッジサーバーにキャッシュしたコンテンツを格納しています。 | ・webアプリにCDNをを追加します。 |
・HTTPS経由でCDNのカスタムドメインを使用してストレージBlobにアクセスします。 | ||
・カスタムドメインをCDNエンドポイントに追加します。 | ||
・CDNのカスタムドメインでHTTPSを構成します。 |
・Azure Front Door Service | ・最適化によって高パフォーマンスを引き出して、瞬時にグローバルなフェールオーバーの可用性を高めることで、webトラフィックのグローバルナルーティングの定義、管理、監視を行います。 | ・Azure Front Door Serviceにカスタムドメインを追加します。 |
Front DoorカスタムドメインでHTTPSを構成します。 | ||
・web Application firewallのgeoフィルタリングポリシーの設定を行えます。 |
・Traffic Manager | ・即応性・高可用性の両面を確保しながら、Azureリージョン間でDNSに基づいたトラフィックを全世界に分散します。 | ・トラフィックをルーティングして待ち時間の短縮させます。 |
・優先エンドポイントにトラフィックをルーティングします。 | ||
・エンドポイントに重み付けしてトラフィックの制御を行います。 | ||
・エンドポイントのチリイ的な場所に基づいてトラフィックをルーティングします。 | ||
・ユーザーのサブネットに基づいてトラフィックのルーティングを行います。 |
・Load Balancer | ・可用性ゾーン間ならびにVnetへのトラフィックのルーティングを実行してリージョンへの負荷分散を行います。リソース間でトラフィックをルーティングしてリージョンのアプリケーションをビルドすることで、内部負荷が分散します。 | ・仮想マシンへのインターネットトラフィックへの負荷分散を行います。 |
・仮想ネットワーク内の仮想マシン間でトラフィックの負荷分散を行います。 | ||
・特定の仮想マシンの特定のポートにトラフィックをポートフォワーディングします。 | ||
・負荷分散とアウトバウンド規制を構成します。 |
・Application Gateway | ・webアプリケーションに対するトラフィックを管理できるwebトラフィックロードバランサーです。 | ・Application Gatewayを使用してwebトラフィックを転送します。 |
・チュートリアル:Azure portalを使用してTLSターミネーションで構成します。 | ||
・URLパスベースのリダイレクトのあるアプリケーションゲートウェイを作成します。 |
ネットワークリソースの監視を行うには以下のネットワークサービスを単独か組み合わせで使用します。
サービス | 使用理由 | シナリオ |
・Network Watcher | ・接続に関する問題の監視とトラブルシューティング、VPN、NGS、ルーティングに関する問題の診断と支援を行うとともに、仮想マシン上でパケットを取り込み、Azure FunctionとLogic Appsを使用して診断ツールのトリガーを自動化させます。 | ・仮想マシントラフィックフィルタに関する問題の診断を行います。 |
・仮想マシンのルーティングに関する問題を診断します。 | ||
・ネットワーク間における通信の問題の診断を行います。 | ||
・仮想マシンとネットワークトラフィック間のログを記録します。 |
・ExpressRoute モニター | ・ネットワークのパフォーマンス、可用性、使用率をリアルタイムで監視します。また、ネットワークトポロジの自動検出の支援、障害分離への迅速な対応、一時的なネットワーク問題を検出します。加えて、過去のネットワークパフォーマンスの特性を分析して支援するマルチサブスクリプションのサポートも行っています。 | ・ExpressRouteに使用するNetwork Performance Monitorの構成を行います。 |
・ExpressRouteの監視、メトリック、およびアラートの実施を行います。 |
・Azure Monitor | ・アプリケーションの実行状況を把握できるようにするとともに、影響する問題や依存しているリソースの事前特定を行います。 | ・Traffic Managerのメトリックとアラートを行います。 |
・Standard Load BalancerのAzure Monitorの診断を行います。 | ||
・Azure Firewallのログとメトリックの監視を行います。 | ||
・Webアプリケーションファイアウォールの監視とログ記録を行います。 |
・仮想ネットワークTAP | ・仮想マシンのネットワークトラフィックをパケットコレクターへ継続的にストリーミングできるようにするとともに、ネットワークとアプリケーションのパフォーマンスの管理ソリューションならびにセキュリティ分析のツールを有効にします。 | ・VNet TAPリソースを作成します。 |
<4.注意点>
- 1.VMet内のネットワークの制限
- 2.2つのデプロイモデルにおけるIPアドレスの指定機能の違い
- 3.複数のリージョンをまたいだVNetの使用はできない
使用するデプロイモデルによってVNetは、仮想ネットワークやサブネットの数に対して既定と上限の制限を設けます。デフォルトの状態において既定数までMicrosoftのサポートを依頼した場合、上限数までしか接続はできません。
よっては、自由に何台でもサブネットやIPアドレスを増やすことができるわけではないという事になります。
VNetのIPアドレスは主にパブリックとプライベートの2種類のいずれかでIPアドレスを設定します。
接続先のサービス等によって設計上の制限があり、クラシックデプロイモデルやAzure Resource Managerによる2のデプロイモデルよっても仮想マシン等へのIPアドレスの割り当て方に違いがありまする
クラウドサービスの形態の1つである「IaaS」を利用している場合、他の形態の「SaaS」や「PaaS」とは異なり、Azure上の仮想ネットワーク設計はユーザー自身で行う必要があります。
VNetを複数のリージョンにまたがった使用はできません。しかし、グローバルVNetピアリング等の機能を使用することでVNet間の連携を取ることは可能です
同一のリージョン内か異なるリージョン間のいずれかで可用性を高めるか等の、設定ポリシーを事前に準備しておく必要があります
<5.まとめ>
VNetを利用することで、プライベートな仮想ネットワークの作成ができる中で、外部のネットワークとシームレスに接続ができることによって、提供されるサービスとVNet内の仮想マシンがクラウド内において直接的かつ安全に通信することができます。それにより、作業の効率性やコストパフォーマンスに大きな変革をもたらすでしょう。