AWS VPC

310 阅读14分钟

AWS VPC(Virtual Private Cloud,虚拟私有云)是 Amazon Web Services 提供的一项服务,允许用户在 AWS 云中创建一个逻辑隔离的网络环境。用户可以在 VPC 中定义自己的 IP 地址范围、子网、路由表、网关和安全设置,从而完全控制网络配置和流量管理。

主要功能和组件

1. VPC
  • VPC:VPC 是一个逻辑隔离的网络环境,用户可以在其中启动 AWS 资源(如 EC2 实例、RDS 数据库等)。每个 VPC 都有一个指定的 IP 地址范围(CIDR 块)。
2. 子网(Subnet)
  • 子网:子网是 VPC 中的一个 IP 地址范围,用于将 VPC 划分为多个逻辑子区域。子网可以是公有子网(具有互联网访问权限)或私有子网(没有直接的互联网访问权限)。
3. 路由表(Route Table)
  • 路由表:路由表定义了子网中的流量如何路由到其他子网、互联网或其他网络。每个子网都关联一个路由表。
4. 互联网网关(Internet Gateway, IGW)
  • 互联网网关:互联网网关是一个允许 VPC 中的资源与互联网通信的组件。公有子网需要关联一个互联网网关才能访问互联网。
5. NAT 网关(NAT Gateway)
  • NAT 网关:NAT 网关允许私有子网中的资源访问互联网,同时保持这些资源的私有 IP 地址不被暴露。NAT 网关通常部署在公有子网中。
6. 安全组(Security Group)
  • 安全组:安全组是一个虚拟防火墙,用于控制 VPC 中的资源的入站和出站流量。安全组基于状态,允许或拒绝特定的流量。
7. 网络 ACL(Network ACL, NACL)
  • 网络 ACL:网络 ACL 是一个子网级别的防火墙,用于控制进出子网的流量。网络 ACL 基于无状态,允许或拒绝特定的流量。
8. VPC 对等连接(VPC Peering)
  • VPC 对等连接:VPC 对等连接允许两个 VPC 之间建立私有连接,使它们能够相互通信。对等连接可以在同一区域内或跨区域建立。
9. VPN 连接(VPN Connection)
  • VPN 连接:VPN 连接允许用户通过加密隧道将本地网络与 VPC 连接,实现安全的跨网络通信。
10. AWS Direct Connect
  • AWS Direct Connect:Direct Connect 是一种专用网络连接服务,允许用户通过专用线路将本地数据中心与 AWS 连接,实现高带宽、低延迟的网络通信。

创建和配置 VPC 的步骤

  1. 创建 VPC

    • 指定 VPC 的 CIDR 块(例如,10.0.0.0/16)。
    • 选择是否启用 DNS 支持和 DNS 主机名解析。
  2. 创建子网

    • 在 VPC 中创建一个或多个子网,指定每个子网的 CIDR 块(例如,10.0.1.0/24)。
    • 指定子网的可用区(Availability Zone)。
  3. 配置路由表

    • 创建一个或多个路由表,并添加路由规则。
    • 将子网关联到路由表。
  4. 配置互联网网关

    • 创建并附加一个互联网网关到 VPC。
    • 在路由表中添加一条指向互联网网关的默认路由(0.0.0.0/0)。
  5. 配置 NAT 网关

    • 在公有子网中创建一个 NAT 网关。
    • 在私有子网的路由表中添加一条指向 NAT 网关的默认路由(0.0.0.0/0)。
  6. 配置安全组和网络 ACL

    • 创建并配置安全组,定义允许的入站和出站流量规则。
    • 创建并配置网络 ACL,定义允许的进出子网的流量规则。

总结

AWS VPC(虚拟私有云)是一个逻辑隔离的网络环境,允许用户在 AWS 云中定义和控制自己的网络配置。VPC 提供了丰富的功能和组件,包括子网、路由表、互联网网关、NAT 网关、安全组、网络 ACL、VPC 对等连接、VPN 连接和 AWS Direct Connect。通过合理配置这些组件,用户可以创建一个安全、高效和可扩展的网络环境,满足各种应用需求。

弹性 IP

弹性 IP(Elastic IP, EIP)是 Amazon Web Services (AWS) 提供的一种静态 IPv4 地址,专门用于动态云计算。弹性 IP 地址可以与 AWS 账户中的实例(如 EC2 实例)关联,并在实例之间动态重新分配,以便在实例故障或重新启动时保持 IP 地址不变。

弹性 IP 的主要特点

  1. 静态 IP 地址

    • 弹性 IP 地址是一个静态的、公共的 IPv4 地址,可以分配给 AWS 账户,并与实例关联。与动态分配的公共 IP 地址不同,弹性 IP 地址在实例停止和启动时不会改变。
  2. 高可用性

    • 弹性 IP 地址可以在实例之间动态重新分配,以便在实例故障或重新启动时保持 IP 地址不变。这有助于提高应用程序的高可用性和容错能力。
  3. 灵活性

    • 弹性 IP 地址可以随时与实例关联或解除关联,允许用户根据需要动态管理 IP 地址。这使得用户可以灵活地调整网络配置,满足不同的应用需求。
  4. 成本效益

    • 弹性 IP 地址本身是免费的,但如果弹性 IP 地址未与任何实例关联,AWS 会收取少量费用。这鼓励用户合理使用弹性 IP 地址,避免资源浪费。

弹性 IP 的使用场景

  1. 高可用性和故障恢复

    • 弹性 IP 地址可以在实例之间动态重新分配,以便在实例故障或重新启动时保持 IP 地址不变。这有助于实现高可用性和故障恢复。
  2. 静态 IP 地址需求

    • 某些应用程序需要使用静态 IP 地址,以便在 DNS 记录中配置或与外部系统集成。弹性 IP 地址提供了一个稳定的公共 IP 地址,满足这些需求。
  3. 负载均衡

    • 弹性 IP 地址可以与负载均衡器(如 Elastic Load Balancer, ELB)结合使用,以便在多个实例之间分发流量,提高应用程序的性能和可扩展性。

弹性 IP 与 NAT 网关的关联

弹性 IP(Elastic IP, EIP)可以与 NAT 网关(NAT Gateway)关联。NAT 网关允许私有子网中的资源访问互联网,同时保持这些资源的私有 IP 地址不被暴露。通过将弹性 IP 地址与 NAT 网关关联,私有子网中的资源可以使用该弹性 IP 地址进行互联网访问。

当你创建 NAT 网关时,需要指定一个弹性 IP 地址。NAT 网关会使用这个弹性 IP 地址与互联网通信。以下是如何在 AWS 上创建 NAT 网关并关联弹性 IP 地址的步骤:

1. 创建弹性 IP 地址

首先,需要创建一个弹性 IP 地址。你可以使用 AWS 管理控制台、AWS CLI 或 Terraform 等工具来创建弹性 IP 地址。

2. 创建 NAT 网关并关联弹性 IP 地址

接下来,创建 NAT 网关并将其与弹性 IP 地址关联。NAT 网关通常部署在公有子网中,以便能够访问互联网。

总结

弹性 IP(Elastic IP, EIP)可以与 NAT 网关(NAT Gateway)关联,以便私有子网中的资源能够访问互联网。通过将弹性 IP 地址与 NAT 网关关联,私有子网中的资源可以使用该弹性 IP 地址进行互联网访问。使用 Terraform 配置,可以轻松创建和管理弹性 IP 地址、NAT 网关及其关联关系,从而实现高效的网络配置和管理。

VPC 端点

AWS VPC 端点(VPC Endpoint)允许你在不使用互联网网关、NAT 设备、VPN 连接或 AWS Direct Connect 的情况下,将 VPC 私有连接到支持的 AWS 服务。VPC 端点有两种类型:接口端点(Interface Endpoint)和网关端点(Gateway Endpoint)。以下是对这两种类型的详细介绍:

接口端点(Interface Endpoint)

接口端点使用 AWS 私有链接(AWS PrivateLink)技术,通过弹性网络接口(ENI)在 VPC 中创建一个私有 IP 地址,连接到支持的 AWS 服务。接口端点适用于大多数 AWS 服务。

特点
  1. 私有连接

    • 通过私有 IP 地址在 VPC 内部与 AWS 服务通信,无需通过互联网。
  2. 弹性网络接口(ENI)

    • 在 VPC 中创建一个或多个弹性网络接口,每个接口都有一个私有 IP 地址。
  3. 支持的服务

    • 支持大多数 AWS 服务,如 EC2、ECS、Kinesis、Secrets Manager 等。
  4. 安全性

    • 支持安全组,允许你控制接口端点的入站和出站流量。

网关端点(Gateway Endpoint)

网关端点使用路由表将 VPC 私有连接到支持的 AWS 服务。网关端点适用于 Amazon S3 和 DynamoDB。

特点
  1. 私有连接

    • 通过路由表在 VPC 内部与 AWS 服务通信,无需通过互联网。
  2. 路由表

    • 在路由表中添加一条指向网关端点的路由,允许 VPC 内的资源通过私有连接访问服务。
  3. 支持的服务

    • 目前仅支持 Amazon S3 和 DynamoDB。
  4. 简单配置

    • 不需要配置弹性网络接口和安全组,配置相对简单。

选择接口端点和网关端点

  • 接口端点(Interface Endpoint)

    • 适用于大多数 AWS 服务。
    • 通过弹性网络接口(ENI)创建私有 IP 地址。
    • 支持安全组,允许控制入站和出站流量。
  • 网关端点(Gateway Endpoint)

    • 适用于 Amazon S3 和 DynamoDB。
    • 通过路由表将 VPC 私有连接到服务。
    • 配置相对简单,不需要配置弹性网络接口和安全组。

总结

AWS VPC 端点(VPC Endpoint)允许你在不使用互联网的情况下,将 VPC 私有连接到支持的 AWS 服务。VPC 端点有两种类型:接口端点(Interface Endpoint)和网关端点(Gateway Endpoint)。接口端点适用于大多数 AWS 服务,通过弹性网络接口(ENI)创建私有 IP 地址,并支持安全组。网关端点适用于 Amazon S3 和 DynamoDB,通过路由表将 VPC 私有连接到服务,配置相对简单。通过合理选择和配置 VPC 端点,可以提高网络安全性和性能,满足不同的应用需求。

Transit Gateway

AWS Transit Gateway 是一种高可用且可扩展的网络传输中心,允许你在多个 VPC、VPN 连接和本地网络之间实现互连。它简化了网络架构,提供了集中化的管理和控制,适用于大规模和复杂的网络环境。

主要功能和特点

  1. 集中化管理

    • AWS Transit Gateway 提供了一个中心点,通过它可以管理和控制多个 VPC、VPN 连接和本地网络的互连。这样可以简化网络架构,减少管理复杂性。
  2. 高可用性和可扩展性

    • Transit Gateway 是一个高可用的服务,内置冗余和故障恢复机制。它可以自动扩展以处理大量的网络流量,适用于大规模的网络环境。
  3. 跨区域互连

    • Transit Gateway 支持跨区域互连,允许你在不同的 AWS 区域之间建立连接。这对于全球分布的应用和跨区域灾难恢复非常有用。
  4. 多账户支持

    • Transit Gateway 支持 AWS 组织中的多个账户,允许你在不同账户之间共享和管理网络资源。这对于大型企业和多团队协作非常有用。
  5. 路由控制

    • Transit Gateway 提供了灵活的路由控制,允许你定义和管理路由表,以控制流量的转发路径。你可以创建多个路由表,并将它们与不同的 VPC 和 VPN 连接关联。
  6. 安全性

    • Transit Gateway 支持流量加密和访问控制,确保网络通信的安全性。你可以使用 AWS Identity and Access Management (IAM) 控制对 Transit Gateway 的访问权限。

主要组件

  1. Transit Gateway

    • Transit Gateway 是网络传输中心,负责管理和控制多个 VPC、VPN 连接和本地网络的互连。
  2. VPC 附加(VPC Attachment)

    • VPC 附加是将一个 VPC 连接到 Transit Gateway 的过程。通过 VPC 附加,VPC 内的资源可以与其他连接到同一 Transit Gateway 的网络进行通信。
  3. VPN 连接(VPN Attachment)

    • VPN 连接是将一个本地网络通过 VPN 隧道连接到 Transit Gateway 的过程。通过 VPN 连接,本地网络可以与 AWS 网络进行通信。
  4. 跨区域对等连接(Inter-Region Peering Attachment)

    • 跨区域对等连接是将不同 AWS 区域的 Transit Gateway 连接在一起的过程。通过跨区域对等连接,你可以在不同区域之间实现网络互连。
  5. 路由表(Route Table)

    • 路由表定义了流量的转发路径。你可以创建多个路由表,并将它们与不同的 VPC 和 VPN 连接关联,以控制流量的转发路径。

使用场景

  1. 多 VPC 互连

    • 使用 Transit Gateway 可以简化多个 VPC 之间的互连,提供集中化的管理和控制。
  2. 混合云架构

    • 使用 Transit Gateway 可以将本地网络通过 VPN 或 AWS Direct Connect 连接到 AWS 云,实现混合云架构。
  3. 跨区域互连

    • 使用 Transit Gateway 可以在不同的 AWS 区域之间建立连接,实现全球分布的应用和跨区域灾难恢复。
  4. 多账户网络管理

    • 使用 Transit Gateway 可以在 AWS 组织中的多个账户之间共享和管理网络资源,适用于大型企业和多团队协作。

总结

AWS Transit Gateway 是一种高可用且可扩展的网络传输中心,允许你在多个 VPC、VPN 连接和本地网络之间实现互连。它提供了集中化的管理和控制,适用于大规模和复杂的网络环境。通过合理配置 Transit Gateway 和相关资源,可以实现跨 VPC、跨账户和跨区域的网络互连,满足复杂的网络需求。

NAT 网关 Private & Public

AWS NAT 网关(NAT Gateway)的 connectivity type 属性可以设置为 public 或 private,这决定了 NAT 网关的连接类型和用途。

Connectivity Type 属性

  1. Public NAT Gateway

    • 描述:Public NAT Gateway 是默认的 NAT 网关类型,允许私有子网中的实例通过 NAT 网关访问互联网和其他 AWS 服务。
    • 连接方式:Public NAT Gateway 需要一个弹性 IP 地址(Elastic IP, EIP),并且必须部署在公有子网中。它使用弹性 IP 地址与互联网通信。
    • 使用场景:适用于需要私有子网中的实例访问互联网的场景,例如下载软件更新、访问外部 API 等。
  2. Private NAT Gateway

    • 描述:Private NAT Gateway 是一种不需要弹性 IP 地址的 NAT 网关类型,允许私有子网中的实例通过私有连接访问其他 AWS 服务。
    • 连接方式:Private NAT Gateway 不需要弹性 IP 地址,通常部署在私有子网中。它通过 VPC 端点(VPC Endpoint)或 AWS PrivateLink 与其他 AWS 服务通信。
    • 使用场景:适用于需要私有子网中的实例访问其他 AWS 服务但不需要访问互联网的场景,例如访问 S3、DynamoDB 等服务。

Private NAT Gateway 的用途

当 NAT 网关的 connectivity type 属性设置为 private 时,说明该 NAT 网关不需要弹性 IP 地址,并且主要用于通过私有连接访问其他 AWS 服务。具体来说:

  • 不能直接访问互联网:Private NAT Gateway 无法直接访问互联网,因为它没有弹性 IP 地址。
  • 访问其他 AWS 服务:Private NAT Gateway 可以通过 VPC 端点或 AWS PrivateLink 访问其他 AWS 服务,例如 S3、DynamoDB 等。

总结

当 AWS NAT 网关的 connectivity type 属性设置为 private 时,说明该 NAT 网关不需要弹性 IP 地址,并且主要用于通过私有连接访问其他 AWS 服务。Private NAT Gateway 无法直接访问互联网,但可以通过 VPC 端点或 AWS PrivateLink 访问其他 AWS 服务,例如 S3、DynamoDB 等。通过合理配置 Private NAT Gateway,可以满足特定的网络需求,提高网络的安全性和性能。