我已经设法在Traefik
本地运行,AWS ECS
但现在我想知道我应该如何设置某种负载平衡,以使我的两个具有随机 IP 的服务对公众可用。
[Internet]
|
[Load balancer on port 443 + ALB Security group on 443]
|
[Target group on port 443 + Security group from *any* port]
|
[cluster]
|
[service1 container ports "0:5000"]
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但我现在想添加另一个容器,例如。service2
也有随机端口,例如0:8000
。这就是为什么我需要类似Traefik
.
这是Toml文件:
[api]
address = ":8080"
[ecs]
clusters = ["my-cluster"]
watch = true
domain = "mydomain.com"
region = "eu-central-1"
accessKeyID = "AKIA..."
secretAccessKey = "..."
Run Code Online (Sandbox Code Playgroud)
我还添加了主机条目/etc/hosts
:
127.0.0.1 …
我需要设计一个Web应用程序,并且在下面需要我的建议。我已决定使用应用程序负载平衡器,但不确定是否应该将API网关用作应用程序的入口点,否则应用程序负载平衡器将用作入口点?
另外,我不确定入口点是否是应用程序负载平衡器,因为它在私有vpc中如何将公共互联网中的应用程序客户端连接到它?
如果有的话,请在应用程序负载均衡器前面阐明使用API网关的优势和必要性。
web-applications aws-cli microservices aws-api-gateway aws-load-balancer
AWS附带有一项称为的服务Application Load Balancer
,它可能会触发lambda函数。调用此类lambda函数的方法是通过向ALB发送HTTP / HTTPS请求。
现在我的问题是,这与使用API网关有何不同?以及什么时候应该在API网关上使用ALB?
我不是 AWS 专家,但尝试做一些简单的事情,例如创建应用程序负载均衡器、向其中添加目标组并尝试添加侦听器。接下来发生的事情让我感到困惑。在 AWS 控制台 -> EC2 -> 负载均衡器 -> 侦听器 -> 添加侦听器页面上,我选择 Http:80,在默认操作下我添加“转发到”,从下拉列表中选择我的实例,单击“检查”按钮,显示在默认操作下添加的规则。然后我点击屏幕上的第二个保存按钮,刷新/返回然后你去 - >我的听众消失了。以前有人遇到过这个问题吗?我检查了这个问题:AWS 经典负载均衡器侦听器未创建,然后消失。- 解决方案对我不起作用(我已经按下了第二次保存,它位于屏幕顶部,而不是 ALB 底部)。任何指针将不胜感激
即使经过大量的谷歌搜索,我也找不到这个问题的简单答案。我所能找到的只是它的第 4 层负载均衡器,每秒可以处理数百万个请求,并支持静态/弹性 ip。有人可以给我一个在现实生活中使用网络负载平衡器的例子吗?一个简单的用例。什么时候选择网络负载均衡器而不是应用程序负载均衡器?
我有一些负载均衡器工作正常.它是这样配置的.该应用程序刚刚在80上运行,并由网络服务器重定向到443,上面有一条路线53
现在我尝试完全相同,但当我将loadbalancer设置为相同的值+ wildcardcert时,我得到:
Updating load balancer named: xx failed Reason: Listeners can't talk to InstancePort 80 with secure and insecure protocols at the same time (Service: AmazonElasticLoadBalancing; Status Code: 409;
Run Code Online (Sandbox Code Playgroud)
我错过了什么?为什么它适用于其他应用程序?
在 AWS 的 Cloudformation 中,如何将自动缩放组 (ASG) 附加到应用程序负载均衡器目标组?
尽管可以使用 AQWS CLI 或 API,但似乎没有任何直接的方法可以直接在 Cloudformation 模板 (CFT) 中执行此操作。该AWS::ElasticLoadBalancingV2::TargetGroup
资源仅提供以下目标类型:
instance
. 目标由实例 ID 指定。ip
. 目标由 IP 地址指定。lambda
. 目标组包含单个 Lambda 函数。amazon-elb aws-cloudformation aws-load-balancer aws-application-load-balancer
虽然证书管理器 UI 显示我导入的证书状态为“已颁发”,但当尝试从 ELB(应用程序 lb)使用它时,我得到:“没有可用的证书”(对 api 的 POST 请求返回空列表)
此外,当我运行 aws acm list-certificates --max-items 10 时,我没有得到导入的证书,只有我的第二个(未导入)一个
任何想法这里有什么问题?我应该配置的导入证书上有设置吗?
amazon-web-services aws-certificate-manager aws-load-balancer
在“负载平衡器列表器”配置页面中,您可以在AWS控制台中使用默认操作创建侦听器,如下所示:
固定响应选项使您可以指定http返回码和正文:
以下是已知有效的CloudFormation示例。不确定如何编辑它以支持非转发操作。
MyServicesLoadBalancerListener:
Type: AWS::ElasticLoadBalancingV2::Listener
Properties:
LoadBalancerArn: !Ref MyServicesLoadBalancer
Port: 80
Protocol: HTTP
DefaultActions:
- Type: forward
TargetGroupArn: !Ref MyServicesTargetGroup
Run Code Online (Sandbox Code Playgroud)
如何使用CloudFormation做到这一点?此处的文档似乎建议CloudFormation仅支持“转发”规则。
谢谢
amazon-ecs ×1
amazon-elb ×1
aws-alb ×1
aws-application-load-balancer ×1
aws-cli ×1
docker ×1
traefik ×1