是的,可以使用AWS ALB(应用程序负载均衡器)将80端口转发到自定义端口。以下是一个示例CloudFormation模板,可以使用它来创建一个ALB,并将80端口转发到自定义端口。
Resources:
MyALB:
Type: AWS::ElasticLoadBalancingV2::LoadBalancer
Properties:
Subnets:
- subnet-12345678
- subnet-87654321
SecurityGroups:
- sg-99999999
Name: my-alb
Type: application
MyHTTPListener:
Type: AWS::ElasticLoadBalancingV2::Listener
DependsOn: MyALB
Properties:
DefaultActions:
- TargetGroupArn: !Ref MyTargetGroup
Type: forward
LoadBalancerArn: !Ref MyALB
Port: 80
Protocol: HTTP
MyTargetGroup:
Type: AWS::ElasticLoadBalancingV2::TargetGroup
Properties:
HealthCheckIntervalSeconds: 30
HealthCheckPath: /health-check
HealthCheckPort: '6060'
HealthCheckProtocol: HTTP
HealthCheckTimeoutSeconds: 5
HealthyThresholdCount: 2
Name: my-target-group
Port: 6060
Protocol: HTTP
TargetType: instance
UnhealthyThresholdCount: 5
VpcId: vpc-01234567
上述模板创建一个名为“my-alb”的ALB,并在该ALB上创建一个端口为80的HTTP监听器。监听器的默认操作是将流量转发到目标组,目标组将请求发送到EC2实例的6060端口。
注意,我们还设置了一个health-check路径,以确保目标组中的EC2实例健康。这里使用的是HTTP协议,但您也可以使用TCP或HTTPS协议。