我们有一个EC2实例,它是一个网站,它使用一个mysql数据库,该数据库位于同一区域的另一个EC2实例上。在mysql中,我们提供了基于服务器弹性IP的受限访问,以防止入侵。 现在,我们决定在这台服务器上安装ELB。 ELB部分实际上工作正常,但是当自动缩放旋转新实例时,它具有随机公共IP地址,因此无法添加到mysql的异常中。 我尝试将ELB dns(A Name)添加到mysql以提供访问权限,但它仍然无效。 ELB工作,自动缩放旋转新实例,但网站显示错误,因为没有连接到数据库。
我该如何纠正?
答案 0 :(得分:4)
使用安全组:
,而不是通过IP地址限制访问App-SG
)并将其与允许与MySQL服务器通信的任何实例关联SQL-SG
)并允许来自App-SG
的入站连接这样,只允许具有App-SG
的计算机与MySQL实例通信。当 Auto Scaling 启动与App-SG
关联的新实例时,他们也可以与MySQL通信。
您应尽可能避免使用硬编码的IP地址(例如......永远不要使用它们!)。
答案 1 :(得分:1)
不要通过IP限制数据库访问,而应考虑按子网限制。
你将有一个公共子项(webserver和ELB在那里)和一个私有子(数据库服务器在那里) 互联网上的每个人都可以访问公有子网中的计算机,私有子网中的计算机只能用于公有子网中的计算机。
有关此类配置的更多信息,请访问: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html
为了管理数据库服务器,您可以设置堡垒主机: http://blogs.aws.amazon.com/security/post/Tx2ZWDW1QA6D62Y/Controlling-Network-Access-to-EC2-Instances-Using-a-Bastion-Server