将 Elastic Beanstalk 和 Amazon RDS 结合使用 - AWS Elastic Beanstalk
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将 Elastic Beanstalk 和 Amazon RDS 结合使用

AWS Elastic Beanstalk 提供了对在 Elastic Beanstalk 环境中运行 Amazon Relational Database Service (Amazon RDS) 实例的支持。要了解这一点,请参阅将数据库添加到 Elastic Beanstalk 环境。这对于开发和测试环境极为有用。但对生产环境却不理想,因为这会将数据库实例的生命周期绑定到应用程序的环境的生命周期。

注意

如果您之前没有将数据库实例与应用程序结合使用,请先尝试使用 Elastic Beanstalk 控制台将一个数据库实例添加到测试环境。这样,您就可以验证应用程序是否能够读取环境属性、构建连接字符串以及在将 Amazon Virtual Private Cloud (Amazon VPC) 和安全组配置添加到组合之前连接到数据库实例。有关详细信息,请参阅将数据库添加到 Elastic Beanstalk 环境

要从环境中分离数据库实例,您可以在 Amazon RDS 中运行数据库实例并将应用程序配置为在启动时连接到该数据库实例。这样,您就可以将多个环境连接到数据库、在不影响数据库的情况下终止环境以及通过蓝/绿部署执行无缝更新。有关详细过程,请参阅如何在没有停机、数据库同步问题或数据丢失的情况下将 Amazon RDS 实例与 Elastic Beanstalk 环境分离?

要允许环境中的 Amazon EC2 实例连接到外部数据库,您可以使用一个额外的安全组配置环境的 Auto Scaling 组。您附加到环境的安全组可以是附加到数据库实例的同一安全组,也可以是数据库的安全组允许从中传入流量的其他安全组。

注意

您可以通过向数据库的安全组添加规则来将环境连接到数据库,该安全组允许来自自动生成的安全组(由 Elastic Beanstalk 附加到环境的 Auto Scaling 组)的入口流量。但是,这样做会在两个安全组之间建立依赖关系。随后,当您尝试终止环境时,Elastic Beanstalk 将无法删除环境的安全组,因为数据库的安全组依赖于环境的安全组。

在启动数据库实例并配置安全组后,您可以使用环境属性将连接信息(终端节点、密码等)传递到应用程序。这是当您在环境中运行数据库实例时,Elastic Beanstalk 使用的相同机制。

为了提高安全性,您可以将连接信息存储在 Amazon S3 中,并将 Elastic Beanstalk 配置为在部署期间检索该信息。利用配置文件 (.ebextensions),您可以在部署应用程序时配置环境中的实例以从 Amazon S3 安全地检索文件。

清除外部 Amazon RDS 实例

在将外部 Amazon RDS 实例连接到 Elastic Beanstalk 环境时,数据库实例不会与环境的生命周期相关联,并且不会在您终止环境时被删除。要确保可能已存储在数据库实例中的个人信息不会被不必要地保留,请删除不再需要的任何记录或删除数据库实例。