2020年/02月/13日
VPC笔记
Amazon VPC 允许您在 Amazon Web Services (AWS) 云中预置出一个逻辑隔离的部分,让您在自己定义的虚拟网络中启动 AWS 资源。您可以完全掌控您的虚拟网络环境,包括选择自己的 IP 地址范围、创建子网以及配置路由表和网络网关。您也可以在公司数据中心和 VPC 之间创建硬件虚拟专用网络 (VPN) 连接,将 AWS 云用作公司数据中心的扩展。
我们可以为可访问 Internet 的 Web 服务器创建公有子网,而将数据库或应用程序服务器等后端系统放在不能访问 Internet 的私有子网中。您可以利用安全组和网络访问控制列表等多种安全层,帮助对各个子网中 Amazon EC2 实例的访问进行控制。
一个VPC可以跨越多个可用区(Availability Zones),但是子网必须位于单个可用区中。可以在一个 VPC 中运行任意数量的 Amazon EC2 实例,只要设置的 VPC 大小足以为每个实例分配一个 IP 地址。初始状态下,限制一次最多启动 20 个 Amazon EC2 实例,并且 VPC 的大小上限为 /16(65 536 个 IP)
模块
组成部分
Virtual Private Cloud:AWS 云中逻辑隔离的虚拟网络。从所选范围内定义 VPC 的 IP 地址空间。
子网:VPC 的 IP 地址范围内的一个区段,其中可放置隔离的资源组。
互联网网关:公有 Internet 连接的 Amazon VPC 端。
NAT 网关:一款高度可用的托管网络地址转换 (NAT) 服务,便于私有子网中的资源访问互联网。
虚拟私有网关:VPN 连接的 Amazon VPC 端。
对等连接:对等连接使您可以通过私有 IP 地址在两个对等 VPC 之间路由流量。
VPC 终端节点:支持建立从您的 VPC 到 AWS 中托管的服务的私有连接,无需使用互联网网关、VPN、网络地址转换 (NAT) 设备或防火墙代理。
仅传出互联网网关:有状态网关,仅提供从 VPC 到 Internet 的 IPv6 流量传出访问权限。
四个选项
仅带有一个公有子网的 Amazon VPC
带有公有和私有子网的 Amazon VPC
带有公有和私有子网以及提供 AWS 站点到站点 VPN 访问的 Amazon VPC
仅带有一个私有子网以及提供 AWS 站点到站点 VPN 访问的 Amazon VPC
典型架构图
默认VPC
默认 VPC 是 AWS 云中的逻辑独立虚拟网络,在您初次配置 Amazon EC2 资源时,会为您的 AWS 账户自动创建。当您启动实例而未指定子网 ID 时,实例便会在默认 VPC 中启动。AWS 会为您自动创建默认 VPC,并在 AWS 区域中的每个可用区中创建默认子网。您的默认 VPC 将会连接到互联网网关,您的实例会自动接收公有 IP 地址.
默认 VPC 会连接到 Internet,并且所有在默认 VPC 的默认子网中启动的实例都会自动接收公有 IP 地址。非默认 VPC 中启动实例,必须在实例启动期间指定子网 ID
额度限制
每个区域每个 AWS 账户 5 个 Amazon VPC
每个 Amazon VPC 200 个子网
每个区域每个 AWS 账户 5 个 Amazon VPC 弹性 IP 地址
每个 Amazon VPC 1 个互联网网关
终端节点类型
网关类终端节点
接口类终端节点
网关类终端节点仅适用于包括 S3 和 DynamoDB 在内的 AWS 产品。这些终端节点将向您选择的路由表添加一个条目,并通过 Amazon 私有网络将流量路由到支持的服务。
接口类终端节点可建立指向 PrivateLink 支持的服务(如 AWS 产品、您自己的服务或 SaaS 解决方案)的私有连接,并支持通过 Direct Connect 建立连接
连接
互联网(通过互联网网关)
使用 AWS 站点到站点 VPN 连接的公司数据中心(通过虚拟私有网关)
互联网和公司数据中心(同时利用互联网网关和虚拟私有网关)
其他 AWS 服务(通过互联网网关、NAT、虚拟私有网关或 VPC 终端节点)
其他 Amazon VPC(通过 VPC 对等连接)
互联网网关可以让 VPC 中的 Amazon EC2 实例能够直接连接 Internet。
VPC中的实例可以通过公网IP或者弹性IP与Internet通信
没有公网IP的实例连接Internet的两种方式
通过 NAT 网关或 NAT 实例来传输流量,只出不进
通过硬件 VPN 或 Direct Connect 进行连接的 VPC,实例可以将其 Internet 流量通过虚拟私有网关下传到现有的数据中心
可以通过三方VPN软件连接VPC
不同Region内的实例通过公网通信,流量经过互联网,除非VPC之间建立对等连接,同个Region内的实例通信不经过互联网
AWS 站点到站点 VPN 连接将 VPC 与数据中心连接。Amazon 支持互联网协议安全 (IPsec) VPN 连接。在 VPC 与数据中心之间传输的数据通过加密的 VPN 连接路由,以保护动态数据的机密性和完整性。建立 AWS 站点到站点 VPN 连接不需要使用互联网网关。
网络接口只能连接到位于相同可用区中的实例。
网络接口只能连接到该接口所在 VPC 中的实例
应当为实例分配额外的私有 IP 地址,然后根据需要将 EIP 与这些私有 IP 关联。
可以连接和断开 EC2 实例上的次要接口 (eth1-ethn),但不能断开 eth0 端口。
对等连接结构图
路由表
路由表 中包含一组被称为路由的规则,用于确定来自您的子网或网关的网络流量的导向何处。主路由表 — 随 VPC 自动生成的路由表。它控制未与任何其他路由表显式关联的所有子网的路由。一个子网一次只能与一个路由表关联,但您可以将多个子网与同一子网路由表关联
例子
0.0.0.0/0 igw-12345678901234567
路由的目的地为 0.0.0.0/0,表示所有 IPv4 地址。目标是连接到您的 VPC 的互联网网关。
IP
VPC中的IP范围可以使用主 CIDR 块的任意 IPv4 地址范围,其中包括 RFC 1918 或公有可路由 IP 范围,对于辅助 CIDR 块,则存在一些限制。对于公有可路由 IP 数据块,只能通过虚拟私有网关进行访问,无法通过互联网网关从 Internet 访问,WS 并不向 Internet 公告客户自有的 IP 地址数据块。通过调用相关 API 或通过 AWS 管理控制台,您可以向 VPC 分配 Amazon 提供的 IPv6 CIDR 块。
默认 VPC 分配有 172.31.0.0/16 的 CIDR 范围。每个默认 VPC 中的默认子网分配有 VPC CIDR 范围内的 /20 个网块。
Amazon VPC 支持五 (5) 个 IP 地址范围,一 (1) 个主和四 (4) 个辅助 IPv4 IP 地址范围。每一个范围的大小都介于 /28(CIDR 表示法)和 /16 之间。VPC 的 IP 地址范围不能与现有网络的 IP 地址范围重叠。
对于 IPv6,VPC 使用 /56 的固定大小(CIDR 表示法)。VPC 可以同时有 IPv4 和 IPv6 CIDR 块与其关联。
每个 VPC 可以创建 200 个子网
对于 IPv4,子网的大小下限为 /28(或 14 个 IP 地址)。子网的大小不能超过在其中创建它们的 VPC。
对于 IPv6,子网大小固定为 /64。仅可将一个 IPv6 CIDR 块分配给一个子网。
可以将一个或多个辅助私有 IP 地址分配给 Amazon VPC 中的弹性网络接口或 EC2 实例
EIP 地址只应该在被配置为将流量直接路由到互联网网关的子网中的实例上使用。EIP 无法用于配置为使用 NAT 网关或 NAT 实例访问 Internet 的子网中的实例。这仅适用于 IPv4。目前,Amazon VPC 不支持用于 IPv6 的 EIP
EC2 实例上可以连接的网络接口总数取决于实例类型。有关不同类型的实例允许的网络接口数量的更多信息,请参阅《EC2 用户指南》
安全组和ACL
VPC 中的安全组指定允许传入或传出 Amazon EC2 实例的流量。网络 ACL 则在子网级别上运作,评估进出某个子网的流量。网络 ACL 可通过设置允许和拒绝规则来进行使用。Network ACL 不能筛选同一子网中实例之间的流量。此外,网络 ACL 执行无状态筛选,而安全组则执行有状态筛选。
有状态筛选可跟踪请求的来源,并可自动允许将请求的回复返回到来源计算机。例如,允许入站流量进入 Web 服务器上的 TCP 端口 80 的有状态筛选器将允许返回流量(通常为编号较高的端口,如目标 TCP 端口 63、912)通过客户端与 Web 服务器之间的有状态筛选器。筛选设备维护一个状态表,跟踪来源和目标端口编号与 IP 地址。筛选设备上仅需要一条规则:允许流量进入 Web 服务器的 TCP 端口 80。
无状态筛选则相反,仅检查来源或目标 IP 地址和目标端口,而忽略流量是新请求还是对请求的回复。上例中的筛选设备上需要实施两条规则:一条规则用于允许流量在 TCP 端口 80 上传入 Web 服务器,另一条规则用于允许流量传出 Web 服务器(TCP 端口范围 49、152 到 65、535)。
和S3通信
PC 中的资源可通过多种方式与 Amazon S3 通信。您可以使用 S3 的 VPC 端点,它可确保将所有流量都保持在 Amazon 的网络中,并使您能够将其他访问策略应用于 Amazon S3 流量。 您可以使用互联网网关从 VPC 对 Internet 进行访问,并且 VPC 中的实例可以与 Amazon S3 进行通信。您也可以让流向 Amazon S3 的所有流量遍历 Direct Connect 或 VPN 连接,再从数据中心流出,然后重新进入公共 AWS 网络。