AWS - 配置从 Beanstalk 应用程序对 EC2 实例的访问

Posted

技术标签:

【中文标题】AWS - 配置从 Beanstalk 应用程序对 EC2 实例的访问【英文标题】:AWS - Configuring access to EC2 instance from Beanstalk App 【发布时间】:2012-02-06 04:00:13 【问题描述】:

因此,出于我不愿深入探讨的原因,我的数据库位于 eu-west-1 的 EC2 实例上,并且我在 us-east-1 上创建了一个 beanstalk 应用程序。我希望我的应用程序在 mysql 端口 (3306) 上与该 EC2 实例通信。

任何人都可以帮助我如何设置它,我需要在 EC2 安全组上设置哪些入口规则?鉴于我将在 beanstalk 中拥有多个版本的应用程序,IP 地址可能会定期更改(在环境重建等之后)。

【问题讨论】:

【参考方案1】:

关于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.

【讨论】:

谢谢!这帮助很大。

以上是关于AWS - 配置从 Beanstalk 应用程序对 EC2 实例的访问的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk - .ebextensions

AWS Elastic BeanStalk php.ini 文件更新

JPA 无法从 Beanstalk 连接到 AWS RDS,但它可以在本地工作

共享 AWS Elastic Beanstalk 配置以将 git 部署到 AWS

AWS Elastic Beanstalk 容器命令失败

AWS Beanstalk 上的 Python。如何对自定义日志进行快照?