因此,出于我不想进入的原因,我的数据库位于 eu-west-1 的 EC2 实例上,并且我在 us-east-1 上创建了一个 beanstalk 应用程序。我希望我的应用程序在 MySQL 端口 (3306) 上与该 EC2 实例通信。
任何人都可以协助 Id 如何设置它,我需要在 EC2 安全组上设置哪些入口规则?鉴于我将在 beanstalk 中有多个版本的应用程序,IP 地址可能会定期更改(在环境重建等之后)。
因此,出于我不想进入的原因,我的数据库位于 eu-west-1 的 EC2 实例上,并且我在 us-east-1 上创建了一个 beanstalk 应用程序。我希望我的应用程序在 MySQL 端口 (3306) 上与该 EC2 实例通信。
任何人都可以协助 Id 如何设置它,我需要在 EC2 安全组上设置哪些入口规则?鉴于我将在 beanstalk 中有多个版本的应用程序,IP 地址可能会定期更改(在环境重建等之后)。
您可能缺少的关于安全组规则的重要概念是,您不必单独指定 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 实例。您可以在例如安全组 - Amazon EC2 的最被低估的功能中阅读有关此概念的更多信息。