Share via


ミッション クリティカルなワークロードのネットワークと接続

ミッション クリティカルな参照アーキテクチャでのリソースの地域的な分散には、堅牢なネットワーク インフラストラクチャが必要です。

Azure サービスを組み合わせて高可用性アプリケーションを提供する場合は、グローバルに分散した設計をお勧めします。 グローバル ロード バランサーとリージョン スタンプの組み合わせにより、信頼性の高い接続を通じてその保証が提供されます。

リージョン スタンプは、アーキテクチャ内のデプロイ可能なユニットです。 新しいスタンプをすばやくデプロイできれば、スケーラビリティが得られ、高可用性をサポートできます。 スタンプは、分離された仮想ネットワーク設計に従います。 クロススタンプ トラフィックはお勧めしません。 他のスタンプへの仮想ネットワーク ピアリングまたは VPN 接続は必要ありません。

このアーキテクチャは、地域スタンプを短命として意図的に定義しています。 インフラストラクチャのグローバル状態は、グローバル リソースに格納されます。

正常なスタンプにトラフィックをルーティングし、セキュリティ サービスを提供するために、グローバル ロード バランサーが必要です。 これには特定の機能が必要です。

  • トラフィックをルーティングする前にロード バランサーが配信元の正常性を確認できるように、正常性プローブを行う必要があります。

  • 重み付けトラフィック分散。

必要に応じて、エッジでキャッシュを実行できます。 また、Web Application Firewall (WAF) を使用してイングレスに対するセキュリティ保証も提供します。

参照アーキテクチャのネットワークの図。

このアーキテクチャの Visio ファイルをダウンロードします。

トラフィック イングレス

アーキテクチャで定義されているアプリケーションはインターネットに接続されており、次のようないくつかの要件があります。

  • グローバルであり、独立したリージョン スタンプ間でトラフィックを分散できるルーティング ソリューション。

  • 待機時間が短い正常性チェックと、異常なスタンプへのトラフィックの送信を停止する機能。

  • エッジでの悪意のある攻撃の防止。

  • エッジでのキャッシュ機能の提供。

設計内のすべてのトラフィックのエントリ ポイントは、Azure Front Door 経由です。 Front Door は、HTTP(S) トラフィックを登録済みのバックエンド/配信元にルーティングするグローバル ロード バランサーです。 Front Door では、各バックエンド/配信元の URI に要求を発行する正常性プローブを使用します。 参照実装では、呼び出される URI は正常性サービスです。 正常性サービスは、スタンプの正常性をアドバタイズします。 Front Door は、応答を使用して個々のスタンプの正常性を判断し、アプリケーション要求を処理できる正常なスタンプにトラフィックをルーティングします。

Azure Front Door と Azure Monitor の統合により、トラフィック、セキュリティ、成功と失敗のメトリック、アラートをほぼリアルタイムで監視できます。

Azure Front Door と統合された Azure Web Application Firewall は、ネットワークに入る前にエッジで攻撃を防ぐために使用されます。

参照アーキテクチャのネットワーク イングレスの図。

分離された仮想ネットワーク - API

アーキテクチャの API は、トラフィック分離境界として Azure Virtual Networks を使用します。 ある仮想ネットワーク内のコンポーネントが、別の仮想ネットワーク内のコンポーネントと直接通信することはできません。

アプリケーション プラットフォームへの要求は、標準の SKU 外部 Azure Load Balancer で配布されます。 ロード バランサーに到達するトラフィックが Azure Front Door 経由でルーティングされたことを確認するチェックがあります。 このチェックにより、すべてのトラフィックが Azure WAF で検査されたことが確実になります。

アーキテクチャの操作とデプロイに使用されるビルド エージェントは、分離されたネットワークに到達できる必要があります。 エージェントが通信できるように、分離されたネットワークは開くことができます。 または、セルフホステッド エージェントを仮想ネットワークにデプロイすることもできます。

ネットワーク スループット、個々のコンポーネントのパフォーマンス、アプリケーションの正常性を監視する必要があります。

アプリケーション プラットフォームの通信依存関係

インフラストラクチャ内の個々のスタンプで使用されるアプリケーション プラットフォームには、次の通信要件があります。

  • アプリケーション プラットフォームは、Microsoft PaaS サービスと安全に通信できる必要があります。

  • アプリケーション プラットフォームは、必要に応じて他のサービスと安全に通信できる必要があります。

定義されているアーキテクチャでは、Azure Key Vault を使用して接続文字列や API キーなどのシークレットを格納し、インターネット経由で Azure PaaS サービスと安全に通信します。 この通信のためにインターネット経由でアプリケーション プラットフォームを公開するリスクがあると考えられます。 シークレットが侵害される可能性があり、セキュリティの強化とパブリック エンドポイントの監視をお勧めします。

アプリケーション プラットフォームの通信依存関係の図。

ネットワークの拡張に関する考慮事項

このセクションでは、ネットワーク設計に対する代替アプローチの長所と短所について説明します。 以降のセクションでは、ネットワークに関する別の考慮事項と Azure プライベート エンドポイントの使用に重点を置いて説明します。

サブネットと NSG

仮想ネットワーク内のサブネットを使用して、設計内のトラフィックをセグメント化できます。 サブネットの分離により、さまざまな関数のリソースが分離されます。

ネットワーク セキュリティ グループを使用して、各サブネットからの送受信が許可されるトラフィックを制御できます。 NSG 内で使用されるルールは、IP、ポート、プロトコルに基づいてトラフィックを制限して、サブネットへの不要なトラフィックをブロックするために使用できます。

プライベート エンドポイント - イングレス

Front Door の Premium SKU では、Azure プライベート エンドポイントの使用がサポートされています。 プライベート エンドポイントにより、仮想ネットワーク内のプライベート IP アドレスに Azure サービスが公開されます。 サービス間の接続は安全かつプライベートに行われ、トラフィックをパブリック エンドポイントにルーティングする必要はありません。

Azure Front Door Premium と Azure プライベート エンドポイントでは、個々のスタンプで完全にプライベートのコンピューティング クラスターが有効になります。 すべての Azure PaaS サービスのトラフィックは完全にロックダウンされます。

プライベート エンドポイントを使用すると、設計のセキュリティが向上します。 ただし、別の障害点が発生します。 アプリケーション スタンプで公開されるパブリック エンドポイントは不要になり、可能性のある DDoS 攻撃がアクセスして開することはできなくなります。

セキュリティの強化は、信頼性向上作業、コスト、複雑さよりも重視する必要があります。

セルフホステッド ビルド エージェントは、スタンプのデプロイに使用する必要があります。 これらのエージェントの管理には、メンテナンス オーバーヘッドが伴います。

プライベート エンドポイントを伴う参照アーキテクチャのネットワーク イングレスの図。

プライベート エンドポイント - アプリケーション プラットフォーム

プライベート エンドポイントは、この設計で使用されるすべての Azure PaaS サービスでサポートされます。 アプリケーション プラットフォーム用にプライベート エンドポイントが構成されている場合、すべての通信はスタンプの仮想ネットワークを通過します。

個々の Azure PaaS サービスのパブリック エンドポイントは、パブリック アクセスを禁止するように構成できます。 これにより、信頼性と可用性に影響を与えるダウンタイムと調整を引き起こす可能性のあるパブリック攻撃からリソースが分離されます。

セルフホステッド ビルド エージェントは、上記と同じくスタンプのデプロイに使用する必要があります。 これらのエージェントの管理には、メンテナンス オーバーヘッドが伴います。

プライベート エンドポイントとのアプリケーション プラットフォームの通信依存関係の図。

次のステップ

参照実装をデプロイして、このアーキテクチャで使用されているリソースとその構成を完全に理解します。