访问不在 VPC 中的数据库实例的场景 - Amazon Relational Database Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

访问不在 VPC 中的数据库实例的场景

Amazon RDS 支持以下访问不在 VPC 中的数据库实例的场景:

重要

如果您的数据库实例是在 2013 年之后创建的,那么它可能位于 VPC 中。有关访问 VPC 中的数据库实例的信息,请参阅在 VPC 中访问数据库实例的方案

不在 VPC 中的数据库实例由 VPC 中的 EC2 实例访问

在您有一个在 VPC 中的 EC2 实例和不在 VPC 中的 RDS 数据库实例的情况下,您可通过公共 Internet 连接它们。

下图说明了此情形。


						不在 VPC 中的数据库实例由在 VPC 中的 EC2 实例访问
注意

ClassicLink(如VPC 中的数据库实例由不在 VPC 中的 EC2 实例访问中所述)不可用于此方案。

要通过公共 Internet 连接数据库实例和 EC2 实例,请执行以下操作:

  • 确保 EC2 实例位于 VPC 的公有子网中。

  • 确保 RDS 数据库实例标记为可公开访问。

  • 此处为有关网络 ACL 的备注。网络 ACL 类似于您的整个子网的防火墙。因此,该子网中的所有实例受网络 ACL 规则的限制。默认情况下,网络 ACL 允许所有流量而且您通常无需担心它们,除非您特别希望添加规则作为额外一层安全保护。而另一方面,安全组与单独的实例关联,而且您需要担心安全组规则。

  • 向 RDS 数据库实例的数据库安全组添加必要的入口规则。

    入口规则指定了网络端口和 CIDR/IP 范围。例如,您可添加允许端口 3306 连接到 MySQL RDS 数据库实例以及 CIDR/IP 范围 203.0.113.25/32 的入口规则。有关更多信息,请参阅从 IP 范围向数据库安全组授予网络访问权限

注意

如果您想将现有数据库实例移至 VPC 中,可使用 AWS 管理控制台轻松执行该操作。有关更多信息,请参阅将不在 VPC 中的数据库实例移动到 VPC 中

不在 VPC 中的数据库实例由客户端应用程序通过 Internet 访问

新的 Amazon RDS 客户只能在 VPC 中创建数据库实例。不过,您可能需要从客户端应用程序通过 Internet 连接到不在 VPC 中的 Amazon RDS 数据库实例。

下图说明了此情形。


						不在 VPC 中的数据库实例由通过 Internet 的客户端应用程序访问

在此方案中,您必须确保 RDS 数据库实例的数据库安全组包括客户端应用程序连接所必需的入口规则。入口规则指定了网络端口和 CIDR/IP 范围。例如,您可添加允许端口 3306 连接到 MySQL RDS 数据库实例以及 CIDR/IP 范围 203.0.113.25/32 的入口规则。有关更多信息,请参阅 从 IP 范围向数据库安全组授予网络访问权限

警告

如果您要访问位于防火墙后的数据库实例,请与您的网络管理员联系以确定应使用的 IP 地址。

注意

如果您想将现有数据库实例移至 VPC 中,可使用 AWS 管理控制台轻松执行该操作。有关更多信息,请参阅将不在 VPC 中的数据库实例移动到 VPC 中

不在 VPC 中的数据库实例由不在 VPC 中的 EC2 实例访问

当数据库实例或 EC2 实例上的应用程序均不在 VPC 中时,您可通过使用其终端节点和端口访问数据库实例。

下图说明了此情形。


						不在 VPC 中的数据库实例由不在 VPC 中的 EC2 实例访问

您必须为数据库实例创建安全组,允许从您在创建数据库实例时指定的端口访问。例如,您可以使用类似于结合使用 sqlplus 的连接字符串的连接字符串访问 Oracle 数据库实例:

PROMPT>sqlplus 'mydbusr@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<endpoint>) (PORT=<port number>))(CONNECT_DATA=(SID=<database name>)))'

有关更多信息,请参阅以下文档。

注意

如果您想将现有数据库实例移至 VPC 中,可使用 AWS 管理控制台轻松执行该操作。有关更多信息,请参阅将不在 VPC 中的数据库实例移动到 VPC 中