因为出于Id而不是进入的原因,我的数据库位于eu-west-1的EC2实例上,我在us-east-1上创建了一个beanstalk应用程序。我喜欢我的应用程序与MySQL端口上的EC2实例进行通信(3306)。
任何人都可以协助我如何设置这个,我需要在EC2安全组上设置哪些入口规则?鉴于我将在beanstalk中有多个版本的应用程序,IP地址可能会定期更改(在环境重建之后等)。
答案 0 :(得分:13)
您可能遗漏的关于Security Group Rules的重要概念是,您不一定仅将IP地址指定为流量来源,而是定期引用其他安全组:
源可以是单独的IP地址(203.0.113.1),范围是 地址(例如,203.0.113.0 / 24),或EC2安全组。该 安全组可以是您的AWS账户中的另一个组,一个组 另一个AWS账户或安全组本身。
通过指定安全组作为源,允许传入 来自属于源安全组的所有实例的流量。 [...]如果您正在创建帐户,则可以在帐户中指定其他安全组 三层Web服务(请参阅创建三层Web服务)。
[强调我的]
因此,您只需将Beanstalk应用实例安全组添加为MySQL实例安全组内TCP端口3306的流量源。
让自己熟悉的另一个概念是,您可以将多个安全组分配给实例,从而启用(可能是动态的)最终防火墙的组合。
例如,大型架构的推荐做法建议为每个“角色”指定一个专用的安全组,而不是像往常一样在一个安全组中累积多个规则,例如:我们有安全组,如'role-ssh'(TCP端口22)和'role-mysql'(TCP端口3306),它们依次分配给EC2实例。你可以在例如更多地了解这个概念。 Security Groups - Most Underappreciated Feature of Amazon EC2