在默认 VPC 中启动并连接到外部 Amazon RDS 实例 - AWS Elastic Beanstalk
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

在默认 VPC 中启动并连接到外部 Amazon RDS 实例

要将外部数据库与在 Elastic Beanstalk 中运行的应用程序结合使用,请首先使用 Amazon RDS 启动数据库实例。您使用 Amazon RDS 启动的任何实例都完全独立于 Elastic Beanstalk 和 Elastic Beanstalk 环境,并且在配置上不依赖于 Elastic Beanstalk。这意味着,您可以使用 Amazon RDS 支持的任何数据库引擎和实例类型,甚至是 Elastic Beanstalk 未使用的数据库引擎和实例类型。

以下过程介绍默认 VPC 的流程。如果您使用的是自定义 VPC,该流程也是相同的。唯一的附加要求是环境和数据库实例位于同一子网中,或位于可以互相通信的子网中。有关配置与 Elastic Beanstalk 一起使用的自定义 VPC 的详细信息,请参阅将 Elastic Beanstalk 与 Amazon VPC 结合使用

在默认 VPC 中启动 RDS 数据库实例

  1. 打开 RDS 控制台

  2. 在导航窗格中选择 Databases (数据库)。

  3. 选择创建数据库

  4. 选择 Standard Create (标准创建)

    重要

    请勿选择 Easy Create (轻松创建)。它不允许您配置启动此 RDS 数据库所需的设置。

  5. Additional configuration (附加配置) 下,对于 Initial database name (初始数据库名称),键入 ebdb

  6. 仔细查看默认设置并根据需要进行调整。请注意以下选项:

    • 数据库实例类 – 选择对于您的工作负载具有适当的内存量和 CPU 能力的实例大小。

    • 多可用区部署 – 为了实现高可用性,请将其设置为 Create an Aurora Replica/Reader node in a different AZ (在其他可用区中创建 Aurora 副本/读取器节点)

    • 主用户名主密码 – 数据库用户名和密码。请记下这些设置,因为您以后将使用这些值。

  7. 验证其余选项的默认设置,然后选择创建数据库

接下来,修改附加到数据库实例的安全组以允许相应的端口上的入站流量。这与您稍后要附加到 Elastic Beanstalk 环境的安全组相同,因此您添加的规则将向同一安全组中的其他资源授予入口流量权限。

修改 RDS 实例的安全组上的入站规则

  1. 打开 Amazon RDS 控制台

  2. 选择数据库

  3. 选择您的数据库实例的名称以查看其详细信息。

  4. 连接部分中,记下在该页上显示的子网安全组终端节点,以便您以后使用该信息。

  5. 安全性下面,您可以查看与数据库实例关联的安全组。打开链接以在 Amazon EC2 控制台中查看安全组。

    
        Amazon RDS 控制台中“数据库实例”页面的“连接”部分
  6. 在安全组详细信息中,选择入站选项卡。

  7. 选择 Edit

  8. 选择 Add Rule

  9. 对于类型,请选择应用程序使用的数据库引擎。

  10. 对于,键入 sg- 以查看可用安全组的列表。选择当前安全组以允许安全组中的资源从同一组中的其他资源接收数据库端口上的流量。

    
        在 Amazon EC2 控制台中编辑安全组的入站规则
  11. 选择 Save

接下来,将数据库实例的安全组添加到您的运行环境。此过程将使 Elastic Beanstalk 使用附加的其他安全组重新配置环境中的所有实例。

向环境添加安全组

  • 执行以下任一操作:

    • 使用 Elastic Beanstalk 控制台添加安全组

      1. 打开 Elastic Beanstalk 控制台,然后在区域下拉列表中选择您的区域。

      2. 在导航窗格中,选择 Environments (环境),然后在列表中选择环境的名称。

        注意

        如果您有多个环境,请使用搜索栏筛选环境列表。

      3. 在导航窗格中,选择 Configuration (配置)

      4. Instances (实例) 配置类别中,选择 Edit (编辑)

      5. EC2 安全组下面,选择 Elastic Beanstalk 创建的实例安全组以及要附加到实例的安全组。

      6. 选择 Apply

      7. 阅读警告,然后选择确认

    • 要使用配置文件添加安全组,请使用 securitygroup-addexisting.config 示例文件。

接下来,使用环境属性将连接信息传递到环境。在使用 Elastic Beanstalk 控制台在环境中添加数据库实例时,Elastic Beanstalk 使用 RDS_HOSTNAME 等环境属性将连接信息传送到您的应用程序。您可以使用相同的属性,这将允许您将相同的应用程序代码与集成的数据库实例和外部数据库实例结合使用,您也可以选择自己的属性名称。

为 Amazon RDS 数据库实例配置环境属性

  1. 打开 Elastic Beanstalk 控制台,然后在区域下拉列表中选择您的区域。

  2. 在导航窗格中,选择 Environments (环境),然后在列表中选择环境的名称。

    注意

    如果您有多个环境,请使用搜索栏筛选环境列表。

  3. 在导航窗格中,选择 Configuration (配置)

  4. Software (软件) 配置类别中,选择 Edit (编辑)

  5. 环境属性部分中,定义应用程序读取的用于构建连接字符串的变量。为了实现与具有集成 RDS 数据库实例的环境的兼容,请使用以下名称和值。您可以在 RDS 控制台中找到除密码以外的所有值。

    属性名称 描述 属性值

    RDS_HOSTNAME

    数据库实例的主机名。

    在 Amazon RDS 控制台的 Connectivity & security (连接和安全) 选项卡上:终端节点

    RDS_PORT

    数据库实例接受连接的端口。默认值因数据库引擎而异。

    在 Amazon RDS 控制台的 Connectivity & security (连接和安全) 选项卡上:端口

    RDS_DB_NAME

    数据库名称 ebdb

    在 Amazon RDS 控制台的配置选项卡上:数据库名称

    RDS_USERNAME

    您为数据库配置的用户名。

    在 Amazon RDS 控制台的配置选项卡上:主用户名

    RDS_PASSWORD

    您为数据库配置的密码。

    在 Amazon RDS 控制台中不可供参考。

    
        添加了 RDS 属性的环境属性配置部分
  6. 选择 Apply

如果您尚未将应用程序编程为读取环境属性和构建连接字符串,请参阅以下特定于语言的主题以获得指导:

最后,根据应用程序读取环境变量的时间,您可能需要在环境中的实例上重新启动应用程序服务器。

重新启动您的环境的应用程序服务器

  1. 打开 Elastic Beanstalk 控制台,然后在区域下拉列表中选择您的区域。

  2. 在导航窗格中,选择 Environments (环境),然后在列表中选择环境的名称。

    注意

    如果您有多个环境,请使用搜索栏筛选环境列表。

  3. 选择 Environment actions (环境操作),然后选择 Restart app server(s) (重新启动应用程序服务器)