教程:创建 Virtual Private Cloud (VPC) 以用于数据库实例(双堆栈模式) - Amazon Relational Database Service

教程:创建 Virtual Private Cloud (VPC) 以用于数据库实例(双堆栈模式)

一种常见的场景包括 Virtual Private Cloud (VPC) 中基于 Amazon VPC 服务的数据库实例。此 VPC 与在同一 VPC 中运行的公有 Amazon EC2 实例共享数据。在本教程中,您将为此场景创建 VPC,该 VPC 与在双堆栈模式下运行的数据库一起使用。

下图说明了此情形。


            双堆栈模式的 VPC 场景

有关其他方案的信息,请参阅在 VPC 中访问数据库实例的方案

由于数据库实例只需对 Amazon EC2 实例可用,而无需对公共 Internet 可用,因此,请创建包含公有子网和私有子网的 VPC。Amazon EC2 实例托管在公有子网中,以便它可访问公共 Internet。数据库实例托管于私有子网中。Amazon EC2 实例可以连接到数据库实例,因为它托管在同一 VPC 内。但是,数据库实例不可用于公共 Internet,从而提高了安全性。

要创建使用双堆栈模式的数据库实例,请为 Network type(网络类型)设置指定 Dual-stack mode(双堆栈模式)。您也可以使用相同的设置修改数据库实例。有关更多信息,请参阅 创建 Amazon RDS 数据库实例修改 Amazon RDS 数据库实例

本教程介绍为 Amazon RDS 数据库实例配置 VPC。有关 Amazon VPC 的更多信息,请参阅 Amazon VPC 入门指南Amazon VPC 用户指南

创建包含公有子网和私有子网的 VPC

使用以下步骤创建包含公有和私有子网的 VPC。

创建 VPC 和子网

  1. 如果您没有要与网络地址转换 (NAT) 网关关联的弹性 IP 地址,请立即分配一个地址。本教程需要使用 NAT 网关。如果您有可用的弹性 IP 地址,请继续执行下一步。

    1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

    2. 在 AWS Management Console 的右上角,选择要在其中分配弹性 IP 地址的 AWS 区域。弹性 IP 地址的区域应与要创建 VPC 的区域相同。此示例使用美国东部(俄亥俄州)区域。

    3. 在导航窗格中,选择 Elastic IPs

    4. 选择 Allocate Elastic IP address (分配弹性 IP 地址)

    5. 如果控制台显示 Network Border Group (网络边界组) 字段,请保留其默认值。

    6. 对于 Public IPv4 address pool (公有 IPv4 地址池),选择 Amazon's pool of IPv4 (Amazon IPv4 池)

    7. 选择 Allocate

      请注意新弹性 IP 地址的分配 ID,因为您在创建 VPC 时需要此信息。

    有关弹性 IP 地址的更多信息,请参阅 Amazon EC2 用户指南中的弹性 IP 地址。有关 NAT 网关的更多信息,请参阅 Amazon VPC 用户指南中的 NAT 网关

  2. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  3. 在 AWS Management Console 的右上角,选择要在其中创建 VPC 的区域。此示例使用美国东部(俄亥俄州)区域。

  4. 确保左上角的 New VPC Experience(全新 VPC 体验)已关闭。

  5. 选择左上角的 VPC Dashboard。要开始创建 VPC,请选择 Launch VPC Wizard (启动 VPC 向导)

  6. Step 1: Select a VPC Configuration 页上,选择 VPC with Public and Private Subnets,然后选择 Select

  7. Step 2: VPC with Public and Private Subnets 页面上,设置以下值:

    • IPv4 CIDR 块10.0.0.0/16

    • IPv6 CIDR block(IPv6 CIDR 块):Amazon-provided IPv6 CIDR block(Amazon 提供的 IPv6 CIDR 块)

    • VPC name(VPC 名称):tutorial-dual-stack-vpc

    • Public subnet's IPv4 CIDR (公有子网的 IPv4 CIDR)10.0.0.0/24

    • Public subnet's IPv6 CIDR(公有子网的 IPv6 CIDR):选择 Specify a custom IPv6 CIDR(指定自定义 IPv6 CIDR),然后输入 00 作为自定义 IPv6 CIDR 的结尾

    • Availability Zone(可用区):us-east-2a

    • Public subnet name(公有子网名称):Tutorial dual-stack public(教程双堆栈公有)

    • Public subnet's IPv4 CIDR(公有子网的 IPv4 CIDR):10.0.0.0/24

    • Private subnet's IPv6 CIDR(私有子网的 IPv6 CIDR):选择 Specify a custom IPv6 CIDR(指定自定义 IPv6 CIDR),然后输入 01 作为自定义 IPv6 CIDR 的结尾

    • Availability Zone(可用区):us-east-2b

    • Private subnet name(私有子网名称):Tutorial dual-stack private 1(教程双堆栈私有 1)

    • 弹性 IP 分配 ID:要与 NAT 网关关联的弹性 IP 地址

    • Service endpoints(服务终端节点):跳过此字段

    • Enable DNS hostnames (启用 DNS 主机名)Yes (是)

    • Hardware tenancy (硬件租赁)Default (默认值)

  8. 选择 Create VPC

创建额外子网

您必须具有两个私有子网或两个公有子网,且这些子网可用于为在 VPC 中使用的数据库实例创建数据库子网组。由于本教程的数据库实例为私有实例,请向 VPC 添加另一个私有子网。

创建额外子网

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 请依次选择 VPC Dashboard(VPC 控制面板)、Subnets(子网)和 Create subnet(创建子网),向 VPC 添加另一个私有子网。

  3. Create subnet (创建子网) 页面上,设置以下值:

    • VPC ID:选择在上一步中创建的 VPC,例如 vpc-identifier (tutorial-dual-stack-vpc)

    • Subnet name(子网名称):Tutorial dual-stack private 2(教程双堆栈私有 2)

    • Availability Zone(可用区):us-east-2c

      注意

      选择与您为第一个私有子网选择的可用区不同的可用区。

    • IPv6-only(仅限 IPv6):不选中此选项

    • IPv4 CIDR block(IPv4 CIDR 块):10.0.2.0/24

    • IPv6 CIDR block(IPv6 CIDR 块):选择 Custom IPv6(自定义 IPv6),然后输入 02 作为自定义 IPv6 CIDR 的结尾

  4. 选择创建子网

  5. 请执行以下步骤,以确保您创建的第二个私有子网使用与第一个私有子网相同的路由表:

    1. 依次选择 VPC Dashboard(VPC 控制面板)和 Subnets(子网),然后选择您为 VPC 创建的第一个私有子网 Tutorial dual-stack private 1(教程双堆栈私有 1)。

    2. 在子网列表下,选择 Route table(路由表)选项卡,然后记下 Route table(路由表)的值,例如 rtb-98b613fd

    3. 在子网列表中,清除第一个私有子网的选项。

    4. 在子网列表中,选择第二个私有子网 Tutorial private 2(教程私有 2),然后选择 Route table(路由表)选项卡。

    5. 如果当前路由表不同于第一个私有子网的路由表,则选择 Edit route table association(编辑路由表关联)。对于 Route table ID(路由表 ID),请选择之前记下的路由表,例如 rtb-98b613fd。要保存您的选择,请选择 Save(保存)。

为公有 Amazon EC2 实例创建 VPC 安全组

接下来创建安全组以便公共访问。要连接到 VPC 中的公有实例,请将入站规则添加到 VPC 安全组,以允许流量从 Internet 连接。

创建 VPC 安全组

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 依次选择 VPC 控制面板)安全组创建安全组

  3. 创建安全组页面上,设置以下值:

    • 安全组名称:tutorial-dual-stack-securitygroup

    • 说明:Tutorial Dual-Stack Security Group

    • VPC:选择之前创建的 VPC,例如:vpc-identifier (tutorial-dual-stack-vpc)

  4. 将入站规则添加到安全组。

    1. 确定要用于连接到 VPC 中的实例的 IP 地址。

      要确定您的公有 IP 地址,请在新的浏览器窗口或标签页中使用 https://checkip.amazonaws.com 上的服务。IPv4 IP 地址的一个示例为 203.0.113.25/32。IPv6 IP 地址的一个示例为 2001:DB8::/32

      如果您正通过 Internet 服务提供商 (ISP) 连接或者在不使用静态 IP 地址的情况下从防火墙后面连接,则找出客户端计算机使用的 IP 地址范围。

      警告

      如果对 IPv4 使用 0.0.0.0/0 或对 IPv6 使用 ::0,则可以允许所有 IP 地址访问您的公有实例。在测试环境下短时间内,此方法尚可接受,但它对于生产环境并不安全。在生产环境中,请仅授权特定 IP 地址或地址范围访问您的实例。

    2. 入站规则部分中,选择添加规则

    3. 为新入站规则设置以下值,以允许安全外壳 (SSH) 访问 Amazon EC2 实例。如果这样做,则可以连接到 EC2 实例来安装 SQL 客户端和其他应用程序。指定一个 IP 地址以允许访问 EC2 实例:

      • 类型: SSH

      • Source(源):步骤 a 中的 IP 地址或范围。IPv4 IP 地址的一个示例为 203.0.113.25/32。IPv6 IP 地址的一个示例为 2001:DB8::/32

  5. 请选择 Create security group(创建安全组)以创建安全组。

    请记下安全组 ID,因为本教程的后面将需要它。

为私有数据库实例创建 VPC 安全组

要保持您的数据库实例私有,请创建第二个安全组供私有访问。要连接到 VPC 中的私有实例,请将入站规则添加到 VPC 安全组以仅允许来自 Amazon EC2 实例的流量。

创建 VPC 安全组

  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 依次选择 VPC 控制面板)安全组创建安全组

  3. 创建安全组页面上,设置以下值:

    • 安全组名称:tutorial-dual-stack-db-securitygroup

    • 说明:Tutorial Dual-Stack DB Instance Security Group

    • VPC:选择之前创建的 VPC,例如:vpc-identifier (tutorial-dual-stack-vpc)

  4. 将入站规则添加到安全组:

    1. 入站规则部分中,选择添加规则

    2. 为新入站规则设置以下值,以允许 Amazon EC2 实例中端口 3306 上的 MySQL 流量。如果这样做,您就可以从 EC2 实例连接到数据库实例,以便将数据从 EC2 实例存储到数据库并进行检索。

      • Type(类型):MySQL/Aurora

      • Source(源):您在本教程的前面部分创建的 tutorial-dual-stack-securitygroup 安全组的标识符,例如 sg-9edd5cfb

  5. 要创建安全组,请选择创建安全组

创建数据库子网组

数据库子网组 是您在 VPC 中创建并随后指定给数据库实例的子网集合。使用数据库子网组,您可以在创建数据库实例时指定特定的 VPC。要创建与 DUAL 兼容的数据库子网组,所有子网都必须与 DUAL 兼容。要与 DUAL 兼容,子网必须具有与之关联的 IPv6 CIDR。

创建数据库子网组

  1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

    确保您连接到 Amazon RDS 控制台,而不是 Amazon VPC 控制台。

  2. 在导航窗格中,选择子网组

  3. 选择 Create DB subnet group(创建数据库子网组)。

  4. 创建数据库子网组页面的子网组详细信息中设置以下值:

    • 名称:tutorial-dual-stack-db-subnet-group

    • 说明:Tutorial Dual-Stack DB Subnet Group

    • VPC: tutorial-dual-stack-vpc (vpc-identifier)

  5. Add subnets(添加子网)部分中,选择 Availability Zones(可用区)和 Subnets(子网)选项的值。

    对于本教程,请为 Availability Zones(可用区)选择 us-east-2bus-east-2c。对于 Subnets(子网),请选择具有与其关联的 IPv4 和 IPv6 CIDR 块的子网。对于本教程,请为 IPv4 CIDR 块 10.0.1.0/24 和 10.0.2.0/24 选择子网。

    注意

    如果已启用本地扩展区,则可以在创建数据库子网组页面上选择可用区组。在这种情况下,请为 Availability Zone group(可用区组)、Availability Zones(可用区)和 Subnets(子网)选项选择值。

  6. 选择 Create (创建)

您的新数据库子网组显示在 RDS 控制台的数据库子网组列表中。您可以选择数据库子网组以查看其详细信息。其中包括支持的寻址协议、与该组关联的所有子网以及数据库子网组支持的网络类型。

在双堆栈模式下创建 Amazon EC2 实例

要创建 Amazon EC2 实例,请按照 Amazon EC2 用户指南(适用于 Linux 实例)中的使用启动实例向导启动实例中的说明操作。

在下面所示的 Configure Instance Details (配置实例详细信息) 页面上,设置以下值并将其他值保留为其默认值:

在下面所示的 Configure Security Group (配置安全组) 页面上,选择 Select an existing security group (选择一个现有的安全组)。然后选择一个现有的安全组,如 为公有 Amazon EC2 实例创建 VPC 安全组 中创建的 tutorial-dual-stack-securitygroup。确保您选择的安全组包括安全外壳 (SSH) 的入站规则。

在双堆栈模式下创建数据库实例

在此步骤中,您将创建在双堆栈模式下运行的 Amazon RDS 数据库实例。

创建 MySQL 数据库实例

  1. 登录AWS Management Console并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在控制台的右上角,选择要在其中创建数据库实例的 AWS 区域。此示例使用美国东部(俄亥俄州)区域。

  3. 在导航窗格中,选择 Databases (数据库)

  4. 选择创建数据库

  5. 在下面显示的 Create database (创建数据库) 页面上,确保选择了 Standard Create (标准创建) 选项,然后选择 MySQL

  6. Connectivity(连接)部分中,设置以下值:

    • Network type(网络类型)– 选择 Dual-stack mode(双堆栈模式)

      
                                控制台中的 Network type(网络类型)部分,已选中 Dual-stack mode(双堆栈模式)
    • Virtual Private Cloud (VPC) – 选择具有公有子网和私有子网的现有 VPC,如 创建包含公有子网和私有子网的 VPC 中创建的 tutorial-dual-stack-vpc (vpc-identifier)

      VPC 的子网必须位于不同的可用区中。

    • Subnet group(子网组)– VPC 的数据库子网组,如 创建数据库子网组 中创建的 tutorial-dual-stack-db-subnet-group

    • 公有访问权限

    • VPC security group(VPC 安全组)– 选择现有组

    • Existing VPC security groups(现有 VPC 安全组)– 选择为私有访问配置的现有 VPC 安全组,如 为私有数据库实例创建 VPC 安全组 中创建的 tutorial-dual-stack-db-securitygroup

      通过选择与其他每个安全组关联的 X 来删除该安全组,如默认安全组。

    • Availability Zone(可用区)– 无首选项

    • 打开 Additional configuration(其他配置),并确保 Database port(数据库端口)使用默认值 3306

  7. 对于其余部分,请指定数据库实例设置。有关每项设置的信息,请参阅 数据库实例的设置

连接到 Amazon EC2 实例和数据库实例

在双堆栈模式下创建 Amazon EC2 实例和数据库实例后,您可以使用 IPv6 协议连接到每个实例。要使用 IPv6 协议连接到 Amazon EC2 实例,请按照 Amazon EC2 用户指南(适用于 Linux 实例)中的连接到 Linux 实例中的说明操作。要连接到数据库实例,请按照 连接到 Amazon RDS 数据库实例 中的说明操作。

删除 VPC

为本教程创建 VPC 和其他资源后,如果不再需要 VPC 和其他资源,可以将其删除。

如果您在为本教程创建的 VPC 中添加了资源,例如 Amazon EC2 实例或 Amazon RDS 数据库实例,则可能需要先删除这些资源,然后才能删除 VPC。有关更多信息,请参阅 Amazon VPC 用户指南中的您的 VPC 的安全性

删除 VPC 和相关资源

  1. 删除数据库子网组:

    1. 通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

    2. 在导航窗格中,选择子网组

    3. 选择要删除的数据库子网组,例如 tutorial-db-subnet-group

    4. 选择 Delete (删除),然后在确认窗口中选择 Delete (删除)

  2. 记下 VPC ID:

    1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

    2. 选择 VPC 控制面板,然后选择 VPC

    3. 在列表中,标识您创建的 VPC,例如 tutorial-dual-stack-vpc

    4. 记下所创建 VPC 的 VPC ID 值。在后续步骤中,您将需要此 VPC ID。

  3. 删除安全组:

    1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

    2. 选择 VPC 控制面板,然后选择安全组

    3. 选择 Amazon RDS 数据库实例的安全组,例如 tutorial-dual-stack-db-securitygroup

    4. 对于 Actions(操作),请选择 Delete security groups(删除安全组),然后在确认页面上选择 Delete(删除)。

    5. Security Groups(安全组)页面上,选择 Amazon EC2 实例的安全组,例如 tutorial-dual-stack-securitygroup

    6. 对于 Actions(操作),请选择 Delete security groups(删除安全组),然后在确认页面上选择 Delete(删除)。

  4. 删除 NAT 网关:

    1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

    2. 选择 VPC 控制面板,然后选择 NAT 网关

    3. 选择您创建的 VPC 的 NAT 网关。使用 VPC ID 标识正确的 NAT 网关。

    4. 对于 Actions(操作),请选择 Delete NAT gateway(删除 NAT 网关)。

    5. 在确认页面上,输入 delete 并选择删除

  5. 删除 VPC:

    1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

    2. 选择 VPC 控制面板,然后选择 VPC

    3. 选择要删除的 VPC,例如 tutorial-dual-stack-vpc

    4. 对于 Actions (操作),请选择 Delete VPC (删除 VPC)

      确认页面显示与 VPC 关联的其他资源,这些资源也将被删除,包括与其关联的子网。

    5. 在确认页面上,输入 delete 并选择 Delete (删除)

  6. 释放弹性 IP 地址:

    1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

    2. 选择 EC2 控制面板,然后选择弹性 IP

    3. 选择要释放的弹性 IP 地址。

    4. 对于 Actions(操作),请选择 Release Elastic IP addresses(释放弹性 IP 地址)。

    5. 在确认页面上,请选择释放