使用配置文件 (.ebextensions) 在自定义 VPC 中为 TCP 直通配置 Elastic Beanstalk 环境的负载均衡器
Posted
技术标签:
【中文标题】使用配置文件 (.ebextensions) 在自定义 VPC 中为 TCP 直通配置 Elastic Beanstalk 环境的负载均衡器【英文标题】:Configuring an Elastic Beanstalk environment's Load Balancer for TCP Passthrough in a custom VPC with config files (.ebextensions) 【发布时间】:2017-08-16 19:36:54 【问题描述】:我已尝试关注此特定文档
http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-tcp-passthrough.html
我的特殊需求没有运气。需要的是从我们的代理服务器通过 ELB 的第 4 层 TCP 直通,直到 Tomcat 后端才终止 SSL。入口端口是 TCP 443,出口是 8443。还需要使用自定义 VPC 而不是默认值。这如何利用配置文件来实现?
【问题讨论】:
【参考方案1】:我能够使用以下配置文件解决:
https-instance-balancer.config
"Resources":
"AWSEBSecurityGroup":
"Type": "AWS::EC2::SecurityGroup",
"Properties":
"VpcId": "vpc-xxxxxxxx",
"GroupDescription": "EC28443Ingress",
"SecurityGroupIngress": [
"IpProtocol": "tcp",
"FromPort": 8443,
"ToPort": 8443,
"CidrIp": "0.0.0.0/0"
]
,
"AWSEBLoadBalancerSecurityGroup":
"Type": "AWS::EC2::SecurityGroup",
"Properties":
"VpcId": "vpc-xxxxxxxx",
"GroupDescription": "ELB443and8443Ingress",
"SecurityGroupIngress": [
"IpProtocol": "tcp",
"FromPort": 443,
"ToPort": 443,
"CidrIp": "0.0.0.0/0"
],
"SecurityGroupEgress": [
"IpProtocol": "tcp",
"FromPort": 8443,
"ToPort": 8443,
"CidrIp": "0.0.0.0/0"
]
,
"AWSEBLoadBalancer":
"Type": "AWS::ElasticLoadBalancing::LoadBalancer",
"Properties":
"Listeners": [
"LoadBalancerPort": 443,
"Protocol": "TCP",
"InstancePort": 8443,
"InstanceProtocol": "TCP"
],
"SecurityGroups": [
"Fn::GetAtt": [
"AWSEBLoadBalancerSecurityGroup",
"GroupId"
]
]
https-lb-passthrough.config
"option_settings":
"aws:elb:listener:443":
"ListenerProtocol": "TCP",
"InstancePort": 8443,
"InstanceProtocol": "TCP"
,
"aws:elb:healthcheck":
"Target": "TCP:8443"
使用 Terraform 等软件可能更容易实现这一点,但对于某些人来说,这可能不是一个选择。
【讨论】:
您会认为 A) 这是一个常见的用例,并且 B) AWS 提供的文档将包含这样一个示例。我整天都在努力让他们的示例与 Play 一起工作,因为它不是以 root 身份启动的,因此可以访问默认端口 - ergo 必须准确地执行上述操作 - 几乎按原样使用你的文件并立即工作!谢谢。 该死!从头开始 - 结果我不小心连接到了 ec2 实例而不是前端负载均衡器。似乎您已经以某种方式使实例在端口 443 上提供服务(如果我可以让 ELB 与之对话,这可能很有用 - 完全不确定证书是如何提供的(我可能会正确添加)但是它是否正在以某种方式接收它)......回到头部敲打......以上是关于使用配置文件 (.ebextensions) 在自定义 VPC 中为 TCP 直通配置 Elastic Beanstalk 环境的负载均衡器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用配置文件 (.ebextensions) 在 AWS Elastic Beanstalk 上安装 PHP IMAP 扩展?
从 .ebextensions 配置文件访问 Elastic Beanstalk 环境属性
如何在 .ebextensions 配置中使用条件(AWS Elastic Beanstalk)
使用 .ebextensions 创建 WaitConditionHandle