教程:创建 VPC 以用于数据库实例(双堆栈模式)
一种常见的场景包括虚拟私有云(VPC)中基于 Amazon VPC 服务的数据库实例。此 VPC 与在同一 VPC 中运行的公有 Amazon EC2 实例共享数据。
在本教程中,您将为此场景创建 VPC,该 VPC 与在双堆栈模式下运行的数据库一起使用。双堆栈模式,用于启用基于 IPv6 寻址协议的连接。有关 IP 地址的更多信息,请参阅 Amazon RDS IP 寻址。
大多数区域支持双堆栈网络实例。有关更多信息,请参阅区域和版本可用性。要查看双堆栈模式的限制,请参阅 双堆栈网络数据库实例的限制。
下图说明了此情形。
有关其他方案的信息,请参阅在 VPC 中访问数据库实例的场景。
数据库实例只需对 Amazon EC2 实例可用,而无需对公共互联网可用。因此,请创建包含公有子网和私有子网的 VPC。Amazon EC2 实例托管在公有子网中,以便它可访问公共 Internet。数据库实例托管于私有子网中。Amazon EC2 实例可以连接到数据库实例,因为它托管在同一 VPC 内。但是,数据库实例不可用于公共互联网,从而提高了安全性。
本教程在单独的可用区中配置额外的公有和私有子网。本教程未使用这些子网。RDS 数据库子网组需要位于至少两个可用区中的一个子网。额外的子网使将来很容易切换到多可用区数据库实例部署。
要创建使用双堆栈模式的数据库实例,请为 Network type(网络类型)设置指定 Dual-stack mode(双堆栈模式)。您也可以使用相同的设置修改数据库实例。有关更多信息,请参阅创建 Amazon RDS 数据库实例 和修改 Amazon RDS 数据库实例。
本教程介绍为 Amazon RDS 数据库实例配置 VPC。有关 Amazon VPC 的更多信息,请参阅 Amazon VPC 用户指南。
创建包含公有子网和私有子网的 VPC
使用以下步骤创建包含公有和私有子网的 VPC。
创建 VPC 和子网
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
在 AWS Management Console 的右上角,选择要在其中创建 VPC 的区域。此示例使用美国东部(俄亥俄州)区域。
-
在左上角,选择 VPC Dashboard(VPC 控制面板)。要开始创建 VPC,请选择 Create VPC(创建 VPC)。
-
对于 VPC Settings(VPC 设置)下的 Resources to create(要创建的资源),选择 VPC and more(VPC 及更多)。
-
对于剩下的 VPC settings(VPC 设置),请设置这些值:
-
Name tag auto-generation(名称标签自动生成)–
tutorial-dual-stack
-
IPv4 CIDR block(IPv4 CIDR 块)–
10.0.0.0/16
-
IPv6 CIDR block(IPv6 CIDR 块)– Amazon-provided IPv6 CIDR block(Amazon 提供的 IPv6 CIDR 块)
-
Tenancy(租赁)– Default(原定设置)
-
Number of Availability Zones (AZs) [可用区(AZ)数量] – 2
-
Customize AZs(自定义可用区)– 保留原定设置值。
-
Number of public subnet(公有子网的数量)– 2
-
Number of private subnets(私有子网的数量)– 2
-
Customize subnets CIDR blocks(自定义子网 CIDR 块)– 保留原定设置值。
-
NAT gateways ($) [NAT 网关($)]– None(无)
-
Egress only internet gateway(仅限出口的互联网网关)– No(否)
-
VPC endpoints(VPC 端点)– None(无)
-
DNS options(DNS 选项)– 保留原定设置值。
注意
Amazon RDS 至少需要位于两个不同可用区中的两个子网,才能支持多可用区数据库实例部署。本教程创建了单可用区部署,但这项要求使得将来可以轻松转换为多可用区数据库实例部署。
-
-
选择创建 VPC。
为公有 Amazon EC2 实例创建 VPC 安全组
接下来创建安全组以便公共访问。要连接到 VPC 中的公有 EC2 实例,请将入站规则添加到 VPC 安全组,以允许流量从互联网连接。
创建 VPC 安全组
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
依次选择 VPC 控制面板)、安全组和创建安全组。
-
在创建安全组页面上,设置以下值:
-
安全组名称:
tutorial-dual-stack-securitygroup
-
说明:
Tutorial Dual-Stack Security Group
-
VPC:选择您之前创建的 VPC,例如:vpc-
identifier
(tutorial-dual-stack-vpc)
-
-
将入站规则添加到安全组。
-
确定要用来通过 Secure Shell(SSH)连接到 VPC 中的 EC2 实例的 IP 地址。
互联网协议版本 4(IPv4)地址的示例为
203.0.113.25/32
。互联网协议版本 6(IPv6)地址范围的示例为2001:db8:1234:1a00::/64
。在许多情况下,您可能通过互联网服务提供商(ISP)进行连接,或者在不使用静态 IP 地址的情况下从防火墙之后进行连接。如果是这样,请找出客户端计算机使用的 IP 地址范围。
警告
如果对 IPv4 使用
0.0.0.0/0
或对 IPv6 使用::0
,则使所有 IP 地址可能能够使用 SSH 访问您的公有实例。在测试环境下短时间内,此方法尚可接受,但它对于生产环境并不安全。在生产环境中,请仅授权特定 IP 地址或地址范围访问您的实例。 -
在入站规则部分中,选择添加规则。
-
为新入站规则设置以下值,以允许安全外壳 (SSH) 访问 Amazon EC2 实例。如果这样做,则可以连接到 EC2 实例来安装 SQL 客户端和其他应用程序。指定一个 IP 地址,以便您可以访问 EC2 实例:
-
类型:
SSH
-
Source(源):步骤 a 中的 IP 地址或范围。IPv4 IP 地址的一个示例为
203.0.113.25/32
。IPv6 IP 地址的一个示例为2001:DB8::/32
。
-
-
-
请选择 Create security group(创建安全组)以创建安全组。
请记下安全组 ID,因为本教程的后面将需要它。
为私有数据库实例创建 VPC 安全组
要保持您的数据库实例为私有,请创建第二个安全组进行私有访问。要连接到 VPC 中的私有数据库实例,请将入站规则添加到 VPC 安全组。它们仅允许来自 Amazon EC2 实例的流量。
创建 VPC 安全组
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
依次选择 VPC 控制面板)、安全组和创建安全组。
-
在创建安全组页面上,设置以下值:
-
安全组名称:
tutorial-dual-stack-db-securitygroup
-
说明:
Tutorial Dual-Stack DB Instance Security Group
-
VPC:选择您之前创建的 VPC,例如:vpc-
identifier
(tutorial-dual-stack-vpc)
-
-
将入站规则添加到安全组:
-
在入站规则部分中,选择添加规则。
-
为新入站规则设置以下值,以允许 Amazon EC2 实例中端口 3306 上的 MySQL 流量。如果这样做,您就可以从 EC2 实例连接到您的数据库实例。这样做意味着您可以将数据从 EC2 实例发送到数据库。
-
Type(类型):MySQL/Aurora
-
Source(源):您在本教程的前面部分创建的 tutorial-dual-stack-securitygroup 安全组的标识符,例如 sg-9edd5cfb。
-
-
-
要创建安全组,请选择创建安全组。
创建数据库子网组
数据库子网组 是您在 VPC 中创建并随后指定给数据库实例的子网集合。使用数据库子网组,您可以在创建数据库实例时指定特定的 VPC。要创建与 DUAL
兼容的数据库子网组,所有子网都必须与 DUAL
兼容。要与 DUAL
兼容,子网必须具有与之关联的 IPv6 CIDR。
创建数据库子网组
-
在 VPC 中识别数据库的私有子网。
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
选择 VPC Dashboard(VPC 控制面板),然后选择 Subnets(子网)。
-
记下名为 tutorial-dual-stack-subnet-private1-us-west-2a 和 tutorial-dual-stack-subnet-private2-us-west-2b 的子网的子网 ID。
创建数据库子网组时需要子网 ID。
-
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 确保您连接到 Amazon RDS 控制台,而不是 Amazon VPC 控制台。
-
在导航窗格中,选择子网组。
-
选择 Create DB subnet group(创建数据库子网组)。
-
在创建数据库子网组页面的子网组详细信息中设置以下值:
-
名称:
tutorial-dual-stack-db-subnet-group
-
说明:
Tutorial Dual-Stack DB Subnet Group
-
VPC:tutorial-dual-stack-vpc (vpc-
identifier
)
-
-
在 Add subnets(添加子网)部分中,选择 Availability Zones(可用区)和 Subnets(子网)选项的值。
对于本教程,请为 Availability Zones(可用区)选择 us-east-2a 和 us-east-2b。对于 Subnets(子网),选择您在上一步中确定的私有子网。
-
选择创建。
您的新数据库子网组显示在 RDS 控制台的数据库子网组列表中。您可以选择数据库子网组以查看其详细信息。其中包括支持的寻址协议、与该组关联的所有子网以及数据库子网组支持的网络类型。
在双堆栈模式下创建 Amazon EC2 实例
要创建 Amazon EC2 实例,请按照《Amazon EC2 用户指南》中的使用新启动实例向导启动实例中的说明操作。
在 Configure Instance Details(配置实例详细信息)页面上,设置以下值并将其他值保留为其原定设置值:
-
网络 – 选择同时具有公有子网和私有子网的现有 VPC,如在创建包含公有子网和私有子网的 VPC中创建的 tutorial-dual-stack-vpc(vpc-
identifier
)。 -
Subnet(子网)– 选择一个现有的公有子网,如在为公有 Amazon EC2 实例创建 VPC 安全组中创建的 subnet-
identifier
| tutorial-dual-stack-subnet-public1-us-east-2a | us-east-2a。 -
Auto-assign Public IP(自动分配公有 IP)– 选择 Enable(启用)。
-
Auto-assign IPv6 IP(自动分配 IPv6 IP)– 选择 Enable(启用)。
-
Firewall (security groups) [防火墙(安全组)] – 选择 Select an existing security group(选择现有安全组)。
-
Common security groups(常用安全组)– 选择一个现有的安全组,例如在为公有 Amazon EC2 实例创建 VPC 安全组中创建的
tutorial-securitygroup
。确保您选择的安全组包括 Secure Shell (SSH) 和 HTTP 访问的入站规则。
在双堆栈模式下创建数据库实例
在此步骤中,您将创建在双堆栈模式下运行的数据库实例。
创建数据库实例
-
登录 AWS Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 在控制台的右上角,选择要在其中创建数据库实例的 AWS 区域。此示例使用美国东部(俄亥俄州)区域。
-
在导航窗格中,选择 Databases(数据库)。
-
选择创建数据库。
在 Create database(创建数据库)页面上,确保选择了 Standard Create(标准创建)选项,然后选择 MySQL 数据库引擎类型。
-
在 Connectivity(连接)部分中,设置以下值:
-
Network type(网络类型)– 选择 Dual-stack mode(双堆栈模式)。
-
Virtual Private Cloud (VPC) [虚拟私有云(VPC)]– 选择具有公有子网和私有子网的现有 VPC,如在创建包含公有子网和私有子网的 VPC中创建的 tutorial-dual-stack-vpc (vpc-
identifier
)。VPC 的子网必须位于不同的可用区中。
-
DB subnet group(数据库子网组)– VPC 的数据库子网组,如在创建数据库子网组中创建的 tutorial-dual-stack-db-subnet-group。
-
Public access(公有访问权限)– 选择 No(否)。
-
VPC security group (firewall) [VPC 安全组(防火墙)] – 选择 Choose existing(选择现有)。
-
Existing VPC security groups(现有 VPC 安全组)– 选择为私有访问配置的现有 VPC 安全组,如 为私有数据库实例创建 VPC 安全组 中创建的 tutorial-dual-stack-db-securitygroup。
通过选择与其他每个安全组关联的 X 来删除该安全组,如默认安全组。
-
Availability Zone(可用区)– 选择 us-west-2a。
为避免跨可用区的流量,请确保数据库实例和 EC2 实例位于同一个可用区内。
-
-
对于其余部分,请指定数据库实例设置。有关每项设置的信息,请参阅 数据库实例的设置。
连接到 Amazon EC2 实例和数据库实例
在双堆栈模式下创建 Amazon EC2 实例和数据库实例后,您可以使用 IPv6 协议连接到每个实例。要使用 IPv6 协议连接到 Amazon EC2 实例,请按照《Amazon EC2 用户指南》中的连接到 Linux 实例中的说明操作。
要从 Amazon EC2 实例连接到 RDS for MySQL 数据库实例,请按照连接到 MySQL 数据库实例中的说明进行操作。
删除 VPC
为本教程创建 VPC 和其他资源后,如果不再需要 VPC 和其他资源,可以将其删除。
如果您在为本教程创建的 VPC 中添加了资源,则可能需要先删除这些资源,然后才能删除 VPC。资源示例包括 Amazon EC2 实例或数据库实例。有关更多信息,请参阅 Amazon VPC 用户指南中的您的 VPC 的安全性。
删除 VPC 和相关资源
-
删除数据库子网组:
-
通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择子网组。
-
选择要删除的数据库子网组,例如 tutorial-db-subnet-group。
-
选择 Delete (删除),然后在确认窗口中选择 Delete (删除)。
-
-
记下 VPC ID:
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
选择 VPC 控制面板,然后选择 VPC。
-
在列表中,标识您创建的 VPC,例如 tutorial-dual-stack-vpc。
-
记下所创建 VPC 的 VPC ID 值。在后续步骤中,您将需要此 VPC ID。
-
删除安全组:
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
选择 VPC 控制面板,然后选择安全组。
-
选择 Amazon RDS 数据库实例的安全组,例如 tutorial-dual-stack-db-securitygroup。
-
对于 Actions(操作),请选择 Delete security groups(删除安全组),然后在确认页面上选择 Delete(删除)。
-
在 Security Groups(安全组)页面上,选择 Amazon EC2 实例的安全组,例如 tutorial-dual-stack-securitygroup。
-
对于 Actions(操作),请选择 Delete security groups(删除安全组),然后在确认页面上选择 Delete(删除)。
-
删除 NAT 网关:
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
选择 VPC 控制面板,然后选择 NAT 网关。
-
选择您创建的 VPC 的 NAT 网关。使用 VPC ID 标识正确的 NAT 网关。
-
对于 Actions(操作),请选择 Delete NAT gateway(删除 NAT 网关)。
-
在确认页面上,输入
delete
并选择删除。
-
删除 VPC:
通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/
。 -
选择 VPC 控制面板,然后选择 VPC。
-
选择要删除的 VPC,例如 tutorial-dual-stack-vpc。
-
对于 Actions (操作),请选择 Delete VPC (删除 VPC)。
确认页面显示与 VPC 关联的其他资源,这些资源也将被删除,包括与其关联的子网。
-
在确认页面上,输入
delete
并选择 Delete (删除)。
-
释放弹性 IP 地址:
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
选择 EC2 控制面板,然后选择弹性 IP。
-
选择要释放的弹性 IP 地址。
-
对于 Actions(操作),请选择 Release Elastic IP addresses(释放弹性 IP 地址)。
-
在确认页面上,请选择释放。