コンテンツにスキップ

Azure

HashiCorp Flight および Carbon アイコンパックを使用した VNet ネットワーク、コンピュート、マネージドサービスの Azure インフラストラクチャ図。

ゲートウェイ、アプリケーション、データサブネットを持つ Azure VNet。Application Gateway が VM Scale Sets にトラフィックを分散します。

architecture-beta
  group vnet(carbon:virtual-private-cloud)[Azure VNet]
  group gwsub(carbon:ibm-cloud-subnets)[Gateway Subnet] in vnet
  group appsub(carbon:ibm-cloud-subnets)[App Subnet] in vnet
  group datasub(carbon:ibm-cloud-subnets)[Data Subnet] in vnet

  service appgw(carbon:gateway-security)[App Gateway] in gwsub
  service vm1(hashicorp-flight:azure-vms-color)[VM Scale Set] in appsub
  service vm2(hashicorp-flight:azure-vms-color)[VM Scale Set] in appsub
  service sqldb(carbon:data-base)[Azure SQL] in datasub

  appgw:R --> L:vm1
  appgw:B --> T:vm2
  vm1:R --> L:sqldb
  vm2:R --> L:sqldb

F5 XC マルチクラウド接続を使用した AKS

Section titled “F5 XC マルチクラウド接続を使用した AKS”

マルチクラウドアプリケーション接続性とセキュリティのために F5 Distributed Cloud をフロントエンドとして配置した Azure Kubernetes Service。

architecture-beta
  group xc(lucide:cloud)[F5 XC]
  group aks(hashicorp-flight:azure-aks-color)[AKS Cluster]

  service mcn(f5xc:multi-cloud-network-connect)[Network Connect] in xc
  service waap(f5xc:web-app-and-api-protection)[WAAP] in xc
  service ingress(carbon:gateway)[Ingress] in aks
  service app(hashicorp-flight:docker-color)[App Pods] in aks
  service cache(carbon:datastore)[Redis Cache] in aks
  service blob(hashicorp-flight:azure-blob-storage-color)[Blob Storage]

  mcn:R --> L:waap
  waap:R --> L:ingress
  ingress:R --> L:app
  app:B --> T:cache
  app:R --> L:blob

Hub-Spoke ネットワークトポロジー

Section titled “Hub-Spoke ネットワークトポロジー”

集中型セキュリティと共有サービスにより複数のスポーク VNet を接続する Azure Hub-Spoke アーキテクチャ。

flowchart TD
  hub@{ icon: 'carbon:virtual-private-cloud', label: 'Hub VNet' }
  fw@{ icon: 'carbon:firewall', label: 'Azure Firewall' }
  vpn@{ icon: 'carbon:gateway-vpn', label: 'VPN Gateway' }
  spoke1@{ icon: 'carbon:ibm-cloud-subnets', label: 'Spoke 1 - Web' }
  spoke2@{ icon: 'carbon:ibm-cloud-subnets', label: 'Spoke 2 - App' }
  spoke3@{ icon: 'carbon:ibm-cloud-subnets', label: 'Spoke 3 - Data' }
  onprem@{ icon: 'lucide:server', label: 'On-Premises DC' }

  onprem --> vpn
  vpn --> hub
  hub --> fw
  fw --> spoke1
  fw --> spoke2
  fw --> spoke3

ロードバランサーを使用した NVA HA — インターネットトラフィック

Section titled “ロードバランサーを使用した NVA HA — インターネットトラフィック”

インバウンドのインターネットトラフィックはパブリックロードバランサーに到達し、ハブ内の NVA インスタンスへ分散されます。NVA は検査済みトラフィックをスポークのワークロードに転送します。スポークからの戻りトラフィックは、エグレスのために内部ロードバランサーを経由して NVA にルーティングされます。番号付きステップはインバウンドパス(1〜3)と戻りパス(4〜6)を示しています。

flowchart TD
  subgraph internet[Internet]
    cloud@{ icon: 'lucide:globe', label: 'Internet' }
  end
  subgraph hub[Hub VNet 10.0.0.0/24]
    subgraph gwsub[Gateway Subnet 10.0.0.0/27]
      gw@{ icon: 'azure:virtual-network-gateways', label: 'VPN/ER GW' }
    end
    subgraph nvasub[NVA Subnet 10.0.0.32/27]
      intlb@{ icon: 'azure:load-balancers', label: 'Internal LB 10.0.0.36' }
      nva@{ icon: 'azure:firewalls', label: 'NVA' }
    end
    publb@{ icon: 'azure:load-balancers', label: 'Public LB' }
  end
  subgraph spoke1[Spoke1 10.1.1.0/24]
    app1@{ icon: 'azure:virtual-machine', label: 'App Server' }
  end
  subgraph spoke2[Spoke2 10.1.2.0/24]
    app2@{ icon: 'azure:virtual-machine', label: 'App Server' }
  end
  onprem@{ icon: 'lucide:building', label: 'On-Premises 192.168.0.0/16' }

  cloud -->|1| publb
  publb -->|2| nva
  nva -->|3| app2
  app2 -->|4| intlb
  intlb -->|5| nva
  nva -->|6| cloud
  onprem --> gw
  gw --> intlb

ロードバランサーを使用した NVA HA — オンプレミストラフィック

Section titled “ロードバランサーを使用した NVA HA — オンプレミストラフィック”

オンプレミストラフィックは VPN または ExpressRoute ゲートウェイを経由して入り、複数の NVA インスタンスをフロントエンドとする内部ロードバランサーに転送されます。NVA はトラフィックを検査してスポークのワークロードに転送します。戻りトラフィックは、フロー対称性を確保しアシメトリックルーティング問題を防ぐために、同じ内部ロードバランサーを経由します。

flowchart TD
  subgraph hub[Hub VNet 10.0.0.0/24]
    subgraph gwsub[Gateway Subnet 10.0.0.0/27]
      gw@{ icon: 'azure:virtual-network-gateways', label: 'VPN/ER GW' }
    end
    subgraph nvasub[NVA Subnet 10.0.0.32/27]
      intlb@{ icon: 'azure:load-balancers', label: 'Internal LB 10.0.0.36' }
      nva1@{ icon: 'azure:firewalls', label: 'NVA' }
      nva2@{ icon: 'azure:firewalls', label: 'NVA' }
    end
  end
  subgraph spoke1[Spoke1 10.1.1.0/24]
    app1@{ icon: 'azure:virtual-machine', label: 'App Server' }
  end
  subgraph spoke2[Spoke2 10.1.2.0/24]
    app2@{ icon: 'azure:virtual-machine', label: 'App Server' }
  end
  onprem@{ icon: 'lucide:building', label: 'On-Premises 192.168.0.0/16' }

  onprem -->|1| gw
  gw -->|2| intlb
  intlb -->|3| nva1
  nva1 -->|4| app2
  app2 -->|5| intlb
  intlb -->|6| nva2
  nva2 -->|7| gw
  gw -->|8| onprem

PIP/UDR を使用した NVA HA — アクティブ/スタンバイ

Section titled “PIP/UDR を使用した NVA HA — アクティブ/スタンバイ”

アクティブなインスタンス(NVA1)がパブリック IP アドレスを保持するアクティブ/スタンバイ NVA ペア。障害発生時、スタンバイの NVA2 が Azure API を呼び出してパブリック IP を再割り当てし、自身を指すようにユーザー定義ルートを更新します。このアプローチはロードバランサーを必要としませんが、API レベルのフェイルオーバーオーケストレーションが必要です。

flowchart TD
  subgraph internet[Internet]
    cloud@{ icon: 'lucide:globe', label: 'Internet' }
  end
  subgraph hub[Hub VNet 10.0.0.0/24]
    pip@{ icon: 'azure:public-ip-addresses', label: 'Public IP' }
    subgraph gwsub[Gateway Subnet 10.0.0.0/27]
      gw@{ icon: 'azure:virtual-network-gateways', label: 'VPN/ER GW' }
    end
    subgraph nvasub[NVA Subnet 10.0.0.32/27]
      nva1@{ icon: 'azure:firewalls', label: 'NVA1 Active 10.0.0.37' }
      nva2@{ icon: 'azure:firewalls', label: 'NVA2 Standby 10.0.0.38' }
    end
  end
  subgraph spoke1[Spoke1 10.1.1.0/24]
    app1@{ icon: 'azure:virtual-machine', label: 'App Server' }
  end
  subgraph spoke2[Spoke2 10.1.2.0/24]
    app2@{ icon: 'azure:virtual-machine', label: 'App Server' }
  end
  onprem@{ icon: 'lucide:building', label: 'On-Premises 192.168.0.0/16' }

  cloud -->|1| pip
  pip -->|2| nva1
  nva1 -->|3| app2
  app2 -->|4| nva1
  nva1 -->|5| cloud
  onprem --> gw

Azure Route Server を使用した BGP ベースの高可用性。Route Server は両方の NVA インスタンスと eBGP アジャセンシーを確立し、スポークの有効ルートを動的にプログラムします。ECMP がユーザー定義ルートなしに NVA 間でロードバランシングを行います。Route Server はすべてのピアリング済み VNet に両 NVA IP のネクストホップエントリを注入します。

flowchart TD
  subgraph internet[Internet]
    cloud@{ icon: 'lucide:globe', label: 'Internet' }
  end
  subgraph hub[Hub VNet 10.0.0.0/24]
    publb@{ icon: 'azure:load-balancers', label: 'Public LB' }
    subgraph gwsub[Gateway Subnet 10.0.0.0/27]
      gw@{ icon: 'azure:virtual-network-gateways', label: 'VPN/ER GW' }
    end
    subgraph nvasub[NVA Subnet 10.0.0.32/27]
      nva1@{ icon: 'azure:firewalls', label: 'NVA1 10.0.0.37' }
      nva2@{ icon: 'azure:firewalls', label: 'NVA2 10.0.0.38' }
    end
    subgraph rssub[Route Server Subnet 10.0.0.64/27]
      rs@{ icon: 'azure:virtual-router', label: 'Route Server' }
    end
  end
  subgraph spoke1[Spoke1 10.1.1.0/24]
    app1@{ icon: 'azure:virtual-machine', label: 'App Server' }
  end
  subgraph spoke2[Spoke2 10.1.2.0/24]
    app2@{ icon: 'azure:virtual-machine', label: 'App Server' }
  end

  cloud -->|1| publb
  publb -->|2| nva1
  nva1 -->|3| app2
  app2 -->|4| nva1
  nva1 -->|5| cloud
  rs <-.->|eBGP| nva1
  rs <-.->|eBGP| nva2
  gw --> rs

Gateway ロードバランサーを使用した NVA HA

Section titled “Gateway ロードバランサーを使用した NVA HA”

Azure Gateway ロードバランサーを使用した透過的な NVA 挿入。アプリケーション宛てのトラフィックは、パブリック標準ロードバランサーから別の NVA VNet 内の Gateway LB へ透過的に転送されます。NVA がトラフィックを検査して Gateway LB に返し、Gateway LB がアプリケーションに転送します。NVA と アプリケーション VNet 間の VNet ピアリングや UDR は不要です。

flowchart TD
  subgraph internet[Internet]
    cloud@{ icon: 'lucide:globe', label: 'Internet' }
  end
  subgraph nvavnet[NVA VNet]
    gwlb@{ icon: 'azure:load-balancers', label: 'Gateway LB' }
    nva1@{ icon: 'azure:firewalls', label: 'NVA' }
    nva2@{ icon: 'azure:firewalls', label: 'NVA' }
  end
  subgraph appvnet[App VNet]
    publb@{ icon: 'azure:load-balancers', label: 'Public Std LB' }
    web@{ icon: 'azure:virtual-machine', label: 'Web Server' }
  end

  cloud -->|1| publb
  publb -->|2| gwlb
  gwlb -->|3| nva1
  nva1 -->|4| gwlb
  gwlb -->|5| publb
  publb -->|6| web
  gwlb --> nva2