自动连接 EC2 实例和数据库实例 - Amazon Relational Database Service

自动连接 EC2 实例和数据库实例

您可以使用 RDS 控制台来简化在 Amazon Elastic Compute Cloud(Amazon EC2)实例和数据库实例之间设置连接的过程。通常,数据库实例位于私有子网中,而 EC2 实例位于 VPC 内的公有子网中。您可以在 EC2 实例上使用 SQL 客户端连接到数据库实例。EC2 实例还可以运行访问私有数据库实例的 Web 服务器或应用程序。有关在 EC2 实例和多可用区数据库集群之间设置连接的说明,请参阅自动连接 EC2 实例和多可用区数据库集群


        
        自动将数据库实例与 EC2 实例连接。

如果您想连接到与数据库实例不在同一 VPC 中的 EC2 实例,请参阅在 VPC 中访问数据库实例的场景中的相应方案。

与 EC2 实例的自动连接概述

当您在 EC2 实例和 RDS 数据库之间设置连接时,Amazon RDS 会自动为您的 EC2 实例和 RDS 数据库配置 VPC 安全组。

以下是将 EC2 实例与 RDS 数据库连接的要求:

  • EC2 实例必须与 RDS 数据库存在于同一 VPC 中。

    如果同一 VPC 中不存在任何 EC2 实例,则控制台将提供创建一个此类实例的链接。

  • 设置连接的用户必须具有执行以下 Amazon EC2 操作的权限:

    • ec2:AuthorizeSecurityGroupEgress

    • ec2:AuthorizeSecurityGroupIngress

    • ec2:CreateSecurityGroup

    • ec2:DescribeInstances

    • ec2:DescribeNetworkInterfaces

    • ec2:DescribeSecurityGroups

    • ec2:ModifyNetworkInterfaceAttribute

    • ec2:RevokeSecurityGroupEgress

如果数据库实例和 EC2 实例位于不同的可用区,则您的账户可能会产生跨可用区成本。

当您设置与 EC2 实例的连接时,Amazon RDS 会根据与 RDS 数据库和 EC2 实例关联的安全组的当前配置采取操作,如下表所述。

当前 RDS 安全组配置 当前 EC2 安全组配置 RDS 操作

有一个或多个安全组与 RDS 数据库 [其名称与模式 rds-ec2-n(其中 n 是数字)相匹配] 关联。尚未修改与此模式匹配的安全组。该安全组只具有一条以 EC2 实例的 VPC 安全组作为源的入站规则。

有一个或多个安全组与 EC2 实例关联,此实例的名称与模式 rds-ec2-n(其中 n 是数字)相匹配。尚未修改与此模式匹配的安全组。该安全组只具有一条以 RDS 数据库的 VPC 安全组作为源的出站规则。

RDS 不执行任何操作。

已在 EC2 实例和 RDS 数据库之间自动配置了连接。由于 EC2 实例和 RDS 数据库之间已经存在连接,因此不会修改安全组。

以下任一条件适用:

  • 没有与 RDS 数据库(其名称与模式 rds-ec2-n 匹配)关联的安全组。

  • 有一个或多个安全组与 RDS 数据库(其名称与模式 rds-ec2-n 相匹配)关联。但是,Amazon RDS 不能使用这些安全组中的任何一个来连接 EC2 实例。如果安全组没有一条以 EC2 实例的 VPC 安全组作为源的入站规则,则 Amazon RDS 无法使用该安全组。Amazon RDS 也无法使用经过修改的安全组。修改示例包括添加规则或更改现有规则的端口。

以下任一条件适用:

  • 没有与 EC2 实例(其名称与模式 ec2-rds-n 匹配)关联的安全组。

  • 有一个或多个安全组与 EC2 实例关联,此实例的名称与模式 ec2-rds-n 相匹配。但是,Amazon RDS 不能将其中任何安全组用于连接 RDS 数据库。如果安全组没有一条以 RDS 数据库的 VPC 安全组作为源的出站规则,则 Amazon RDS 无法使用该安全组。Amazon RDS 也无法使用经过修改的安全组。

RDS action: create new security groups

有一个或多个安全组与 RDS 数据库(其名称与模式 rds-ec2-n 相匹配)关联。尚未修改与此模式匹配的安全组。该安全组只具有一条以 EC2 实例的 VPC 安全组作为源的入站规则。

有一个或多个安全组与 EC2 实例关联,此实例的名称与模式 ec2-rds-n 相匹配。但是,Amazon RDS 不能将其中任何安全组用于连接 RDS 数据库。如果安全组没有一条以 RDS 数据库的 VPC 安全组作为源的出站规则,则 Amazon RDS 无法使用该安全组。Amazon RDS 也无法使用经过修改的安全组。

RDS action: create new security groups

有一个或多个安全组与 RDS 数据库(其名称与模式 rds-ec2-n 相匹配)关联。尚未修改与此模式匹配的安全组。该安全组只具有一条以 EC2 实例的 VPC 安全组作为源的入站规则。

存在用于连接的有效 EC2 安全组,但它与 EC2 实例不关联。此安全组的名称与模式 rds-ec2-n 相匹配。尚未修改它。它只具有一条以 RDS 数据库的 VPC 安全组作为源的出站规则。

RDS action: associate EC2 security group

以下任一条件适用:

  • 没有与 RDS 数据库(其名称与模式 rds-ec2-n 匹配)关联的安全组。

  • 有一个或多个安全组与 RDS 数据库(其名称与模式 rds-ec2-n 相匹配)关联。但是,Amazon RDS 不能使用这些安全组中的任何一个来连接 EC2 实例。如果安全组没有一条以 EC2 实例的 VPC 安全组作为源的入站规则,则 Amazon RDS 无法使用该安全组。Amazon RDS 也无法使用经过修改的安全组。

有一个或多个安全组与 EC2 实例关联,此实例的名称与模式 rds-ec2-n 相匹配。尚未修改与此模式匹配的安全组。该安全组只具有一条以 RDS 数据库的 VPC 安全组作为源的出站规则。

RDS action: create new security groups
RDS 操作:创建新的安全组

Amazon RDS 执行以下操作:

  • 创建与模式 rds-ec2-n 匹配的新安全组。该安全组具有一条以 EC2 实例的 VPC 安全组作为源的入站规则。此安全组与 RDS 数据库关联,并允许 EC2 实例访问 RDS 数据库

  • 创建与模式 ec2-rds-n 匹配的新安全组。该安全组具有一条以 RDS 数据库的 VPC 安全组作为源的出站规则。该安全组与 EC2 实例相关联,并允许 EC2 实例向 RDS 数据库发送流量。

RDS 操作:关联 EC2 安全组

Amazon RDS 将有效的现有 EC2 安全组与 EC2 实例关联。该安全组允许 EC2 实例向 RDS 数据库发送流量。

自动连接 EC2 实例和 RDS 数据库

在 EC2 实例与 RDS 数据库之间设置连接之前,请确保满足与 EC2 实例的自动连接概述中所述的要求。

如果您在配置连接后更改安全组,则这些更改可能会影响 EC2 实例与 RDS 数据库之间的连接。

注意

您只能使用 AWS Management Console自动在 EC2 实例与 RDS 数据库之间设置连接。您无法使用 AWS CLI 或 RDS API 自动设置连接。

自动连接 EC2 实例与 RDS 数据库
  1. 登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

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

  3. 操作中,选择设置 EC2 连接

    将出现 Set up EC2 connection(设置 EC2 连接)页面。

  4. Set up EC2 connection(设置 EC2 连接)页上,选择 EC2 实例。

    
                    “设置 EC2 连接”页面。

    如果同一 VPC 中不存在任何 EC2 实例,请选择 Create EC2 instance(创建 EC2 实例)来创建一个此类实例。在这种情况下,请确保新的 EC2 实例与 RDS 数据库位于同一 VPC 中。

  5. 选择 Continue(继续)。

    将出现 Review and confirm(检查并确认)页面。

    
                    “EC2 连接检查和确认”页面。
  6. Review and confirm(检查并确认)页面上,检查 RDS 为设置与 EC2 实例的连接而将进行的更改。

    如果更改正确,请选择确认并设置

    如果更改不正确,请选择 Previous(上一步)或 Cancel(取消)。

查看连接的计算资源

您可以使用 AWS Management Console查看连接到 RDS 数据库的计算资源。显示的资源包括自动设置的计算资源连接。您可以通过以下方式自动设置与计算资源的连接:

列出的计算资源不包括手动连接到数据库的计算资源。例如,您可以通过向与数据库关联的 VPC 安全组添加规则来允许计算资源手动访问数据库。

要列出计算资源,必须满足以下条件:

  • 与计算资源关联的安全组的名称与模式 ec2-rds-n 相匹配(其中 n 是数字)。

  • 与计算资源关联的安全组具有出站规则,其端口范围设置为 RDS 数据库使用的端口。

  • 与计算资源关联的安全组具有出站规则,源设置为与 RDS 数据库关联的安全组。

  • RDS 数据库关联的安全组的名称与模式 rds-ec2-n(其中 n 是数字)相匹配。

  • RDS 数据库关联的安全组具有入站规则,其端口范围设置为 RDS 数据库使用的端口。

  • RDS 数据库关联的安全组有一条入站规则,其源设置为与计算资源关联的安全组。

查看连接到 RDS 数据库的计算资源
  1. 登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 Databases(数据库),然后选择 RDS 数据库的名称。

  3. Connectivity & security(连接和安全)选项卡上,在 Connected compute resources(连接的计算资源)中查看计算资源。

    
                        连接的计算资源。

连接到运行特定数据库引擎的数据库实例

有关连接到运行特定数据库引擎的数据库实例的信息,请按照数据库引擎的说明操作: