我应该选择 Azure 应用程序网关或负载均衡器还是前门或流量管理器?

should I choose azure application gateway or load balancer or front door or traffic manager?

我有一个使用 Angular 8 和 Asp.net Core Web API 开发的 SaaS Web 应用程序。我已经将 web api 部署到一个 azure web 应用程序,并将 angular 前端 web 应用程序部署到另一个 azure web 应用程序。

用户来自中国和澳大利亚等国家。我想像中国用户在 china azure region 上使用 web app 而澳大利亚用户使用 Australian azure region web app 那样进行区域负载平衡,以便它具有最佳性能。 Azure SQL 数据库将在一个地方(在澳大利亚)。

此外,我想防止对 Web 前端应用程序和 Web api 的攻击,例如 d-dos、web scraping 和 SQL 注入。对于 web scraping,我想从一个 ip 添加访问速率限制。

你能告诉我应该使用什么服务吗?我看到博客在谈论 azure 应用程序网关、azure 负载均衡器、azure 前门和 azure 流量管理器。这让我有点困惑。我需要一个基于我这个真实世界场景的最佳实践。我应该使用其中一项服务还是应该使用多项服务?

根据您的要求:

  1. 由于后端资源是Web App,可以忽略Load balancer(Layer 4),只能添加VM或VMSS
  2. 你的另一个需求是WAF,它只在AFD和AppGW中可用。但是您可以使用流量管理器作为第一层负载平衡,并在不同区域使用 AppGW 以提供高弹性。
  3. 由于您希望来自特定国家/地区的用户访问最近的后端资源,看来最适合您的解决方案是 AFD。

AFD 是一个全局负载平衡器。它具有 WAF 功能。它可以缓存数据并提供更快的响应(CDN 功能)。 AFD 使用智能探测机制,通过该机制选择离发出请求的客户端较近的端点。

希望这对您有所帮助。