我有一个在弹性beanstalk上运行的应用程序。应用程序是负载平衡的,SSL由负载均衡器处理。
如何安全访问群集中的各个节点?
我想这样做,以便我可以通过JMX连接并询问各个节点 - 获取连接池指标并更改日志配置。
答案 0 :(得分:1)
使用标准的Elastic Beanstalk配置不允许您访问除端口22之外的节点。原因是标准设置只允许负载均衡器访问EC2节点;这是出于安全原因。
但是,设置所需的配置并非不可能。
在您需要的节点上使用SSL:
Step 1: Create an SSL Certificate and Private Key
Step 2: Create an SSL Configuration File
Step 3: Open Port 443
Step 4: Complete the Configuration File for Your Container Type
您可以在此处找到Java容器的设置: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/SSLJava.SingleInstance.html
由于您的环境具有弹性,注册负载均衡器后面的EC2主机名将会非常复杂。最简单的方法是询问您的AWS Dashboard以获取主机名。
其他选项包括使用AWS CLI工具配置脚本以轮询EB环境并返回主机名;或者为JMX找到一个集群解决方案(http://www.jmanage.org/)。
答案 1 :(得分:0)
您可以通过设置VPC并将节点放置在VPC的私有子网中来实现此目的。在您的公共子网上,您可以设置VPN服务器,AWS市场中有一堆可用,然后您可以通过VPN连接到该计算机 - 这可以将流量路由到您的私有子网。
另一种选择是在每个节点上将代理放在应用程序前面,比如Nginx。在代理上安装SSL证书,以便代理将处理SSL。这样,您就可以通过代理命中节点并获得安全流量。
如果您有许多节点,您可能需要构建某种服务注册表以进行发现。