AWS VPC 详细解析

  • VPC 概述
  1. VPC (Virtual Private cloud)虚拟私有云,是AWS提供的在网络层面对资源进行分组的技术,一个VPC可以看作是一个独立的虚拟网络,这个虚拟网络与客户在数据中心运营的传统网络及其相似,并会为客户提供使用AWS的可扩展基础设施的优势,默认情况下VPC与VPC之间不互通,是逻辑上的隔离。
  2. 默认每个region下可以创建5个VPC,也可以根据需要在每个区域开通100个VPC。在创建VPC的时候需要指定网络CIDR,范围:/16 - /28。
  3. 创建完VPC后,会默认创建一个main route table,其它子网都默认使用该main route table,也可以指定用户自定义的route table

 

  1. 一个VPC包含以下必要组件:
  1. 子网(Subnets)
  2. 路由表(Route tables)
  3. DHCP 选项集(Dynamic Host Configuration Protocol (DHCP) option sets)
  4. 安全组(Security Group)
  5. 网络ACL(Network Access Control List(ACLs))

 

  1. 并可以包含以下可选组件
  1. 互联网网关(Internet Gateways(IGW))
  2. 弹性IP(Elastic IP(EIP)address)
  3. 弹性网卡(Elastic Network Interfaces (ENIs))
  4. 终端节点(Endpoints)
  5. 对等连接(Peering)
  6. NAT网关(Network Address Translation (NATs)instances and NAT gateways)

AWS VPC 详细解析_第1张图片

 

那么下面我们对每个关键部件做下介绍。

 

  • Subnet
  1. 一个VPC可以包含多个subnet,一个subnet对应于一个AZ(可用区)
  2. 子网CIDR确定后,前4个IP和最后1个IP不可用,AWS内部使用,例如:/28有16个IP,去掉5个后,还有11个供我们使用
  3. AZ是物理上的隔离,由于VPC可以跨多个AZ,因此VPC是逻辑上的划分
  4. VPC中的subnet永远是互通的,因为任何一个路由表都有包含一个本地路由,且不可删除
  5. 在创建subnet的时候可以指定默认是否为每个新的instance分配public IP
  6. Subnet有三种
  • Public subnet,在路由表中有一个指向IGW的路由
  • Private subnet,在路由表中没有指向IGW的路由
  • VPN subnet,面向VPN连接,在路由表中有指向VPG的路由

 

  • Route Tables
  1. 路由表,用于确定子网中路由的去向
  2. 一个子网只能且必须对应一个route table,一个route table可对应多个子网

 

 

  • Internet gateways
  1. Internet 网关是一种横向扩展、支持冗余且高度可用的 VPC 组件,可实现 VPC 中的实例与 Internet 之间的通信。因此它不会对网络流量造成可用性风险或带宽限制
  2. Internet 网关有两个用途,一个是在 VPC 路由表中为 Internet 可路由流量提供目标,另一个是为已经分配了公有 IPv4 地址的实例执行网络地址转换 (NAT)
  3. 一个VPC只能有一个IGW,用于连接internet

 

  • Dynamic Host Configuration Protocol Option Sets
  1. 指定如何为instance分配IP/Hostname等,默认AWS控制,也可以自定义DNS server
  2. 可以配置的选项有
  • Domain name server
  • Domain name
  • NTP server
  • NetBios name server
  • NetBios node type

 

 

  • Elastic IP Address
  1. 弹性 IP 地址 是专门用于进行动态云计算的静态、公有 IPv4 地址。您可以将弹性 IP 地址与您账户中的任意 VPC 的任何实例或网络接口相关联。借助弹性 IP 地址,您可以迅速将地址重新映射到 VPC 中的另一个实例,从而屏蔽实例故障。注意,将弹性 IP 地址与网络接口关联,而不直接与实例关联的优势在于,只需一步,即可将网络接口的所有属性从一个实例移至另一个。
  2. 默认Public subnet下的instance会得到一个动态的public IP,如果重启instance,public会改变
  3. 可以为instance指定一个静态IP,重启instance不会改变
  4. 创建好EIP后就开始收费,不管是否关联到instance
  5. 一个region默认可创建5个EIP

 

  • Elastic Network Instance(ENIs)
  1. 为一个instance创建多个网卡,实现业务和管理网络的分离,如dual-home instances

 

  • Endpoints
  1. 连接VPC和AWS服务(如S3等)的连接点,好处是不用走VPN或AWS Direct Connect
  2. 创建好endpoint后需要在对应的route table中增加路由

 

 

  • Peering
  1. VPC 对等连接是两个 VPC 之间的网络连接,您可通过此连接不公开地在这两个 VPC 之间路由流量。这两个 VPC 中的实例可以彼此通信,就像它们在同一网络中一样。您可以在自己的 VPC 之间、自己的 VPC 与另一个 AWS 账户中的 VPC 或与其他 AWS 区域中的 VPC 之间创建 VPC 对等连接。
  2. 默认情况下VPC与VPC是不能通信的,可以增加peering connection,这样不同的VPC就可以相互通信
  3. Peering没有传递性,例如,若VPC1和VPC2有对等连接,VPC2与VPC3有对等连接,那么VPC1和VPC3默认是没有的,需要手动增加对等连接
  4. 创建peering的时候需要在两边VPC的route table中都增加相应路由
  5. 只需创建一次peering申请,如VPC1申请与VPC2建立peering连接,连接创建后,不用VPC2再向VPC1申请peering,因为连接已经建好,是双向的
  6. 现在peering的VPC可以跨region
  7. 如果VPC1与VPC2的CIDR有包含或部分匹配关系,则不能创建peering
  8. AWS 使用 VPC 的现有基础设施来创建 VPC 对等连接;该连接既非网关也非 AWS Site-to-Site VPN 连接,且不依赖某个单独的物理硬件。没有单点通信故障也没有带宽瓶颈

 

 

  • Security Group
  1. 安全组,通过创建rule来设置firewall,在instance层面控制网络访问
  2. 一个VPC支持500个SG,一个SG有50个inbound和50个outbound
  3. SG可以设置allow rule,但不能设置deny rule,这个与ACL不同
  4. 默认没有inbound rule,除非手动增加,默认outbound allow all
  5. SG是有状态的,言外之意,对于某个allow inbound,不用指定对应的outbound,会保留inbound的状态,再将响应返回
  6. 对于有多个rule的SG,在判断是否allow或deny时,AWS会评估所有的rule再做决定,没有优先级rule的说法
  7. 可以随时修改SG,即便关联到了某个instance,修改后立即生效,不用reboot-instance

 

  • Network Access Contorl List(ACLs)
  1. 在子网层面控制网络访问,默认都allow
  2. 支持allow,也支持deny
  3. 没有状态,需要同时指定inbound和outbound
  4. 每个rule有优先级,通过优先级确定是allow还是deny
  5. 影响的是整个子网,不用单独指定到某个instance

 

  • Network Address Translation(NAT) Instances and NAT Gateways
  1. 都是用于private子网中的instance与外界通讯的技术,可以访问外网,但外网无法穿透到instance
  2. NAT instance是AWS提供的AMI,部署后充当了proxy,需要将其部署在public subnet中并分配public IP,且disable source/destination check,然后再配置route table
  3. NAT Gateway,不用手动创建proxy instance,仅创建Gateway 服务,当然AWS内部可能也创建了instance,但这个对用户是透明的。需要将Gateway部署在public subnet中,再指定public IP,同时修改路由
  4. 推荐使用NAT Gateways,管理更简单

 

  • Virtual Private Gateways(VPGs),Customer Gateways(CGWs)and Virtual Private Networks(VPNs)
  1. VPN连接,例如Lab与VPC通信
  2. VPG是在AWS端,CGWs是客户端的物理或软件VPN隧道
  3. 需要从CGW到VPG初始化VPN隧道
  4. VPG支持动态BGP路由,或静态路由
  5. VPN连接包含两个隧道以提高高可用

 

你可能感兴趣的:(AWS)