我设法在本地和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"]
虽然可行,但我现在想添加另一个容器,例如。 service2
也带有随机端口,例如0:8000
。这就是为什么我需要类似Traefik
的原因。
这是Toml文件:
[api]
address = ":8080"
[ecs]
clusters = ["my-cluster"]
watch = true
domain = "mydomain.com"
region = "eu-central-1"
accessKeyID = "AKIA..."
secretAccessKey = "..."
我还在/etc/hosts
中添加了主机条目:
127.0.0.1 service1.mydomain.com
127.0.0.1 service2.mydomain.com
还有容器上的相对标签,我可以curl service1.mydomain.com/status
并得到200
。
现在我的最后一点就是以下问题:
AWS ALB
? AWS Network LB
?网桥/主机/其他?答案 0 :(得分:3)
AWS ALB与AWS Network LB取决于您要处理SSL的人。
如果您具有通配符证书,并且所有服务都是同一域的子域,则ALB可能是一个不错的选择
如果您想使用traefik Network LB加密,可能是更好的选择
在两种情况下,您的设置都将如下所示:
"dependencies": {
"body-parser": "^1.18.3",
"cookie-parser": "~1.4.3",
"debug": "~2.6.9",
"dotenv": "^6.0.0",
"express": "~4.16.0",
"http-errors": "~1.6.2",
"morgan": "~1.9.0",
"pg": "^6.1.0",
"pg-hstore": "^2.3.2"
},
"devDependencies": {
"chai": "^4.1.2",
"mocha": "^5.2.0"
}
在这两种情况下,最简单的方法是使traefik ecs服务自动注册到目标组。
这可以在服务创建(网络配置部分)时完成,以后不能再执行。 Link to documentation