

# Tutorial: Connect an Amazon EC2 instance to an Amazon RDS database（教程：将 Amazon EC2 实例连接到 Amazon RDS 数据库）
<a name="tutorial-connect-ec2-instance-to-rds-database"></a>

## 教程目标
<a name="tutorial-connect-ec2-rds-objective"></a>

本教程的目标是学习如何使用 AWS 管理控制台 配置 Amazon EC2 实例与 Amazon RDS 数据库之间的安全连接。

有不同的选项用于配置连接。在本教程中，我们将探讨以下三个选项：
+ [选项 1：使用 EC2 控制台将实例自动连接到 RDS 数据库](tutorial-ec2-rds-option1.md)

  使用 EC2 控制台中的自动连接功能自动配置 EC2 实例与 RDS 数据库之间的连接，以允许 EC2 实例与 RDS 数据库之间的流量。
+ [选项 2：使用 RDS 控制台将实例自动连接到 RDS 数据库](tutorial-ec2-rds-option2.md)

  使用 RDS 控制台中的自动连接功能自动配置 EC2 实例与 RDS 数据库之间的连接，以允许 EC2 实例与 RDS 数据库之间的流量。
+ [选项 3：通过创建安全组，将实例手动连接到 RDS 数据库](tutorial-ec2-rds-option3.md)

  通过手动配置和分配安全组来配置 EC2 实例与 RDS 数据库之间的连接，以重现由“选项 1”和“选项 2”中的自动连接功能自动创建的配置。

## 上下文
<a name="tutorial-connect-ec2-rds-context"></a>

作为您为何要在 EC2 实例与 RDS 数据库之间配置连接的背景，让我们考虑以下场景：您的网站向您的用户提供一份表单以供填写。您需要在数据库中捕获表单数据。您可以在已配置为 Web 服务器的 EC2 实例上托管您的网站，也可以在 RDS 数据库中捕获该表单数据。EC2 实例和 RDS 数据库需要相互连接，以便表单数据可以从 EC2 实例传输到 RDS 数据库。本教程介绍如何配置该连接。请注意，这只是连接 EC2 实例与 RDS 数据库的使用案例的一个示例。

## 架构
<a name="tutorial-connect-ec2-rds-architecture"></a>

下图显示了创建的资源以及完成本教程中的所有步骤后生成的架构配置。

![\[创建的资源以及完成本教程中的所有步骤后生成的架构配置。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/ec2-rds-tutorial-architecture.png)


该图说明了您将创建的以下资源：
+ 您将在同一 AWS 区域、VPC 和可用区中创建 EC2 实例及 RDS 数据库。
+ 您将在公有子网中创建 EC2 实例。
+ 您将在私有子网中创建 RDS 数据库。

  当您使用 RDS 控制台创建 RDS 数据库并自动连接 EC2 实例时，将自动选择数据库的 VPC、数据库（DB）子网组和公有访问设置。将在与 EC2 实例相同的 VPC 内的私有子网中自动创建 RDS 数据库。
+ 互联网用户可以通过互联网网关使用 SSH 或 HTTP/HTTPS 连接到 EC2 实例。
+ 互联网用户无法直接连接到 RDS 数据库；只有 EC2 实例连接到 RDS 数据库。
+ 当您使用自动连接功能允许 EC2 实例与 RDS 数据库之间的流量时，将自动创建并添加以下安全组：
  + 将创建安全组 **ec2-rds-*x*** 并将其添加到 EC2 实例中。它包含一条出站规则，引用 **rds-ec2-*x*** 安全组作为其目标。这将允许来自 EC2 实例的流量通过 **rds-ec2-*x*** 安全组到达 RDS 数据库。
  + 将创建安全组 **rds-ec2-*x*** 并将其添加到 RDS 数据库中。它包含一条入站规则，引用 **ec2-rds-*x*** 安全组作为其来源。这将允许来自 EC2 实例（具有 **ec2-rds-*x*** 安全组）的流量到达 RDS 数据库。

  通过使用独立的安全组（一个用于 EC2 实例，一个用于 RDS 数据库），您可以更好地控制实例和数据库的安全性。如果您要在实例和数据库上使用同一安全组，然后将该安全组修改为仅适合（比如）数据库，则该修改将同时影响实例和数据库。换言之，如果您要使用一个安全组，则可能会无意中修改资源（实例或数据库）的安全性，因为您忘记了该安全组已连接到该资源。

  自动创建的安全组也遵循最低权限，因为它们仅允许通过创建特定于工作负载的安全组对，在数据库端口上为此工作负载建立相互连接。

## 注意事项
<a name="tutorial-connect-ec2-rds-considerations"></a>

在完成本教程中的任务时，请注意以下几点：
+ **两个控制台** - 在本教程中，您将使用以下两个控制台：
  + Amazon EC2 控制台 - 您将使用 EC2 控制台启动实例，将 EC2 实例自动连接到 RDS 数据库，以及使用手动选项通过创建安全组来配置连接。
  + Amazon RDS 控制台 - 您将使用 RDS 控制台创建 RDS 数据库，然后将 EC2 实例自动连接到 RDS 数据库。
+ **一个 VPC** - 要使用自动连接功能，EC2 实例和 RDS 数据库必须位于同一 VPC 中。

  如果您要手动配置 EC2 实例与 RDS 数据库之间的连接，可以在一个 VPC 中启动 EC2 实例，在另一个 VPC 中启动 RDS 数据库；但是，您需要设置额外的路由和 VPC 配置。本教程中未涵盖此场景。
+ **一个 AWS 区域** - EC2 实例和 RDS 数据库必须位于同一区域中。
+ **两个安全组** - EC2 实例与 RDS 数据库之间的连接由两个安全组配置 - 一个安全组用于 EC2 实例，一个安全组用于 RDS 数据库。

  当您使用 EC2 控制台或 RDS 控制台中的自动连接功能配置连接（本教程的“选项 1”和“选项 2”）时，将自动创建安全组并将其分配给 EC2 实例和 RDS 数据库。

  如果您不使用自动连接功能，则需要手动创建和分配安全组。您可以在本教程的“选项 3”中执行此操作。

## 完成教程所需的时间
<a name="tutorial-connect-ec2-rds-time"></a>

30 分钟

您可以一口气完成整个教程，也可以一次完成一项任务。

## 成本
<a name="tutorial-connect-ec2-rds-costs"></a>

您在完成本教程过程中创建的 AWS 资源可能会产生费用。

您可以在[免费套餐](https://aws.amazon.com/free/)下使用 Amazon EC2，前提是您的 AWS 账户符合免费套餐的资格，并且您根据免费套餐要求配置资源。有关更多信息，请参阅 [2025 年 7 月 15 日之前和之后的免费套餐权益](ec2-free-tier-usage.md#ec2-free-tier-comparison)。

如果 EC2 实例和 RDS 数据库位于不同的可用区中，则需要支付数据传输费。为了避免产生这些费用，EC2 实例和 RDS 数据库必须位于同一可用区中。有关数据传输费的信息，请参阅“Amazon EC2 On-Demand Pricing”（Amazon EC2 按需定价）页面上的 [Data Transfer](https://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer)（数据传输）。

为了防止在您完成教程后产生费用，请确保在不再需要资源时将其删除。有关删除资源的步骤，请参阅[任务 4（*可选*）：清理](tutorial-ec2-rds-option3.md#tutorial-ec2-rds-clean-up)。

# 选项 1：使用 EC2 控制台将实例自动连接到 RDS 数据库
<a name="tutorial-ec2-rds-option1"></a>

“选项 1”的目标是探索 EC2 控制台中的自动连接功能，该功能可自动配置 EC2 实例与 RDS 数据库之间的连接，以允许从 EC2 实例到 RDS 数据库的流量。在“选项 3”中，您将学习如何手动配置连接。

**Topics**
+ [开始前的准备工作](#option1-before-you-begin)
+ [任务 1：（*可选*）创建 RDS 数据库](#option1-task1-create-rds-database)
+ [任务 2：（*可选*）启动 EC2 实例](#option1-task2-launch-ec2-instance)
+ [任务 3：将 EC2 实例自动连接到 RDS 数据库](#option1-task3-connect-ec2-instance-to-rds-database)
+ [任务 4：验证连接配置](#option1-task4-verify-connection-configuration)
+ [任务 5（*可选*）：清理](#option2-task5-cleanup)

## 开始前的准备工作
<a name="option1-before-you-begin"></a>

完成本教程需要做好以下准备：
+ 与 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 数据库
<a name="option1-task1-create-rds-database"></a>

**注意**  
创建 Amazon RDS 数据库不是本教程的重点。如果您已拥有 RDS 数据库并希望在本教程中使用它，则可跳过此任务。  
如果您使用现有的 RDS 数据库，请确保它与 EC2 实例位于同一 VPC 中，以便您可以使用自动连接功能。

此任务的目标是创建 RDS 数据库，以便您可以完成“任务 3”，在该任务中，您将配置 EC2 实例与 RDS 数据库之间的连接。此任务中的步骤将按以下方式配置 RDS 数据库：
+ 引擎类型：MySQL
+ 模板：免费套餐
+ 数据库实例标识符：**tutorial-database-1**
+ 数据库实例类：`db.t3.micro`

**重要**  
在生产环境中，您应该配置数据库，以满足您的特定需求。

**创建 MySQL RDS 数据库**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 从“Region selector”（区域选择器）（位于右上角）中选择一个 AWS 区域。数据库和 EC2 实例必须位于同一区域中，才能使用 EC2 控制台中的自动连接功能。

1. 在控制面板中，选择 **Create database**（创建数据库）。

1. 在 **Choose a database creation method**（选择数据库创建方法）下，检查并确保选择 **Standard create**（标准创建）。如果您选择 **Easy create**（轻松创建），则 VPC 选择器将不可用。您必须确保您的数据库与 EC2 实例位于同一 VPC 中，才能使用 EC2 控制台中的自动连接功能。

1. 在 **Engine options**（引擎选项）下，对于 **Engine type**（引擎类型），选择 **MySQL**。

1. 在 **Templates**（模板）下，选择一个满足您需求的示例模板。对于本教程，选择 **Free tier**（免费套餐）以免费创建 RDS 数据库。但请注意，免费套餐仅适用于符合免费套餐资格的账户。您可以通过选择 **Free tier**（免费套餐）框中的 **Info**（信息）链接来阅读更多内容。

1. 在 **Settings (设置)** 下，执行下列操作：

   1. 对于 **DB instance identifier**（数据库实例标识符），输入数据库的名称。在本教程中，请输入 **tutorial-database-1**。

   1. 对于 **Master username**（主用户名），保留默认名称，即 **admin**。

   1. 对于 **Master password**（主密码），输入您在本教程中可以记住的密码，然后对于 **Confirm password**（确认密码），再次输入该密码。

1. 在**实例配置**下，对于**数据库实例类**，保留默认值，即 **db.t3.micro**。如果您的账户符合免费套餐的资格，则可以免费使用此数据库类。有关更多信息，请参阅 [AWS 免费套餐](https://aws.amazon.com/free/)。

1. 在 **Connectivity**（连接）下，对于 **Compute resource**（计算资源），选择 **Don't connect to an EC2 compute resource**（不连接到 EC2 计算资源），因为您稍后将在“任务 3”中连接 EC2 实例和 RDS 数据库。

   （稍后，在本教程的“选项 2”中，您将通过选择 **Connect to an EC2 compute resource**（连接到 EC2 计算资源），以试用 RDS 控制台中的自动连接功能。）

1. 对于 **Virtual private cloud (VPC)**（虚拟私有云（VPC）），选择一个 VPC。该 VPC 必须具有一个数据库子网组。要使用自动连接功能，EC2 实例和 RDS 数据库必须位于同一 VPC 中。

1. 对于此窗格中的其他字段，请保留所有默认值。

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

   在 **Databases**（数据库）屏幕上，在数据库准备就绪可供使用之前，新数据库的 **Status**（状态）为 **Creating**（正在创建）。当状态变为 **Available**（可用）时，您便可以连接到该数据库。根据数据库类和存储量，新数据库可能需要等待多达 20 分钟时间才可用。

### 观看动画：创建 RDS 数据库
<a name="task1-create-rds-database-animation"></a>

![\[此动画演示如何创建 RDS 数据库。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-create-rds-database.gif)


## 任务 2：（*可选*）启动 EC2 实例
<a name="option1-task2-launch-ec2-instance"></a>

**注意**  
启动实例不是本教程的重点。如果您已拥有 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 实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 从“Region selector”（区域选择器）（位于右上角）中选择一个 AWS 区域。实例与 RDS 数据库必须位于同一区域中，才能使用 EC2 控制台中的自动连接功能。

1. 在 **EC2 Dashboard**（EC2 控制面板）上，选择 **Launch instance**（启动实例）。

1. 在 **Name and tags**（名称与标签）下，对于 **Name**（名称），输入名称以标识您的实例。对于本教程，请将该实例命名为 **tutorial-instance-1**。虽然实例名称不是必填项，但是当您在 EC2 控制台中选择实例时，该名称将帮助您轻松识别它。

1. 在 **Application and OS Images**（应用程序和操作系统映像）下，选择满足您的 Web 服务器需求的 AMI。本教程使用 **Amazon Linux 2**。

1. 在 **Instance type**（实例类型）下，对于 **Instance type**（实例类型），选择满足您的 Web 服务器需求的实例类型。本教程使用的是 `t2.micro`。
**注意**  
根据您创建账户的时间，您可能有资格在免费套餐下使用 Amazon EC2。  
如果您在 2025 年 7 月 15 日之前创建 AWS 账户且其使用时间未满 12 个月，您可以通过选择 **t2.micro** 实例类型（或在 **t2.micro** 不可用的区域中选择 **t3.micro** 实例类型）来使用免费套餐下的 Amazon EC2。请注意，在启动 **t3.micro** 实例时，默认会启用[**无限**模式](burstable-performance-instances-unlimited-mode.md)，该模式可能会根据 CPU 使用情况产生额外费用。如果实例类型可在免费套餐下使用，则会标记为**符合免费套餐资格**。  
如果您是在 2025 年 7 月 15 日当天或之后创建的 AWS 账户，则可以使用 **t3.micro**、**t3.small**、**t4g.micro**、**t4g.small**、**c7i-flex.large** 和 **m7i-flex.large** 实例类型 6 个月，或直到您的服务抵扣金用完为止。  
有关更多信息，请参阅 [2025 年 7 月 15 日之前和之后的免费套餐权益](ec2-free-tier-usage.md#ec2-free-tier-comparison)。

1. 在 **Key pair (login)**（密钥对（登录））下，对于 **Key pair name**（密钥对名称），选择您的密钥对。

1. 在 **Network settings**（网络设置）下，执行以下操作：

   1. 对于 **Network**（网络）和 **Subnet**（子网），如果您尚未更改默认 VPC 或子网，则可以保留默认设置。

      如果您对默认 VPC 或子网进行了更改，请检查以下各项：

      1. 实例必须与 RDS 数据库位于同一 VPC 中，才能使用自动连接功能。默认情况下，您只有一个 VPC。

      1. 您要将实例启动到其中的 VPC 必须连接互联网网关，以便您能从互联网访问您的 Web 服务器。您的默认 VPC 将自动设置互联网网关。

      1. 为了确保您的实例收到公有 IP 地址，对于 **Auto-assign public IP**（自动分配公有 IP），请检查并确保选择 **Enable**（启用）。如果选择 **Disable **（禁用），请选择 **Edit**（编辑）（位于 **Network Settings**（网络设置）右侧），然后对于 **Auto-assign public IP**（自动分配公有 IP），选择 **Enable**（启用）。

   1. 要使用 SSH 连接到您的实例，您需要一条安全组规则，授权来自您计算机的公有 IPv4 地址的 SSH (Linux) 或 RDP (Windows) 流量。默认情况下，当您启动实例时，将使用允许来自任何地方的入站 SSH 流量的规则创建新的安全组。

      要确保只有您的 IP 地址才能连接到您的实例，请在**防火墙（安全组）**下，从**允许入站 SSH 流量**复选框旁边的下拉列表中，选择**我的 IP**。

   1. 要允许流量从互联网流向您的实例，请选中以下复选框：
      + **Allow HTTPs traffic from the internet**（允许来自互联网的 HTTPs 流量）
      + **Allow HTTP traffic from the internet**（允许来自互联网的 HTTP 流量）

1. 在 **Summary**（摘要）面板中查看实例配置，然后选择 **Launch instance**（启动实例）。

1. 保持确认页面处于打开状态。对于下一个任务，当您将实例自动连接到数据库时，您将需要该页面。

   如果实例无法启动或状态立即转至 `terminated` 而非 `running`，请参阅 [排查 Amazon EC2 实例启动问题](troubleshooting-launch.md)。

有关启动实例的更多信息，请参阅 [使用控制台中的启动实例向导来启动 EC2 实例](ec2-launch-instance-wizard.md)。

### 观看动画：启动 EC2 实例
<a name="option1-launch-ec2-instance-animation"></a>

![\[此动画演示如何启动 EC2 实例。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-launch-instance.gif)


## 任务 3：将 EC2 实例自动连接到 RDS 数据库
<a name="option1-task3-connect-ec2-instance-to-rds-database"></a>

此任务的目标是使用 EC2 控制台中的自动连接功能自动配置 EC2 实例与 RDS 数据库之间的连接。

**使用 EC2 控制台将 EC2 实例自动连接到 RDS 数据库**

1. 在实例启动确认页面（它应从上一个任务中打开）上，选择 **Connect an RDS database**（连接 RDS 数据库）。

   如果您关闭了该确认页面，请按以下步骤操作：

   1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

   1. 在导航窗格中，选择 **Instances (实例)**。

   1. 选择您刚刚创建的 EC2 实例，然后选择 **Actions**（操作）、**Networking**（联网）、**Connect RDS database**（连接 RDS 数据库）。

      如果 **Connect RDS database**（连接 RDS 数据库）不可用，请检查该 EC2 实例是否处于 **Running**（正在运行）状态。

1. 对于 **Database role**（数据库角色），选择 **Instance**（实例）。本例中的*实例*是指数据库实例。

1. 对于 **RDS database**（RDS 数据库），选择您在“任务 1”中创建的 RDS 数据库。
**注意**  
EC2 实例和 RDS 数据库必须位于同一 VPC 中，以便相互连接。

1. 选择**连接**。

### 观看动画：将新启动的 EC2 实例自动连接到 RDS 数据库
<a name="option1-task3-connect-ec2-instance-to-rds-database-animation"></a>

![\[此动画演示如何在 EC2 控制台中选择现有 EC2 实例，然后使用自动连接功能将 EC2 实例连接到 RDS 数据库。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-connect-new-ec2-rds.gif)


## 任务 4：验证连接配置
<a name="option1-task4-verify-connection-configuration"></a>

此任务的目标是验证两个安全组是否已创建并分配给实例和数据库。

当您使用控制台中的自动连接功能配置连接时，将自动创建安全组并将其分配给实例和数据库，如下所示：
+ 将创建安全组 **rds-ec2-*x*** 并将其添加到 RDS 数据库中。它包含一条入站规则，引用 **ec2-rds-*x*** 安全组作为其来源。这将允许来自 EC2 实例（具有 **ec2-rds-*x*** 安全组）的流量到达 RDS 数据库。
+ 将创建安全组 **ec2-rds-*x*** 并将其添加到 EC2 实例中。它包含一条出站规则，引用 **rds-ec2-*x*** 安全组作为其目标。这将允许来自 EC2 实例的流量通过 **rds-ec2-*x*** 安全组到达 RDS 数据库。

**使用控制台验证连接配置**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

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

1. 选择您为本教程创建的 RDS 数据库。

1. 在**连接和安全性**选项卡的**安全性**、**VPC 安全组**下，验证并确保显示名为 **rds-ec2-*x*** 的安全组。

1. 选择 **rds-ec2-*x*** 安全组。EC2 控制台中的 **Security Groups**（安全组）屏幕打开。

1. 选择 **rds-ec2-*x*** 安全组以打开它。

1. 选择**入站规则**选项卡。

1. 验证并确保以下安全组规则存在，如下所示：
   + 类型：**MYSQL/Aurora**
   + 端口范围：**3306**
   + 来源：***sg-0987654321example* / ec2-rds-*x*** - 这是分配给您在前面的步骤中验证的 EC2 实例的安全组。
   + 描述：**允许来自 EC2 实例的连接的规则，附有 *sg-1234567890example***

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择您在上一个任务中选择要连接到 RDS 数据库的 EC2 实例，然后选择 **Security**（安全性）选项卡。

1. 在**安全详细信息**的**安全组**下，验证并确保列表中有名为 **ec2-rds-*x*** 的安全组。*x* 是一个数字。

1. 选择 **ec2-rds-*x*** 安全组以打开它。

1. 选择 **Outbound rules**（出站规则）选项卡。

1. 验证并确保以下安全组规则存在，如下所示：
   + 类型：**MYSQL/Aurora**
   + 端口范围：**3306**
   + 目标：***sg-1234567890example* / rds-ec2-*x***
   + 描述：**允许从此安全组所连接的任何实例到 **database-tutorial** 的连接的规则**

通过验证这些安全组和安全组规则是否存在，以及它们是否已按照此过程中所述分配给 RDS 数据库和 EC2 实例，您可以使用自动连接功能验证是否已自动配置连接。

### 观看动画：验证连接配置
<a name="option1-task4-verify-connection-configuration-animation"></a>

![\[此动画演示如何验证连接配置。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-verify-automatic-connection.gif)


您已完成本教程的“选项 1”。现在，您可以完成“选项 2”，它将介绍如何使用 RDS 控制台将 EC2 实例自动连接到 RDS 数据库；您也可以完成“选项 3”，它将介绍如何手动配置在“选项 1”中自动创建的安全组。

## 任务 5（*可选*）：清理
<a name="option2-task5-cleanup"></a>

**警告**  
**终止实例是永久且不可逆转的。**  
终止一个实例后，您将无法再连接到该实例，而且也无法对其进行恢复操作。被配置为在终止后删除的所有连接的 Amazon EBS 卷也将被永久删除并且无法恢复。实例存储卷中存储的所有数据将永久丢失。有关更多信息，请参阅 [实例终止的工作原理](how-ec2-instance-termination-works.md)。  
在终止实例之前，请务必确保已将需要在终止后保留的所有数据备份到持久存储中。

现在您已完成该教程，最好清理（删除）所有您不再需要使用的资源。清理 AWS 资源可以防止您的账户产生任何进一步的费用。

如果您专门为本教程启动了 EC2 实例，则可以将其终止，以停止产生任何与之相关的费用。

**使用控制台终止实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择您为本教程创建的实例，然后依次选择 **Instance state**（实例状态）、**Terminate instance**（终止实例）。

1. 当系统提示您确认时，选择**终止**。

如果您专门为本教程创建了 RDS 数据库，则可以将其删除，以停止产生任何与之相关的费用。

**使用控制台删除 RDS 数据库**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

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

1. 选择您为本教程创建的 RDS 数据库，然后依次选择 **Actions**（操作）、**Delete**（删除）。

1. 在方框中输入 **delete me**，然后选择 **Delete**（删除）。

# 选项 2：使用 RDS 控制台将实例自动连接到 RDS 数据库
<a name="tutorial-ec2-rds-option2"></a>

“选项 2”的目标是探索 RDS 控制台中的自动连接功能，该功能可自动配置 EC2 实例与 RDS 数据库之间的连接，以允许从 EC2 实例到 RDS 数据库的流量。在“选项 3”中，您将学习如何手动配置连接。

**Topics**
+ [开始前的准备工作](#option2-before-you-begin)
+ [任务 1：（*可选*）启动 EC2 实例](#option2-task1-launch-ec2-instance)
+ [任务 2：创建 RDS 数据库并将其自动连接到 EC2 实例](#option2-task2-create-rds-database)
+ [任务 3：验证连接配置](#option2-task3-verify-connection-configuration)
+ [任务 4（*可选*）：清理](#option2-task3-cleanup)

## 开始前的准备工作
<a name="option2-before-you-begin"></a>

完成本教程需要做好以下准备：
+ 与 RDS 数据库位于同一 VPC 中的 EC2 实例。您可以使用现有的 EC2 实例，也可以按照“任务 1”中的步骤创建新实例。
+ 调用以下操作的权限：
  + `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：（*可选*）启动 EC2 实例
<a name="option2-task1-launch-ec2-instance"></a>

**注意**  
启动实例不是本教程的重点。如果您已拥有 Amazon EC2 实例并希望在本教程中使用它，则可跳过此任务。

此任务的目标是启动 EC2 实例，以便您可以完成“任务 2”，在该任务中，您将配置 EC2 实例与 Amazon RDS 数据库之间的连接。此任务中的步骤将按以下方式配置 EC2 实例：
+ 实例名称：**tutorial-instance-2**
+ AMI：Amazon Linux 2
+ 实例类型：`t2.micro`
+ 自动分配公有 IP：已启用 
+ 具有以下三条规则的安全组：
  + 允许来自您的 IP 地址的 SSH
  + 允许来自任何地方的 HTTPS 流量
  + 允许来自任何地方的 HTTP 流量

**重要**  
在生产环境中，您应该配置实例，以满足您的特定需求。

**启动 EC2 实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在 **EC2 Dashboard**（EC2 控制面板）上，选择 **Launch instance**（启动实例）。

1. 在 **Name and tags**（名称与标签）下，对于 **Name**（名称），输入名称以标识您的实例。对于本教程，请将该实例命名为 **tutorial-instance-2**。虽然实例名称不是必填项，但是当您在 RDS 控制台中选择实例时，该名称将帮助您轻松识别它。

1. 在 **Application and OS Images**（应用程序和操作系统映像）下，选择满足您的 Web 服务器需求的 AMI。本教程使用 **Amazon Linux**。

1. 在 **Instance type**（实例类型）下，对于 **Instance type**（实例类型），选择满足您的 Web 服务器需求的实例类型。本教程使用的是 `t2.micro`。
**注意**  
根据您创建账户的时间，您可能有资格在免费套餐下使用 Amazon EC2。  
如果您在 2025 年 7 月 15 日之前创建 AWS 账户且其使用时间未满 12 个月，您可以通过选择 **t2.micro** 实例类型（或在 **t2.micro** 不可用的区域中选择 **t3.micro** 实例类型）来使用免费套餐下的 Amazon EC2。请注意，在启动 **t3.micro** 实例时，默认会启用[**无限**模式](burstable-performance-instances-unlimited-mode.md)，该模式可能会根据 CPU 使用情况产生额外费用。如果实例类型可在免费套餐下使用，则会标记为**符合免费套餐资格**。  
如果您是在 2025 年 7 月 15 日当天或之后创建的 AWS 账户，则可以使用 **t3.micro**、**t3.small**、**t4g.micro**、**t4g.small**、**c7i-flex.large** 和 **m7i-flex.large** 实例类型 6 个月，或直到您的服务抵扣金用完为止。  
有关更多信息，请参阅 [2025 年 7 月 15 日之前和之后的免费套餐权益](ec2-free-tier-usage.md#ec2-free-tier-comparison)。

1. 在 **Key pair (login)**（密钥对（登录））下，对于 **Key pair name**（密钥对名称），选择您的密钥对。

1. 在 **Network settings**（网络设置）下，执行以下操作：

   1. 对于 **Network**（网络）和 **Subnet**（子网），如果您尚未更改默认 VPC 或子网，则可以保留默认设置。

      如果您对默认 VPC 或子网进行了更改，请检查以下各项：

      1. 实例必须与 RDS 数据库位于同一 VPC 中，才能使用自动连接配置。默认情况下，您只有一个 VPC。

      1. 您要将实例启动到其中的 VPC 必须连接互联网网关，以便您能从互联网访问您的 Web 服务器。您的默认 VPC 将自动设置互联网网关。

      1. 为了确保您的实例收到公有 IP 地址，对于 **Auto-assign public IP**（自动分配公有 IP），请检查并确保选择 **Enable**（启用）。如果选择 **Disable **（禁用），请选择 **Edit**（编辑）（位于 **Network Settings**（网络设置）右侧），然后对于 **Auto-assign public IP**（自动分配公有 IP），选择 **Enable**（启用）。

   1. 要使用 SSH 连接到您的实例，您需要一条安全组规则，授权来自您计算机的公有 IPv4 地址的 SSH (Linux) 或 RDP (Windows) 流量。默认情况下，当您启动实例时，将使用允许来自任何地方的入站 SSH 流量的规则创建新的安全组。

      要确保只有您的 IP 地址才能连接到您的实例，请在**防火墙（安全组）**下，从**允许入站 SSH 流量**复选框旁边的下拉列表中，选择**我的 IP**。

   1. 要允许流量从互联网流向您的实例，请选中以下复选框：
      + **Allow HTTPs traffic from the internet**（允许来自互联网的 HTTPs 流量）
      + **Allow HTTP traffic from the internet**（允许来自互联网的 HTTP 流量）

1. 在 **Summary**（摘要）面板中查看实例配置，然后选择 **Launch instance**（启动实例）。

1. 选择**查看所有实例**以关闭确认页面并返回控制台。实例将首先处于 `pending` 状态，然后进入 `running` 状态。

   如果实例无法启动或状态立即转至 `terminated` 而非 `running`，请参阅 [排查 Amazon EC2 实例启动问题](troubleshooting-launch.md)。

有关启动实例的更多信息，请参阅 [使用控制台中的启动实例向导来启动 EC2 实例](ec2-launch-instance-wizard.md)。

### 观看动画：启动 EC2 实例
<a name="option2-launch-ec2-instance-animation"></a>

![\[此动画演示如何启动 EC2 实例。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-launch-instance.gif)


## 任务 2：创建 RDS 数据库并将其自动连接到 EC2 实例
<a name="option2-task2-create-rds-database"></a>

此任务的目标是创建 RDS 数据库，然后使用 RDS 控制台中的自动连接功能自动配置 EC2 实例与 RDS 数据库之间的连接。此任务中的步骤将按以下方式配置数据库实例：


+ 引擎类型：MySQL
+ 模板：免费套餐
+ 数据库实例标识符：**tutorial-database**
+ 数据库实例类：`db.t3.micro`

**重要**  
在生产环境中，您应该配置实例，以满足您的特定需求。

**创建 RDS 数据库并将其自动连接到 EC2 实例**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 从“Region selector”（区域选择器）（位于右上角）中，选择您在其中创建 EC2 实例的 AWS 区域。EC2 实例和 RDS 数据库必须位于同一区域中。

1. 在控制面板中，选择 **Create database**（创建数据库）。

1. 在 **Choose a database creation method**（选择数据库创建方法）下，检查并确保选择 **Standard create**（标准创建）。如果选择 **Easy create**（轻松创建），则自动连接功能不可用。

1. 在 **Engine options**（引擎选项）下，对于 **Engine type**（引擎类型），选择 **MySQL**。

1. 在 **Templates**（模板）下，选择一个满足您需求的示例模板。对于本教程，选择 **Free tier**（免费套餐）以免费创建 RDS 数据库。但请注意，仅当您的账户符合免费套餐资格时，免费套餐才可用。您可以通过选择 **Free tier**（免费套餐）框中的 **Info**（信息）链接来阅读更多内容。

1. 在 **Settings (设置)** 下，执行下列操作：

   1. 对于 **DB instance identifier**（数据库实例标识符），输入数据库的名称。在本教程中，请输入 **tutorial-database**。

   1. 对于 **Master username**（主用户名），保留默认名称，即 **admin**。

   1. 对于 **Master password**（主密码），输入您在本教程中可以记住的密码，然后对于 **Confirm password**（确认密码），再次输入该密码。

1. 在**实例配置**下，对于**数据库实例类**，保留默认值，即 **db.t3.micro**。如果您的账户符合免费套餐的资格，则可以免费使用此实例。有关更多信息，请参阅 [AWS 免费套餐](https://aws.amazon.com/free/)。

1. 在 **Connectivity**（连接）下，对于 **Compute resource**（计算资源），选择 **Connect to an EC2 compute resource**（连接到 EC2 计算资源）。这是 RDS 控制台中的自动连接功能。

1. 对于 **EC2 instance**（EC2 实例），选择您要连接到的 EC2 实例。出于本教程的目的，您可以选择您在上一个任务中创建的实例（您已将其命名为 **tutorial-instance**），也可以选择另一个现有实例。如果您未在列表中看到您的实例，请选择 **Connectivity**（连接）右侧的刷新图标。

   当您使用自动连接功能时，将向此 EC2 实例中添加一个安全组，并将另一个安全组添加到 RDS 数据库中。会将这些安全组自动配置为允许 EC2 实例与 RDS 数据库之间的流量。在下一个任务中，您将验证安全组是否已创建并分配给 EC2 实例和 RDS 数据库。

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

   在 **Databases**（数据库）屏幕上，在数据库准备就绪可供使用之前，新数据库的 **Status**（状态）为 **Creating**（正在创建）。当状态变为 **Available**（可用）时，您便可以连接到该数据库。根据数据库类和存储量，新数据库可能需要等待多达 20 分钟时间才可用。

要了解更多信息，请参阅《Amazon RDS 用户指南》**中的[配置与 EC2 实例的自动网络连接](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html#USER_CreateDBInstance.Prerequisites.VPC.Automatic)。

### 观看动画：创建 RDS 数据库并将其自动连接到 EC2 实例
<a name="task2-create-rds-database-animation"></a>

![\[此动画演示如何创建 RDS 数据库，然后使用自动连接功能将其连接到 EC2 实例。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-create-rds-connect-ec2.gif)


## 任务 3：验证连接配置
<a name="option2-task3-verify-connection-configuration"></a>

此任务的目标是验证两个安全组是否已创建并分配给实例和数据库。

当您使用控制台中的自动连接功能配置连接时，将自动创建安全组并将其分配给实例和数据库，如下所示：
+ 将创建安全组 **rds-ec2-*x*** 并将其添加到 RDS 数据库中。它包含一条入站规则，引用 **ec2-rds-*x*** 安全组作为其来源。这将允许来自 EC2 实例（具有 **ec2-rds-*x*** 安全组）的流量到达 RDS 数据库。
+ 将创建安全组 **ec2-rds-*x*** 并将其添加到 EC2 实例中。它包含一条出站规则，引用 **rds-ec2-*x*** 安全组作为其目标。这将允许来自 EC2 实例的流量通过 **rds-ec2-*x*** 安全组到达 RDS 数据库。

**使用控制台验证连接配置**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

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

1. 选择您为本教程创建的 RDS 数据库。

1. 在**连接和安全性**选项卡的**安全性**、**VPC 安全组**下，验证并确保显示名为 **rds-ec2-*x*** 的安全组。

1. 选择 **rds-ec2-*x*** 安全组。EC2 控制台中的 **Security Groups**（安全组）屏幕打开。

1. 选择 **rds-ec2-*x*** 安全组以打开它。

1. 选择**入站规则**选项卡。

1. 验证并确保以下安全组规则存在，如下所示：
   + 类型：**MYSQL/Aurora**
   + 端口范围：**3306**
   + 来源：***sg-0987654321example* / ec2-rds-*x*** - 这是分配给您在前面的步骤中验证的 EC2 实例的安全组。
   + 描述：**允许来自 EC2 实例的连接的规则，附有 *sg-1234567890example***

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择您在上一个任务中选择要连接到 RDS 数据库的 EC2 实例，然后选择 **Security**（安全性）选项卡。

1. 在**安全详细信息**的**安全组**下，验证并确保列表中有名为 **ec2-rds-*x*** 的安全组。*x* 是一个数字。

1. 选择 **ec2-rds-*x*** 安全组以打开它。

1. 选择 **Outbound rules**（出站规则）选项卡。

1. 验证并确保以下安全组规则存在，如下所示：
   + 类型：**MYSQL/Aurora**
   + 端口范围：**3306**
   + 目标：***sg-1234567890example* / rds-ec2-*x***
   + 描述：**允许从此安全组所连接的任何实例到 **database-tutorial** 的连接的规则**

通过验证这些安全组和安全组规则是否存在，以及它们是否已按照此过程中所述分配给 RDS 数据库和 EC2 实例，您可以使用自动连接功能验证是否已自动配置连接。

### 观看动画：验证连接配置
<a name="option1-task4-verify-connection-configuration-animation"></a>

![\[此动画演示如何验证连接配置。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-verify-automatic-connection.gif)


您已完成本教程的“选项 2”。现在，您可以完成“选项 3”，它将介绍如何手动配置在“选项 2”中自动创建的安全组。

## 任务 4（*可选*）：清理
<a name="option2-task3-cleanup"></a>

**警告**  
**终止实例是永久且不可逆转的。**  
终止一个实例后，您将无法再连接到该实例，而且也无法对其进行恢复操作。被配置为在终止后删除的所有连接的 Amazon EBS 卷也将被永久删除并且无法恢复。实例存储卷中存储的所有数据将永久丢失。有关更多信息，请参阅 [实例终止的工作原理](how-ec2-instance-termination-works.md)。  
在终止实例之前，请务必确保已将需要在终止后保留的所有数据备份到持久存储中。

现在您已完成该教程，最好清理（删除）所有您不再需要使用的资源。清理 AWS 资源可以防止您的账户产生任何进一步的费用。

如果您专门为本教程启动了 EC2 实例，则可以将其终止，以停止产生任何与之相关的费用。

**使用控制台终止实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择您为本教程创建的实例，然后依次选择 **Instance state**（实例状态）、**Terminate instance**（终止实例）。

1. 当系统提示您确认时，选择**终止**。

如果您专门为本教程创建了 RDS 数据库，则可以将其删除，以停止产生任何与之相关的费用。

**使用控制台删除 RDS 数据库**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

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

1. 选择您为本教程创建的 RDS 数据库，然后依次选择 **Actions**（操作）、**Delete**（删除）。

1. 在方框中输入 **delete me**，然后选择 **Delete**（删除）。

# 选项 3：通过创建安全组，将实例手动连接到 RDS 数据库
<a name="tutorial-ec2-rds-option3"></a>

“选项 3”的目标是学习如何通过手动重现自动连接功能的配置，手动配置 EC2 实例与 RDS 数据库之间的连接。

**Topics**
+ [开始前的准备工作](#option3-before-you-begin)
+ [任务 1：（*可选*）启动 EC2 实例](#option3-task1-launch-ec2-instance)
+ [任务 2：（*可选*）创建 RDS 数据库](#option3-task2-create-rds-database)
+ [任务 3：将 EC2 实例手动连接到 RDS 数据库](#option3-task3-connect-rds-database-to-ec2-instance)
+ [任务 4（*可选*）：清理](#tutorial-ec2-rds-clean-up)

## 开始前的准备工作
<a name="option3-before-you-begin"></a>

完成本教程需要做好以下准备：
+ 与 RDS 数据库位于同一 VPC 中的 EC2 实例。您可以使用现有的 EC2 实例，也可以按照“任务 1”中的步骤创建新实例。
+ 与 EC2 实例位于同一 VPC 中的 RDS 数据库。您可以使用现有的 RDS 数据库，也可以按照“任务 2”中的步骤创建新数据库。
+ 调用以下操作的权限：
  + `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：（*可选*）启动 EC2 实例
<a name="option3-task1-launch-ec2-instance"></a>

**注意**  
启动实例不是本教程的重点。如果您已拥有 Amazon EC2 实例并希望在本教程中使用它，则可跳过此任务。

此任务的目标是启动 EC2 实例，以便您可以完成“任务 3”，在该任务中，您将配置 EC2 实例与 Amazon RDS 数据库之间的连接。此任务中的步骤将按以下方式配置 EC2 实例：
+ 实例名称：**tutorial-instance**
+ AMI：Amazon Linux 2
+ 实例类型：`t2.micro`
+ 自动分配公有 IP：已启用 
+ 具有以下三条规则的安全组：
  + 允许来自您的 IP 地址的 SSH
  + 允许来自任何地方的 HTTPS 流量
  + 允许来自任何地方的 HTTP 流量

**重要**  
在生产环境中，您应该配置实例，以满足您的特定需求。

**启动 EC2 实例**

1. 登录 AWS 管理控制台，打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在 **EC2 Dashboard**（EC2 控制面板）上，选择 **Launch instance**（启动实例）。

1. 在 **Name and tags**（名称与标签）下，对于 **Name**（名称），输入名称以标识您的实例。对于本教程，请将该实例命名为 **tutorial-instance-manual-1**。虽然实例名称不是必填项，但该名称将帮助您轻松识别它。

1. 在 **Application and OS Images**（应用程序和操作系统映像）下，选择满足您的 Web 服务器需求的 AMI。本教程使用 **Amazon Linux**。

1. 在 **Instance type**（实例类型）下，对于 **Instance type**（实例类型），选择满足您的 Web 服务器需求的实例类型。本教程使用的是 `t2.micro`。
**注意**  
根据您创建账户的时间，您可能有资格在免费套餐下使用 Amazon EC2。  
如果您在 2025 年 7 月 15 日之前创建 AWS 账户且其使用时间未满 12 个月，您可以通过选择 **t2.micro** 实例类型（或在 **t2.micro** 不可用的区域中选择 **t3.micro** 实例类型）来使用免费套餐下的 Amazon EC2。请注意，在启动 **t3.micro** 实例时，默认会启用[**无限**模式](burstable-performance-instances-unlimited-mode.md)，该模式可能会根据 CPU 使用情况产生额外费用。如果实例类型可在免费套餐下使用，则会标记为**符合免费套餐资格**。  
如果您是在 2025 年 7 月 15 日当天或之后创建的 AWS 账户，则可以使用 **t3.micro**、**t3.small**、**t4g.micro**、**t4g.small**、**c7i-flex.large** 和 **m7i-flex.large** 实例类型 6 个月，或直到您的服务抵扣金用完为止。  
有关更多信息，请参阅 [2025 年 7 月 15 日之前和之后的免费套餐权益](ec2-free-tier-usage.md#ec2-free-tier-comparison)。

1. 在 **Key pair (login)**（密钥对（登录））下，对于 **Key pair name**（密钥对名称），选择您的密钥对。

1. 在 **Network settings**（网络设置）下，执行以下操作：

   1. 对于 **Network**（网络）和 **Subnet**（子网），如果您尚未更改默认 VPC 或子网，则可以保留默认设置。

      如果您对默认 VPC 或子网进行了更改，请检查以下各项：

      1. 实例必须与 RDS 数据库位于同一 VPC 中。默认情况下，您只有一个 VPC。

      1. 您要将实例启动到其中的 VPC 必须连接互联网网关，以便您能从互联网访问您的 Web 服务器。您的默认 VPC 将自动设置互联网网关。

      1. 为了确保您的实例收到公有 IP 地址，对于 **Auto-assign public IP**（自动分配公有 IP），请检查并确保选择 **Enable**（启用）。如果选择 **Disable **（禁用），请选择 **Edit**（编辑）（位于 **Network Settings**（网络设置）右侧），然后对于 **Auto-assign public IP**（自动分配公有 IP），选择 **Enable**（启用）。

   1. 要使用 SSH 连接到您的实例，您需要一条安全组规则，授权来自您计算机的公有 IPv4 地址的 SSH (Linux) 或 RDP (Windows) 流量。默认情况下，当您启动实例时，将使用允许来自任何地方的入站 SSH 流量的规则创建新的安全组。

      要确保只有您的 IP 地址才能连接到您的实例，请在**防火墙（安全组）**下，从**允许入站 SSH 流量**复选框旁边的下拉列表中，选择**我的 IP**。

   1. 要允许流量从互联网流向您的实例，请选中以下复选框：
      + **Allow HTTPs traffic from the internet**（允许来自互联网的 HTTPs 流量）
      + **Allow HTTP traffic from the internet**（允许来自互联网的 HTTP 流量）

1. 在 **Summary**（摘要）面板中查看实例配置，然后选择 **Launch instance**（启动实例）。

1. 选择**查看所有实例**以关闭确认页面并返回控制台。实例将首先处于 `pending` 状态，然后进入 `running` 状态。

   如果实例无法启动或状态立即转至 `terminated` 而非 `running`，请参阅 [排查 Amazon EC2 实例启动问题](troubleshooting-launch.md)。

有关启动实例的更多信息，请参阅 [使用控制台中的启动实例向导来启动 EC2 实例](ec2-launch-instance-wizard.md)。

### 观看动画：启动 EC2 实例
<a name="option3-launch-ec2-instance-animation"></a>

![\[此动画演示如何启动 EC2 实例。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-launch-instance.gif)


## 任务 2：（*可选*）创建 RDS 数据库
<a name="option3-task2-create-rds-database"></a>

**注意**  
创建 RDS 数据库不是该教程这一部分的重点。如果您已拥有 RDS 数据库并希望将其用于本教程，则可跳过此任务。

此任务的目标是创建 RDS 数据库。在“任务 3”中，当您将此实例连接到 EC2 实例时，您将使用此实例。此任务中的步骤将按以下方式配置 RDS 数据库：


+ 引擎类型：MySQL
+ 模板：免费套餐
+ 数据库实例标识符：**tutorial-database-manual**
+ 数据库实例类：`db.t3.micro`

**重要**  
在生产环境中，您应该配置实例，以满足您的特定需求。

**创建 MySQL 数据库实例**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

1. 从“Region selector”（区域选择器）（位于右上角）中，选择您在其中创建 EC2 实例的 AWS 区域。EC2 实例和数据库实例必须位于同一区域中。

1. 在控制面板中，选择 **Create database**（创建数据库）。

1. 在 **Choose a database creation method**（选择数据库创建方法）下，选择 **Easy create**（轻松创建）。当您选择此选项时，用于自动配置连接的自动连接功能将不可用。

1. 在 **Engine options**（引擎选项）下，对于 **Engine type**（引擎类型），选择 **MySQL**。

1. 对于 **数据库实例大小**，选择 **免费套餐**。

1. 对于 **DB instance identifier**（数据库实例标识符），输入 RDS 数据库的名称。在本教程中，请输入 **tutorial-database-manual**。

1. 对于 **Master username**（主用户名），保留默认名称，即 **admin**。

1. 对于 **Master password**（主密码），输入您在本教程中可以记住的密码，然后对于 **Confirm password**（确认密码），再次输入该密码。

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

   在 **Databases**（数据库）屏幕上，在数据库实例准备就绪可供使用之前，新数据库实例的 **Status**（状态）为 **Creating**（正在创建）。当状态变为 **Available**（可用）时，您便可以连接到该数据库实例。根据数据库实例类和存储量，新实例可能需要等待 20 分钟时间才可用。

### 观看动画：创建数据库实例
<a name="option3-task2-create-rds-database-animation"></a>

![\[此动画演示如何创建数据库实例。要查看此动画的文字版，请参阅前面过程中的步骤。\]](http://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/images/tutorial-create-db-step2.gif)


## 任务 3：通过创建安全组并将它们分配给实例，将 EC2 实例手动连接到 RDS 数据库
<a name="option3-task3-connect-rds-database-to-ec2-instance"></a>

此任务的目标是通过手动执行以下操作以重现自动连接功能的连接配置：创建两个新安全组，然后分别向 EC2 实例和 RDS 数据库添加一个安全组。

**创建两个新安全组，然后分别向 EC2 实例和 RDS 数据库分配一个安全组**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 首先创建要添加到 EC2 实例的安全组，如下所示：

   1. 在导航窗格中，选择 **Security Groups**（安全组）。

   1. 选择 **Create security group**（创建安全组）。

   1. 对于 **Security group name**（安全组名称），请输入一个描述性的安全组名称。在本教程中，请输入 **ec2-rds-manual-configuration**。

   1. 对于 **Description**（描述），请输入一段简短描述。在本教程中，请输入 **EC2 instance security group to allow EC2 instance to securely connect to RDS database**。

   1. 选择**创建安全组**。在创建 RDS 数据库安全组后，您将返回此安全组以添加出站规则。

1. 现在，创建要添加到 RDS 数据库的安全组，如下所示：

   1. 在导航窗格中，选择 **Security Groups**（安全组）。

   1. 选择 **Create security group**（创建安全组）。

   1. 对于 **Security group name**（安全组名称），请输入一个描述性的安全组名称。在本教程中，请输入 **rds-ec2-manual-configuration**。

   1. 对于 **Description**（描述），请输入一段简短描述。在本教程中，请输入 **RDS database security group to allow EC2 instance to securely connect to RDS database**。

   1. 在 **Inbound rules**（入站规则）下，选择 **Add rule**（添加规则），然后执行以下操作：

      1. 对于 **Type**（类型），选择 **MYSQL/Aurora**。

      1. 对于 **Source**（来源），选择您在此过程的“步骤 2”中创建的 EC2 实例安全组 **ec2-rds-manual-configuration**。

   1. 选择**创建安全组**。

1. 编辑 EC2 实例安全组以添加出站规则，如下所示：

   1. 在导航窗格中，选择**安全组**。

   1. 选择 EC2 实例安全组（您已将其命名为 **ec2-rds-manual-configuration**），然后选择 **Outbound rules**（出站规则）选项卡。

   1. 选择 **Edit outbound rules**（编辑出站规则）。

   1. 选择 **Add rule**（添加规则），然后执行以下操作：

      1. 对于 **Type**（类型），选择 **MYSQL/Aurora**。

      1. 对于**目标**，选择您在此过程的“步骤 3”中创建的 RDS 数据库安全组 **rds-ec2-manual-configuration**。

      1. 选择**保存规则**。

1. 将 EC2 实例安全组添加到 EC2 实例中，如下所示：

   1. 在导航窗格中，选择 **Instances (实例)**。

   1. 选择您的 EC2 实例，然后依次选择 **Actions**（操作）、**Security**（安全性）和 **Change security groups**（更改安全组）。

   1. 在 **Associated security groups**（关联安全组）下，选择 **Select security groups**（选择安全组）字段，选择您之前创建的 **ec2-rds-manual-configuration**，然后选择 **Add security group**（添加安全组）。

   1. 选择**保存**。

1. 将 RDS 数据库安全组添加到 RDS 数据库，如下所示：

   1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

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

   1. 选择 **Modify**(修改)。

   1. 在 **Connectivity**（连接）下，对于 **Security group**（安全组），选择您之前创建的 **rds-ec2-manual-configuration**，然后选择 **Continue**（继续）。

   1. 在 **Scheduling of modifications**（修改计划）下，选择 **Apply immediately**（立即应用）。

   1. 选择**修改数据库实例**。

   现在，您已完成模仿在使用自动连接功能时出现的自动步骤的手动步骤。

您已完成本教程的“选项 3”。如果您已完成“选项 1”、“选项 2”和“选项 3”，并且不再需要在本教程中创建的资源，则应删除这些资源，以防止产生不必要的成本。有关更多信息，请参阅 [任务 4（*可选*）：清理](#tutorial-ec2-rds-clean-up)。

## 任务 4（*可选*）：清理
<a name="tutorial-ec2-rds-clean-up"></a>

**警告**  
**终止实例是永久且不可逆转的。**  
终止一个实例后，您将无法再连接到该实例，而且也无法对其进行恢复操作。被配置为在终止后删除的所有连接的 Amazon EBS 卷也将被永久删除并且无法恢复。实例存储卷中存储的所有数据将永久丢失。有关更多信息，请参阅 [实例终止的工作原理](how-ec2-instance-termination-works.md)。  
在终止实例之前，请务必确保已将需要在终止后保留的所有数据备份到持久存储中。

现在您已完成该教程，最好清理（删除）所有您不再需要使用的资源。清理 AWS 资源可以防止您的账户产生任何进一步的费用。

如果您专门为本教程启动了 EC2 实例，则可以将其终止，以停止产生任何与之相关的费用。

**使用控制台终止实例**

1. 通过以下网址打开 Amazon EC2 控制台：[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择 **Instances (实例)**。

1. 选择您为本教程创建的实例，然后依次选择 **Instance state**（实例状态）、**Terminate instance**（终止实例）。

1. 当系统提示您确认时，选择**终止**。

如果您专门为本教程创建了 RDS 数据库，则可以将其删除，以停止产生任何与之相关的费用。

**使用控制台删除 RDS 数据库**

1. 通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

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

1. 选择您为本教程创建的 RDS 数据库，然后依次选择 **Actions**（操作）、**Delete**（删除）。

1. 在方框中输入 **delete me**，然后选择 **Delete**（删除）。