“选项 1”的目标是探索 EC2 控制台中的自动连接功能,该功能可自动配置 EC2 实例与 RDS 数据库之间的连接,以允许从 EC2 实例到 RDS 数据库的流量。在“选项 3”中,您将学习如何手动配置连接。
开始前的准备工作
完成本教程需要做好以下准备:
-
与 EC2 实例位于同一 VPC 中的 RDS 数据库。您可以使用现有的 RDS 数据库,也可以按照“任务 1”中的步骤创建新的 RDS 数据库。
-
与 RDS 数据库位于同一 VPC 中的 EC2 实例。您可以使用现有的 EC2 实例,也可以按照“任务 2”中的步骤创建新的 EC2 实例。
-
调用以下操作的权限:
-
ec2:AssociateRouteTable
-
ec2:AuthorizeSecurityGroupEgress
-
ec2:CreateRouteTable
-
ec2:CreateSecurityGroup
-
ec2:CreateSubnet
-
ec2:DescribeInstances
-
ec2:DescribeNetworkInterfaces
-
ec2:DescribeRouteTables
-
ec2:DescribeSecurityGroups
-
ec2:DescribeSubnets
-
ec2:ModifyNetworkInterfaceAttribute
-
ec2:RevokeSecurityGroupEgress
-
任务 1:(可选)创建 RDS 数据库
注意
创建 Amazon RDS 数据库不是本教程的重点。如果您已拥有 RDS 数据库并希望在本教程中使用它,则可跳过此任务。
如果您使用现有的 RDS 数据库,请确保它与 EC2 实例位于同一 VPC 中,以便您可以使用自动连接功能。
此任务的目标是创建 RDS 数据库,以便您可以完成“任务 3”,在该任务中,您将配置 EC2 实例与 RDS 数据库之间的连接。此任务中的步骤将按以下方式配置 RDS 数据库:
-
引擎类型:MySQL
-
模板:免费套餐
-
数据库实例标识符:
tutorial-database-1
-
数据库实例类:
db.t3.micro
重要
在生产环境中,您应该配置数据库,以满足您的特定需求。
创建 MySQL RDS 数据库
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
从“Region selector”(区域选择器)(位于右上角)中选择一个 AWS 区域。数据库和 EC2 实例必须位于同一区域中,才能使用 EC2 控制台中的自动连接功能。
-
在控制面板中,选择 Create database(创建数据库)。
-
在 Choose a database creation method(选择数据库创建方法)下,检查并确保选择 Standard create(标准创建)。如果您选择 Easy create(轻松创建),则 VPC 选择器将不可用。您必须确保您的数据库与 EC2 实例位于同一 VPC 中,才能使用 EC2 控制台中的自动连接功能。
-
在 Engine options(引擎选项)下,对于 Engine type(引擎类型),选择 MySQL。
-
在 Templates(模板)下,选择一个满足您需求的示例模板。对于本教程,选择 Free tier(免费套餐)以免费创建 RDS 数据库。但请注意,仅当您的账户创建不到 12 个月时,免费套餐才可用。其他限制适用。您可以通过选择 Free tier(免费套餐)框中的 Info(信息)链接来阅读更多内容。
-
在 Settings (设置) 下,执行下列操作:
-
对于 DB instance identifier(数据库实例标识符),输入数据库的名称。在本教程中,请输入
tutorial-database-1
。 -
对于 Master username(主用户名),保留默认名称,即
admin
。 -
对于 Master password(主密码),输入您在本教程中可以记住的密码,然后对于 Confirm password(确认密码),再次输入该密码。
-
-
在实例配置下,对于数据库实例类,保留默认值,即 db.t3.micro。如果您的账户使用时间未满 12 个月,则可以免费使用此数据库类。其他限制适用。有关更多信息,请参阅 AWS Free Tier
。 -
在 Connectivity(连接)下,对于 Compute resource(计算资源),选择 Don't connect to an EC2 compute resource(不连接到 EC2 计算资源),因为您稍后将在“任务 3”中连接 EC2 实例和 RDS 数据库。
(稍后,在本教程的“选项 2”中,您将通过选择 Connect to an EC2 compute resource(连接到 EC2 计算资源),以试用 RDS 控制台中的自动连接功能。)
-
对于 Virtual private cloud (VPC)(虚拟私有云(VPC)),选择一个 VPC。该 VPC 必须具有一个数据库子网组。要使用自动连接功能,EC2 实例和 RDS 数据库必须位于同一 VPC 中。
-
对于此窗格中的其他字段,请保留所有默认值。
-
选择创建数据库。
在 Databases(数据库)屏幕上,在数据库准备就绪可供使用之前,新数据库的 Status(状态)为 Creating(正在创建)。当状态变为 Available(可用)时,您便可以连接到该数据库。根据数据库类和存储量,新数据库可能需要等待多达 20 分钟时间才可用。

任务 2:(可选)启动 EC2 实例
注意
启动实例不是本教程的重点。如果您已拥有 Amazon EC2 实例并希望在本教程中使用它,则可跳过此任务。
如果您使用现有的 EC2 实例,请确保它与您的 RDS 数据库位于同一 VPC 中,以便您可以使用自动连接功能。
此任务的目标是启动 EC2 实例,以便您可以完成“任务 3”,在该任务中,您将配置 EC2 实例与 Amazon RDS 数据库之间的连接。此任务中的步骤将按以下方式配置 EC2 实例:
-
实例名称:
tutorial-instance-1
-
AMI:Amazon Linux 2
-
实例类型:
t2.micro
-
自动分配公有 IP:已启用
-
具有以下三条规则的安全组:
-
允许来自您的 IP 地址的 SSH
-
允许来自任何地方的 HTTPS 流量
-
允许来自任何地方的 HTTP 流量
-
重要
在生产环境中,您应该配置实例,以满足您的特定需求。
启动 EC2 实例
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
从“Region selector”(区域选择器)(位于右上角)中选择一个 AWS 区域。实例与 RDS 数据库必须位于同一区域中,才能使用 EC2 控制台中的自动连接功能。
-
在 EC2 Dashboard(EC2 控制面板)上,选择 Launch instance(启动实例)。
-
在 Name and tags(名称与标签)下,对于 Name(名称),输入名称以标识您的实例。对于本教程,请将该实例命名为
tutorial-instance-1
。虽然实例名称不是必填项,但是当您在 EC2 控制台中选择实例时,该名称将帮助您轻松识别它。 -
在 Application and OS Images(应用程序和操作系统映像)下,选择满足您的 Web 服务器需求的 AMI。本教程使用 Amazon Linux 2。
-
在 Instance type(实例类型)下,对于 Instance type(实例类型),选择满足您的 Web 服务器需求的实例类型。本教程使用的是
t2.micro
。 -
在 Key pair (login)(密钥对(登录))下,对于 Key pair name(密钥对名称),选择您的密钥对。
-
在 Network settings(网络设置)下,执行以下操作:
-
对于 Network(网络)和 Subnet(子网),如果您尚未更改默认 VPC 或子网,则可以保留默认设置。
如果您对默认 VPC 或子网进行了更改,请检查以下各项:
-
实例必须与 RDS 数据库位于同一 VPC 中,才能使用自动连接功能。默认情况下,您只有一个 VPC。
-
您要将实例启动到其中的 VPC 必须连接互联网网关,以便您能从互联网访问您的 Web 服务器。您的默认 VPC 将自动设置互联网网关。
-
为了确保您的实例收到公有 IP 地址,对于 Auto-assign public IP(自动分配公有 IP),请检查并确保选择 Enable(启用)。如果选择 Disable (禁用),请选择 Edit(编辑)(位于 Network Settings(网络设置)右侧),然后对于 Auto-assign public IP(自动分配公有 IP),选择 Enable(启用)。
-
-
要使用 SSH 连接到您的实例,您需要一条安全组规则,授权来自您计算机的公有 IPv4 地址的 SSH (Linux) 或 RDP (Windows) 流量。默认情况下,当您启动实例时,将使用允许来自任何地方的入站 SSH 流量的规则创建新的安全组。
要确保只有您的 IP 地址才能连接到您的实例,请在防火墙(安全组)下,从允许入站 SSH 流量复选框旁边的下拉列表中,选择我的 IP。
-
要允许流量从互联网流向您的实例,请选中以下复选框:
-
Allow HTTPs traffic from the internet(允许来自互联网的 HTTPs 流量)
-
Allow HTTP traffic from the internet(允许来自互联网的 HTTP 流量)
-
-
-
在 Summary(摘要)面板中查看实例配置,然后选择 Launch instance(启动实例)。
-
保持确认页面处于打开状态。对于下一个任务,当您将实例自动连接到数据库时,您将需要该页面。
如果实例无法启动或状态立即转至
terminated
而非running
,请参阅 排查 Amazon EC2 实例启动问题。
有关启动实例的更多信息,请参阅 使用控制台中的启动实例向导来启动 EC2 实例。

任务 3:将 EC2 实例自动连接到 RDS 数据库
此任务的目标是使用 EC2 控制台中的自动连接功能自动配置 EC2 实例与 RDS 数据库之间的连接。
使用 EC2 控制台将 EC2 实例自动连接到 RDS 数据库
-
在实例启动确认页面(它应从上一个任务中打开)上,选择 Connect an RDS database(连接 RDS 数据库)。
如果您关闭了该确认页面,请按以下步骤操作:
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择您刚刚创建的 EC2 实例,然后选择 Actions(操作)、Networking(联网)、Connect RDS database(连接 RDS 数据库)。
如果 Connect RDS database(连接 RDS 数据库)不可用,请检查该 EC2 实例是否处于 Running(正在运行)状态。
-
对于 Database role(数据库角色),选择 Instance(实例)。本例中的实例是指数据库实例。
-
对于 RDS database(RDS 数据库),选择您在“任务 1”中创建的 RDS 数据库。
注意
EC2 实例和 RDS 数据库必须位于同一 VPC 中,以便相互连接。
-
选择连接。

任务 4:验证连接配置
此任务的目标是验证两个安全组是否已创建并分配给实例和数据库。
当您使用控制台中的自动连接功能配置连接时,将自动创建安全组并将其分配给实例和数据库,如下所示:
-
将创建安全组 rds-ec2-
x
并将其添加到 RDS 数据库中。它包含一条入站规则,引用 ec2-rds-x
安全组作为其来源。这将允许来自 EC2 实例(具有 ec2-rds-x
安全组)的流量到达 RDS 数据库。 -
将创建安全组 ec2-rds-
x
并将其添加到 EC2 实例中。它包含一条出站规则,引用 rds-ec2-x
安全组作为其目标。这将允许来自 EC2 实例的流量通过 rds-ec2-x
安全组到达 RDS 数据库。
使用控制台验证连接配置
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases(数据库)。
-
选择您为本教程创建的 RDS 数据库。
-
在 Connectivity & security(连接和安全性)选项卡的 Security(安全性)、VPC security groups(VPC 安全组)下,验证并确保显示名为 rds-ec2-
x
的安全组。 -
选择 rds-ec2-
x
安全组。EC2 控制台中的 Security Groups(安全组)屏幕打开。 -
选择 rds-ec2-
x
安全组以打开它。 -
选择入站规则选项卡。
-
验证并确保以下安全组规则存在,如下所示:
-
类型:MYSQL/Aurora
-
端口范围:3306
-
来源:
sg-0987654321example
/ ec2-rds-x
- 这是分配给您在前面的步骤中验证的 EC2 实例的安全组。 -
描述:允许来自 EC2 实例的连接的规则,附有
sg-1234567890example
-
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择您在上一个任务中选择要连接到 RDS 数据库的 EC2 实例,然后选择 Security(安全性)选项卡。
-
在 Security details(安全详细信息)的 Security groups(安全组)下,验证并确保列表中有名为 ec2-rds-
x
的安全组。x
是一个数字。 -
选择 ec2-rds-
x
安全组以打开它。 -
选择 Outbound rules(出站规则)选项卡。
-
验证并确保以下安全组规则存在,如下所示:
-
类型:MYSQL/Aurora
-
端口范围:3306
-
目标:
sg-1234567890example
/ rds-ec2-x
-
描述:允许从此安全组所连接的任何实例到
database-tutorial
的连接的规则
-
通过验证这些安全组和安全组规则是否存在,以及它们是否已按照此过程中所述分配给 RDS 数据库和 EC2 实例,您可以使用自动连接功能验证是否已自动配置连接。

您已完成本教程的“选项 1”。现在,您可以完成“选项 2”,它将介绍如何使用 RDS 控制台将 EC2 实例自动连接到 RDS 数据库;您也可以完成“选项 3”,它将介绍如何手动配置在“选项 1”中自动创建的安全组。
任务 5(可选):清理
现在您已完成该教程,最好清理(删除)所有您不再需要使用的资源。清理 AWS 资源可以防止您的账户产生任何进一步的费用。
如果您专门为本教程启动了 EC2 实例,则可以将其终止,以停止产生任何与之相关的费用。
使用控制台终止实例
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择实例。
-
选择您为本教程创建的实例,然后依次选择 Instance state(实例状态)、Terminate instance(终止实例)。
-
当系统提示您确认时,选择终止。
如果您专门为本教程创建了 RDS 数据库,则可以将其删除,以停止产生任何与之相关的费用。
使用控制台删除 RDS 数据库
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Databases(数据库)。
-
选择您为本教程创建的 RDS 数据库,然后依次选择 Actions(操作)、Delete(删除)。
-
在方框中输入
delete me
,然后选择 Delete(删除)。