Amazon AWS 概念及相关操作步骤

AWS 虚拟私有云 VPC

在进入具体的网络配置前,必须理解 AWS 的地理隔离:

  • 区域 (Region) :地理上的独立区域(如新加坡、弗吉尼亚)。区域之间完全隔离。

  • 可用区 (Availability Zone, AZ) :一个区域内由多个物理机房组成。AZ 之间通过高速、低延迟光纤连接。高可用架构必须跨 AZ 部署。跨 AZ 之间的流量需要付费。

VPC 是你在 AWS 云中的逻辑隔离网络。你可以完全控制其 IP 地址范围、子网、路由表和网络网关。

核心组件:

  • CIDR 范围 :你为 VPC 定义的私有 IP 地址块(如 10.0.0.0/16 )。

  • 子网 (Subnets) :将 VPC 划分为更小的网段。子网必须位于特定的可用区内。

  • 公有子网 (Public Subnet) :路由指向互联网网关 (IGW),实例可以有公网 IP。

  • 私有子网 (Private Subnet) :没有指向 IGW 的直接路由,通常通过 NAT 网关 访问外网

公有子网私有子网 在配置上几乎一摸一样,唯一区别在于: 该子网关联的路由表(Route Table)中默认路由(0.0.0.0/0)是如何配置的。

  • 公有子网 (Public Subnet) 其路由表中默认路由(0.0.0.0/0)指向 互联网网关 (Internet Gateway, ID 格式通常为 igw-xxxxxx) 。由于它直接连接到互联网大门,且子网内的实例拥有公网 IP,因此外部用户可以主动访问它,它也可以直接访问外部。
  • 私有子网 (Private Subnet) 其路由表中默认路由(0.0.0.0/0)指向 NAT 网关 (NAT Gateway, ID 格式通常为 nat-xxxxxx),或者干脆没有任何去往外网的路由 。它没有直通互联网的大门。它通过 NAT 网关(单向出口)实现“能出不能进”的效果。
    下图所示子网为 公有子网

  • 路由表(Route Tables) 分为主路由表和自定义路由表
    • 主路由表(Main route table) 随 VPC 自动生成,它控制未与任何其他路由表显式关联的所有子网的路由,也就是 VPC 中的默认路由。
    • 自定义路由表 为新建的路由表。
    • 一个子网只能关联一个路由表,一个路由表可以关联多个子网

流量如何进出

VPC 与外界互联网通信可以使用以下方式:

组件 作用 流量方向 用法说明|
Internet Gateway (IGW,互联网网关) 允许 VPC 连接互联网。 双向 (In/Out) 实例必须分配公网 IP 或弹性 IP (EIP)
NAT Gateway (NAT 网关) 允许私有实例上外网,但防止外部主动连接。 单向 (Outbound only) 仅需私有 IP
VPC Peering (对等连接) 连接两个不同的 VPC,使其像在一个网络内通信。 跨 VPC
Transit Gateway 充当“中央枢纽”,连接数千个 VPC 和本地网络。 复杂网络拓扑
Virtual Private Gateway 用于建立 VPN 连接。 混合云

部署 NAT Gateway 网关并关联子网

通过 NAT Gateway 可以实现子网中的实例的对外互联网出口 IP 都是 NAT Gateway 绑定的 EIP,子网中的实例对互联网不可见。NAT Gateway 典型使用场景:

  • 为了安全,生产环境通常将 EKS 工作节点、RDS 数据库缓存服务器(Redis) 放在私有子网中,这些资源不需要(也不应该)被互联网直接访问。
  • 应用需要调用外部服务(如支付网关、银行接口或第三方 API)时,对方的防火墙通常需要你提供一个白名单 IP。由于 EKS 节点是动态变化的,IP 并不固定。
  • 减少受攻击面,防止外部扫描。

以下为创建 NAT Gateway 并关联子网的相关步骤:

正确的整体架构
VPC
├── Public Subnet
│ ├── NAT Gateway(有 EIP)
│ └── Route Table (Public RT)
│ └── 0.0.0.0/0 → Internet Gateway

└── Private Subnet
├── EC2 / ECS / EKS Node
└── Route Table (Private RT)
└── 0.0.0.0/0 → NAT Gateway

关键点:

  • NAT Gateway 必须在公有子网
  • 私有子网的默认路由指向 NAT Gateway
  1. 确认 Public Subnet 存在

    VPC 默认的 Main Route Table 已经满足这个条件,其默认网关为 Internet Gateway

  2. 创建 NAT Gateway

    NAT gateways 标签页面中,点击 Create NAT gatewayConnectivity type 选择 PublicElastic IP (EIP) association 选择 手动分配 EIP(Manual)

    创建完成后,状态应为 Available 。在路由表(Route Tables)中,这时会多一个路由表,其 Edge associations(边缘关联) 关联到了刚刚创建的 NAT Gateway

  3. 创建一个新的子网(私有、Private Subnet)

    VPC → Subnets → Create subnet 标签页面中创建新的子网, 不要勾选 Auto-assign public IPv4 ,如此处于此子网中的实例,不会为其分配公网地址

  4. 创建 Private Route Table

    VPC → Route tables → Create route table 标签页面中创建新的路由表,本示例名为 private-rt

  5. 配置路由规则

    选择刚刚创建的新路由表 private-rt,在 Routes编辑路由(Edit Routes) ,添加一条路由规则:

    | Destination | Target          |
    | ----------- | --------------- |
    | 0.0.0.0/0 | NAT Gateway |

  6. 关联 Private Subnet

    选择刚刚创建的新路由表 private-rt,在 Subnet associations(子网关联)Edit subnet associations(编辑子网关联) ,选择目标子网进行关联

  7. 最终的 VPC 整体路由可以在 VPC 的 Resource map 中进行检查