我在AWS ECS中使用Docker。我有一台带有AWS ECS中的docker agent的EC2计算机,并且ECS任务包含3个容器:
我想支持非常大的流量。我是否需要设置AWSLoad Balancer?还是我对nginx上游的设置足够?
nginx conf示例:
upstream appwww {
server app-www:3000;
}
server {
server_name my.home.net;
location / {
proxy_pass http://appwww;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
listen 443 ssl http2; # managed by Certbot
ssl_certificate......; # managed by Certbot
ssl_certificate_key........ # managed by Certbot
include /.......# managed by Certbot
ssl_dhparam /.....pem; # managed by Certbot
}
server {
if ($host = my.host.net) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name my.host.net;
return 404; # managed by Certbot
}
答案 0 :(得分:1)
正如你所说的
我想支持非常大的流量。
我希望在某个时候您需要将您的AWS ECS集群水平扩展到多个实例,并且在那时,您将需要一个Elastic Load Balancer来平衡它们之间的流量。
https://docs.aws.amazon.com/AmazonECS/latest/developerguide///service-load-balancing.html
答案 1 :(得分:1)
我建议您首先使用负载均衡器,因为:
您可以通过将负载均衡器配置为与AWS WAF集成来保护自己免受恶意攻击
您将来可以轻松添加更多目标
缺少负载均衡器要求您在应用程序级别配置SSL
它支持健康检查。
注意:考虑使用AWS S3和cloudfront来提供您的静态内容
答案 2 :(得分:0)
如果这句话是真的
我想支持非常大的流量
除了ECS任务,您还需要阅读有关AWS ECS中不同概念的信息:
为了正确使用AWS ECS,您需要一起使用这些服务。