AWS中的Elastic Load Balancer(ELB)可用于将流量分发到一组容器,可确保在同一端口上发生容器之间的无缝交换。可以使用AWS中的ECS(Elastic Container Service)和ALB(Application Load Balancer)来实现这一点。
以下是通过AWS ECS和ALB实现背靠背容器服务同一个IP:PORT的示例代码:
1.创建ECS任务定义:
{
"family": "my-task",
"containerDefinitions": [
{
"name": "container-1",
"image": "image-1",
"portMappings": [
{
"containerPort": 80,
"hostPort": 0
}
]
},
{
"name": "container-2",
"image": "image-2",
"portMappings": [
{
"containerPort": 80,
"hostPort": 0
}
]
}
]
}
2.创建ECS服务:
{
"cluster": "my-cluster",
"serviceName": "my-service",
"taskDefinition": "my-task",
"desiredCount": 2,
"loadBalancers": [
{
"targetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:0123456789012:targetgroup/my-target-group/abcdef0123456789",
"containerName": "container-1",
"containerPort": 80
},
{
"targetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:0123456789012:targetgroup/my-target-group/abcdef0123456789",
"containerName": "container-2",
"containerPort": 80
}
]
}
3.创建ALB目标组:
{
"Name": "my-target-group",
"Port": 80,
"Protocol": "HTTP",
"Targets": [
{
"Id": "container-1",
"Port":
下一篇:AWS重命名Glue作业输出