提问人:Kokos 提问时间:11/13/2023 更新时间:11/13/2023 访问量:24
AWS ECS - 如何根据客户端标头将流量路由到不同的服务实例
AWS ECS - how to route traffic based on client header to different service instances
问:
我们将服务迁移到了 AWS ECS。我们希望为这些服务创建不同的实例,这些实例可能在以下方面有所不同:
- 底层 EC2 实例大小 - 例如,对于较大的客户,更高的 CPU 和 RAM,较小的共享实例,例如演示客户端
- 服务的不同版本
理想情况下,我们希望使用自定义标头(例如 client-id)来决定路由。这种方法正确吗?如何实现这一目标?您能分享一下这个领域的最佳实践吗?是否可以仅使用没有 API Gateway 的 Application Load Balancer 来实现这一点?我们是否可以手动附加一个具有不同 EC2 实例的集群,或者更好地创建多个集群,例如演示、标准和高级?
答:
1赞
Allan Chua
11/13/2023
#1
您可以使用 Application Load Balancer 通过您选择的标准或自定义 HTTP 标头来路由流量。您可以通过添加侦听器规则来实现此目的,该规则使用检查 HTTP 标头的条件(注意:每个标头名称的最大大小为 40 个字符。标头名称不区分大小写。不支持通配符),指定值(最多 128 个字符)并定义指向所需目标组的操作。
评论
0赞
Kokos
11/13/2023
这就是我的想法。但是,定义不同服务规格的最佳方式是什么?一种想法是将不同类型的 EC2 附加到集群,并以某种方式在这些 EC2 之间路由流量。但是,拥有单独的集群可能更容易吗?还有一点是,目前我们的服务前面有nginx。使用 Application Load Balancer 时是否仍需要它?
0赞
Allan Chua
11/13/2023
我可能没有资格确定定义不同服务规范的“最佳”方法,因为您将更了解您的应用程序需要什么以及围绕它的各种约束。这将是多种方法,但只有你们才能知道哪种方法可能更有利于您的公司。
评论