

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在默认 VPC 中启动并连接到外部 Amazon RDS 实例
<a name="rds-external-defaultvpc"></a>

以下步骤描述了将外部 Amazon RDS 实例连接到[默认 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) 的过程。如果您使用的是自定义 VPC，该流程也是相同的。唯一的附加要求是环境和数据库实例位于同一子网中，或位于可以互相通信的子网中。有关配置与 Elastic Beanstalk 一起使用的自定义 VPC 的更多信息，请参阅[将 Elastic Beanstalk 和 Amazon VPC 结合使用](vpc.md)。

**注意**  
启动新数据库实例的另一种方法是从先前由 Elastic Beanstalk 创建并随后与 Beanstalk 环境[解耦](using-features.managing.db.md#using-features.decoupling.db)的数据库开始。有关更多信息，请参阅 [将数据库添加到 Elastic Beanstalk 环境](using-features.managing.db.md)。使用此选项后，您无需完成启动新数据库的过程。但是，您确实需要完成本主题中介绍的后续过程。
如果您从 Elastic Beanstalk 创建并随后与 Beanstalk 环境解耦的数据库开始，则可以跳过第一组步骤，然后按 *To modify the inbound rules on your RDS instance's security group*（修改 RDS 实例的安全组上的入站规则）下分组的步骤继续。
 如果您计划为生产环境使用解耦数据库，请验证数据库使用的存储类型适合您的工作负载。有关更多信息，请参阅《Amazon RDS 用户指南》**中的[数据库实例存储](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html)和[修改数据库实例](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)。

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

1. 打开 [RDS 控制台](https://console.aws.amazon.com/rds/home)。

1. 在导航窗格中，选择 **Databases**（数据库）。

1. 选择**创建数据库**。

1. 选择 **Standard Create**（标准创建）。
**重要**  
请勿选择 **Easy Create**（轻松创建）。如果您选择它，您将无法配置启动此 RDS 数据库所需的设置。

1. 在 **Additional configuration**（附加配置）下，对于 **Initial database name**（初始数据库名称），键入 **ebdb**。

1. 请查看默认设置并根据您的具体要求调整这些设置。请注意以下选项：
   + **DB instance class**（数据库实例类）– 选择对于您的工作负载具有适当的内存量和 CPU 能力的实例大小。
   + **多可用区部署** — 为了获得高可用性，请将其设置为在**不同的可用区中创建 Aurora Replica/Reader 节点**。
   + **Master username**（主用户名）和 **Master password**（主密码）– 数据库用户名和密码。请记下这些设置，因为您以后将使用这些值。

1. 验证其余选项的默认设置，然后选择 **Create database**（创建数据库）。

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

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

1. 打开 [Amazon RDS 控制台](https://console.aws.amazon.com/rds/home)。

1. 选择 **Databases**（数据库）。

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

1. 在**连接**部分中，记下在该页上显示的**子网**、**安全组**和**端点**。这样您稍后可以使用这些信息。

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

1. 在安全组详细信息中，选择 **Inbound**（入站）选项卡。

1. 选择 **Edit**（编辑）。

1. 选择 **Add Rule**（添加规则）。

1. 对于 **Type**（类型），请选择应用程序使用的数据库引擎。

1. 对于 **Source**（源），键入 **sg-** 以查看可用安全组的列表。请选择 Elastic Beanstalk 环境中使用的与 Auto Scaling 组关联的安全组。这样，环境中的 Amazon EC2 实例就可以访问数据库。  
![用于在 Amazon EC2 控制台中编辑安全组入站规则的屏幕图像。](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/images/ec2-securitygroup-rds.png)

1. 选择**保存**。

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

**向环境添加安全组**
+ 请执行以下操作之一：
  + 使用 Elastic Beanstalk 控制台添加安全组

    1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

    1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

    1. 在导航窗格中，选择 **Configuration**（配置）。

    1. 在 **Instances**（实例）配置类别中，选择 **Edit**（编辑）。

    1. 在**EC2 安全组**下，除了 Elastic Beanstalk 创建的实例安全组外，还要选择要附加到实例的安全组。

    1. 要保存更改，请选择页面底部的 **Apply**（应用）。

    1. 阅读警告，然后选择 **Confirm**（确认）。
  + 要使用[配置文件](ebextensions.md)添加安全组，请使用 [https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config](https://github.com/awsdocs/elastic-beanstalk-samples/tree/main/configuration-files/aws-provided/security-configuration/securitygroup-addexisting.config) 示例文件。

接下来，使用环境属性将连接信息传递到环境。在使用 Elastic Beanstalk 控制台[向环境中添加数据库实例](using-features.managing.db.md)时，Elastic Beanstalk 使用 **RDS\_HOSTNAME** 等环境属性将连接信息传递到您的应用程序。您可以使用相同的属性。这样，您就可以为集成的数据库实例和外部的数据库实例使用相同的应用程序代码。或者，您可以选择自己的属性名称。

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

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

1. 在导航窗格中，选择 **Configuration**（配置）。

1. 在 **Updates, monitoring, and logging**（更新、监控和日志记录）配置类别中，选择 **Edit**（编辑）。

1. 在**环境属性**部分中，定义应用程序读取的用于构建连接字符串的变量。为了实现与具有集成 RDS 数据库实例的环境的兼容，请使用以下名称和值。您可以在 [RDS 控制台](https://console.aws.amazon.com/rds/home)中找到除密码以外的所有值。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/rds-external-defaultvpc.html)  
![添加了 RDS 属性的环境属性配置部分](http://docs.aws.amazon.com/zh_cn/elasticbeanstalk/latest/dg/images/environment-cfg-envprops-rds.png)

1. 要保存更改，请选择页面底部的 **Apply**（应用）。

如果您尚未将应用程序编程为读取环境属性和构建连接字符串，请参阅以下特定于语言的主题以获得指导：
+ Java SE – [连接数据库 (Java SE 平台)](java-rds.md#java-rds-javase)
+ Java with Tomcat – [连接数据库 (Tomcat 平台)](java-rds.md#java-rds-tomcat)
+ Node.js – [连接到数据库](create-deploy-nodejs.rds.md#nodejs-rds-connect)
+ .NET – [连接到数据库](create_deploy_NET.rds.md#dotnet-rds-connect)
+ PHP – [使用 PDO 或 “我的” 连接到数据库 SQLi](create_deploy_PHP.rds.md#php-rds-connect)
+ Python – [连接到数据库](create-deploy-python-rds.md#python-rds-connect)
+ Ruby – [连接到数据库](create_deploy_Ruby.rds.md#ruby-rds-connect)

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

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

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

1. 选择 **Actions**（操作），然后选择 **Restart app server(s)**（重启应用程序服务器）。