VNet (Azure Virtual Network) は、Azure内の独立したネットワーク環境です。

Azure VNetは、以下を含むネットワーク構成を完全に制御します。

  • IPアドレス範囲
  • サブネット
  • ルーティングテーブル
  • ネットワークゲートウェイ

SystemLink Enterpriseのデプロイメントでは、セキュリティ、拡張性、およびネットワーク分離のために適切に構成されたVNetが不可欠です。

VNetを構成して、コンピューティングおよびストレージインフラストラクチャをインターネットに接続されたゲートウェイやロードバランサから分離します。この構成は、クラウドセキュリティのベストプラクティスに従い、機密性の高いワークロードにインターネットから直接アクセスできないようにします。

アーキテクチャの一般的なリファレンスについては、「Azure SystemLink Enterprise Kubernetesのアーキテクチャ図」を参照してください。

サブネットアーキテクチャ

パブリックサブネットとプライベートサブネットの両方でVNetを構成し、インターネットに接続するコンポーネントを内部インフラストラクチャから分離します。

以下のコンポーネントは、インターネットに直接アクセスできないプライベートサブネットにデプロイします。

  • AKSクラスタノード: Webサービス、Webアプリケーション、およびサポートインフラストラクチャを含む、SystemLink Enterpriseポッドをホストするワーカノード。
  • データベース: PostgreSQL用Azureデータベース、または自己管理データベースインスタンス。
  • Azureストレージのプライベートエンドポイント: パブリックインターネットを使用せずにプライベートサブネットからAzure Blobストレージにアクセスするようにプライベートエンドポイントを構成します。

インターネットにアクセスできるパブリックサブネットに以下のコンポーネントを配置します。

  • Application Gateway: SystemLink WebアプリケーションおよびAPIへのHTTPSトラフィック用のインターネット接続アプリケーションロードバランサ。
  • Azure Load Balancer: Salt Masterトラフィック (ポート4505および4506) 用のTCPロードバランサ。
  • NATゲートウェイ: プライベートサブネットのリソースに対してアウトバウンドインターネットアクセスを有効にします。

アドレス空間の計画

VNetアドレス空間を計画して、SystemLink Enterpriseおよび将来の拡張のために十分なIPアドレスを確保します。

  • 推奨VNetサイズ: /16 CIDRブロック (65,536 IPアドレス) により、柔軟なスケーリングが可能
  • 最小VNetサイズ: 20 CIDRブロック (4,096 IPアドレス) (小規模から中規模のデプロイメントの場合)

サブネットは、次の考慮事項に基づいて割り当てます。

  • AKSノードのプライベートサブネット: 予想される最大ノード数に基づいたサイズです。各AKSノードには、サブネットアドレス空間から1つのIPアドレスが必要です。
  • ポッドのプライベートサブネット: Azure CNIネットワーキングを使用している場合は、ポッドIPアドレスに追加のアドレス空間を割り当てます。各ポッドには独自のIPアドレスが必要です。
    • ポッドレベルのネットワーク統合に特別な要件がない限り、ポッドが個別のアドレス空間を使用するkubenetネットワーク (デフォルト) から開始します。
    • Azure CNIを使用してIP使用率を注意深く監視します。各ノードは、VMサイズとノードあたりの最大ポッド構成に応じて、10~100個以上のIPアドレスを消費できます。
    • 拡張の計画。サブネットのサイズ設定がワークロードの大幅なスケーリングをサポートできることを確認してください。
  • パブリックサブネット: ロードバランサおよびNATゲートウェイには、/24などの小さな割り当てで十分です。
  • マルチゾーンデプロイメント: 高可用性のために、可用性ゾーンに分散されたサブネットペア (パブリック/プライベート) を作成します。
表 61. アドレス割り当ての例 (10.0.0.0/16を使用するVNet)
サブネットタイプ 可用性ゾーン アドレス範囲 使用可能なIP
プライベート (AKSノード) ゾーン1 10.0.0.0/19 8,192
プライベート (AKSノード) ゾーン2 10.0.32.0/19 8,192
プライベート (データベース) ゾーン1 10.0.64.0/24 256
プライベート (データベース) ゾーン2 10.0.65.0/24 256
パブリック ゾーン1 10.0.128.0/24 256
パブリック ゾーン2 10.0.129.0/24 256
メモ Azureはサブネットごとに最初の4つのアドレスと最後のアドレスIPアドレスを予約します。使用可能なアドレスを計算する際は、適宜計画してください。

セキュリティのベストプラクティス

SystemLink Enterprise用にVNetを構成する際は、以下のセキュリティのベストプラクティスに従ってください。

  • コンピューティングおよびストレージに直接インターネットアクセスできない: すべてのAKSノード、データベース、および内部サービスは、インターネットゲートウェイ経路のないプライベートサブネットに存在する必要があります。
  • トラフィックフローの分離: インターネットトラフィックは、インターネット、パブリックApplication Gateway/Load Balancer、プライベートイングレスコントローラ、およびプライベートSystemLinkサービスを通過します。
  • NATによるアウトバウンドインターネット: パブリックサブネットでNATゲートウェイを使用して、プライベートサブネットリソースにアウトバウンドインターネットアクセスを提供します。高可用性のためにゾーン冗長性を備えたNATゲートウェイを配置します。
  • プライベートエンドポイント: Azureサービス (Blobストレージ、コンテナレジストリ) のプライベートエンドポイントを使用して、インターネット経路設定を回避し、データ転送コストを削減します。
  • ネットワークセキュリティグループ (NSG): コンポーネント間で必要なトラフィックのみを許可するようにNSGを構成します。最小権限の原則を使用します。

可用性ゾーンに関する注意事項

高可用性とフォールトトレランスのために、複数の可用性ゾーンにSystemLink Enterpriseをデプロイします。

  • 最小構成: ゾーン間でサブネットを分散して、少なくとも2つの可用性ゾーンを使用します。
  • AKSノードプール: ゾーン冗長ノードプールを使用して、可用性ゾーン全体にワーカノードを分散します。
  • データベースゾーンの冗長性: PostgreSQL用Azure Databaseのゾーン冗長デプロイメントを有効にします。
  • ロードバランサ分散: 可用性ゾーン間でトラフィックを分散するために、ゾーン冗長性を使用してApplication GatewayとLoad Balancerを構成します。