概述
- VPC (Virtual Private cloud)虚拟私有云,是AWS提供的在网络层面对资源进行分组的技术,一个VPC可以看作是一个独立的虚拟网络,这个虚拟网络与客户在数据中心运营的传统网络及其相似,并会为客户提供使用AWS的可扩展基础设施的优势,默认情况下VPC与VPC之间不互通,是逻辑上的隔离。
- 默认每个region下可以创建5个VPC,也可以根据需要在每个区域开通100个VPC。在创建VPC的时候需要指定网络CIDR,范围:/16 - /28。
- 创建完VPC后,会默认创建一个main route table,其它子网都默认使用该main route table,也可以指定用户自定义的route table
- 一个VPC包含以下必要组件:
- 子网(Subnets)
- 路由表(Route tables)
- DHCP 选项集(Dynamic Host Configuration Protocol (DHCP) option sets)
- 安全组(Security Group)
- 网络ACL(Network Access Control List(ACLs))
- 并可以包含以下可选组件
- 互联网网关(Internet Gateways(IGW))
- 弹性IP(Elastic IP(EIP)address)
- 弹性网卡(Elastic Network Interfaces (ENIs))
- 终端节点(Endpoints)
- 对等连接(Peering)
- NAT网关(Network Address Translation (NATs)instances and NAT gateways)
那么下面我们对每个关键部件做下介绍。
- Subnet
- 一个VPC可以包含多个subnet,一个subnet对应于一个AZ(可用区)
- 子网CIDR确定后,前4个IP和最后1个IP不可用,AWS内部使用,例如:/28有16个IP,去掉5个后,还有11个供我们使用
- AZ是物理上的隔离,由于VPC可以跨多个AZ,因此VPC是逻辑上的划分
- VPC中的subnet永远是互通的,因为任何一个路由表都有包含一个本地路由,且不可删除
- 在创建subnet的时候可以指定默认是否为每个新的instance分配public IP
- Subnet有三种
- Public subnet,在路由表中有一个指向IGW的路由
- Private subnet,在路由表中没有指向IGW的路由
- v*n subnet,面向v*n连接,在路由表中有指向VPG的路由
- Route Tables
- 路由表,用于确定子网中路由的去向
- 一个子网只能且必须对应一个route table,一个route table可对应多个子网
- Internet gateways
- Internet 网关是一种横向扩展、支持冗余且高度可用的 VPC 组件,可实现 VPC 中的实例与 Internet 之间的通信。因此它不会对网络流量造成可用性风险或带宽限制
- Internet 网关有两个用途,一个是在 VPC 路由表中为 Internet 可路由流量提供目标,另一个是为已经分配了公有 IPv4 地址的实例执行网络地址转换 (NAT)
- 一个VPC只能有一个IGW,用于连接internet
- Dynamic Host Configuration Protocol Option Sets
- 指定如何为instance分配IP/Hostname等,默认AWS控制,也可以自定义DNS server
- 可以配置的选项有
- Domain name server
- Domain name
- NTP server
- NetBios name server
- NetBios node type
-
Elastic IP Address
- 弹性 IP 地址 是专门用于进行动态云计算的静态、公有 IPv4 地址。您可以将弹性 IP 地址与您账户中的任意 VPC 的任何实例或网络接口相关联。借助弹性 IP 地址,您可以迅速将地址重新映射到 VPC 中的另一个实例,从而屏蔽实例故障。注意,将弹性 IP 地址与网络接口关联,而不直接与实例关联的优势在于,只需一步,即可将网络接口的所有属性从一个实例移至另一个。
- 默认Public subnet下的instance会得到一个动态的public IP,如果重启instance,public会改变
- 可以为instance指定一个静态IP,重启instance不会改变
- 创建好EIP后就开始收费,不管是否关联到instance
- 一个region默认可创建5个EIP
- Elastic Network Instance(ENIs)
- 为一个instance创建多个网卡,实现业务和管理网络的分离,如dual-home instances
- Endpoints
- 连接VPC和AWS服务(如S3等)的连接点,好处是不用走v*n或AWS Direct Connect
- 创建好endpoint后需要在对应的route table中增加路由
- Peering
- VPC 对等连接是两个 VPC 之间的网络连接,您可通过此连接不公开地在这两个 VPC 之间路由流量。这两个 VPC 中的实例可以彼此通信,就像它们在同一网络中一样。您可以在自己的 VPC 之间、自己的 VPC 与另一个 AWS 账户中的 VPC 或与其他 AWS 区域中的 VPC 之间创建 VPC 对等连接。
- 默认情况下VPC与VPC是不能通信的,可以增加peering connection,这样不同的VPC就可以相互通信
- Peering没有传递性,例如,若VPC1和VPC2有对等连接,VPC2与VPC3有对等连接,那么VPC1和VPC3默认是没有的,需要手动增加对等连接
- 创建peering的时候需要在两边VPC的route table中都增加相应路由
- 只需创建一次peering申请,如VPC1申请与VPC2建立peering连接,连接创建后,不用VPC2再向VPC1申请peering,因为连接已经建好,是双向的
- 现在peering的VPC可以跨region
- 如果VPC1与VPC2的CIDR有包含或部分匹配关系,则不能创建peering
- AWS 使用 VPC 的现有基础设施来创建 VPC 对等连接;该连接既非网关也非 AWS Site-to-Site v*n 连接,且不依赖某个单独的物理硬件。没有单点通信故障也没有带宽瓶颈
- Security Group
- 安全组,通过创建rule来设置firewall,在instance层面控制网络访问
- 一个VPC支持500个SG,一个SG有50个inbound和50个outbound
- SG可以设置allow rule,但不能设置deny rule,这个与ACL不同
- 默认没有inbound rule,除非手动增加,默认outbound allow all
- SG是有状态的,言外之意,对于某个allow inbound,不用指定对应的outbound,会保留inbound的状态,再将响应返回
- 对于有多个rule的SG,在判断是否allow或deny时,AWS会评估所有的rule再做决定,没有优先级rule的说法
- 可以随时修改SG,即便关联到了某个instance,修改后立即生效,不用reboot-instance
- Network Access Contorl List(ACLs)
- 在子网层面控制网络访问,默认都allow
- 支持allow,也支持deny
- 没有状态,需要同时指定inbound和outbound
- 每个rule有优先级,通过优先级确定是allow还是deny
- 影响的是整个子网,不用单独指定到某个instance
- Network Address Translation(NAT) Instances and NAT Gateways
- 都是用于private子网中的instance与外界通讯的技术,可以访问外网,但外网无法穿透到instance
- NAT instance是AWS提供的AMI,部署后充当了proxy,需要将其部署在public subnet中并分配public IP,且disable source/destination check,然后再配置route table
- NAT Gateway,不用手动创建proxy instance,仅创建Gateway 服务,当然AWS内部可能也创建了instance,但这个对用户是透明的。需要将Gateway部署在public subnet中,再指定public IP,同时修改路由
- 推荐使用NAT Gateways,管理更简单
- Virtual Private Gateways(VPGs),Customer Gateways(CGWs)and Virtual Private Networks(v*ns)
- v*n连接,例如Lab与VPC通信
- VPG是在AWS端,CGWs是客户端的物理或软件v*n隧道
- 需要从CGW到VPG初始化v*n隧道
- VPG支持动态BGP路由,或静态路由
- v*n连接包含两个隧道以提高高可用
最后
以上就是跳跃草莓为你收集整理的AWS VPC 概述的全部内容,希望文章能够帮你解决AWS VPC 概述所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复