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

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

要将外部数据库与在 Elastic Beanstalk 中运行的应用程序结合使用,您有两种选项可以选择。或者,您可以使用 Amazon RDS 启动数据库实例。使用 Amazon RDS 启动的任何实例均完全独立于 Elastic Beanstalk 和您的 Elastic Beanstalk 环境。这意味着,您可以使用 Amazon RDS 支持的任何数据库引擎和实例类型,甚至是 Elastic Beanstalk 未使用的数据库引擎和实例类型。

或者,作为启动新数据库实例的替代方案,您可以从先前由 Elastic Beanstalk 创建并随后与 Beanstalk 环境解耦的数据库开始。有关更多信息,请参阅 将数据库添加到 Elastic Beanstalk 环境。使用此选项后,您无需完成启动新数据库的过程。但是,您确实需要完成本主题中介绍的后续过程。

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

注意
  • 如果您从 Elastic Beanstalk 创建并随后与 Beanstalk 环境解耦的数据库开始,则可以跳过第一组步骤,然后按 To modify the inbound rules on your RDS instance's security group(修改 RDS 实例的安全组上的入站规则)下分组的步骤继续。

  • 如果您计划为生产环境使用解耦数据库,请验证数据库使用的存储类型适合您的工作负载。有关更多信息,请参阅《Amazon RDS 用户指南》中的数据库实例存储修改数据库实例

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

  1. 打开 RDS 控制台

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

  3. 选择创建数据库

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

    重要

    请勿选择 Easy Create (轻松创建)。如果您选择它,您将无法配置启动此 RDS 数据库所需的设置。

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

  6. 查看默认设置并根据您的具体要求调整这些设置。请注意以下选项:

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

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

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

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

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

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

  1. 打开 Amazon RDS 控制台

  2. 选择数据库

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

  4. Connectivity (连接) 部分中,记下在该页上显示的 Subnets (子网)Security groups (安全组)Endpoint (端点)。这样您可以稍后使用这些信息。

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

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

  7. 选择 Edit

  8. 选择 Add Rule

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

  10. 对于,键入 sg- 以查看可用安全组的列表。选择 Elastic Beanstalk 环境中使用的与 Auto Scaling 组关联的安全组。这样,环境中的 Amazon EC2 实例就可以访问数据库。

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

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

向环境添加安全组

  • 请执行下列操作之一:

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

      1. 打开 Elastic Beanstalk 控制台,然后在 Regions (区域) 列表中选择您的 Amazon 区域。

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

        注意

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

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

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

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

      6. 选择 Apply

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

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

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

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

  1. 打开 Elastic Beanstalk 控制台,然后在 Regions (区域) 列表中选择您的 Amazon 区域。

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

    注意

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

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

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

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

    属性名称 描述 属性值

    RDS_HOSTNAME

    数据库实例的主机名。

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

    RDS_PORT

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

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

    RDS_DB_NAME

    数据库名称 ebdb

    在 Amazon RDS 控制台的 Configuration (配置) 选项卡上:DB Name (数据库名称)

    RDS_USERNAME

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

    在 Amazon RDS 控制台的 Configuration (配置) 选项卡上:Master username (主用户名)

    RDS_PASSWORD

    您为数据库配置的密码。

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

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

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

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

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

  1. 打开 Elastic Beanstalk 控制台,然后在 Regions (区域) 列表中选择您的 Amazon 区域。

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

    注意

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

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