- VPC 概述
- VPC (Virtual Private cloud)虚拟私有云,是AWS提供的在网络层面对资源进行分组的技术,一个VPC可以看作是一个独立的集合,默认情况VPC与VPC之间不互通,是逻辑上的隔离。
- 默认一个region下可以创建5个VPC,在创建VPC的时候需要指定网络CIDR,范围:/16 - /28。
- 创建完VPC后,会默认创建一个main route table,其它子网都默认使用该main route table,也可以指定用户自定义的route table。
- 一个VPC包含以下组件:
- Subnets
- Route tables
- Dynamic Host Configuration Protocol (DHCP) option sets
- Security Group
- Network Access Control List(ACLs)
- 也可以包含以下可选组件
- Internet Gateways(IGW)
- Elastic IP(EIP)address
- Elastic Network Interfaces (ENIs)
- Endpoints
- Peering
- 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的路由
- VPN subnet,面向VPN连接,在路由表中有指向VPG的路由
- Route Tables
- 路由表,用于确定子网中路由的去向
- 一个子网只能且必须对应一个route table,一个route table可对应多个子网
- Internat gateways
- 一个VPC只能有一个IGW,用于连接internet
- 让instance连接到internet的步骤:新建subnet并关联一个新的route table,为route table添加一个指向IGW的rule,为instance分配public IP
- 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
- 默认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等)的连接点,好处是不用走VPN或AWS Direct Connect
- 创建好endpoint后需要在对应的route table中增加路由
- Peering
- 默认情况下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
- 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(VPNs)
- VPN连接,例如Lab与VPC通信
- VPG是在AWS端,CGWs是客户端的物理或软件VPN隧道
- 需要从CGW到VPG初始化VPN隧道
- VPG支持动态BGP路由,或静态路由
- VPN连接包含两个隧道以提高高可用
AWS VPC
最新推荐文章于 2024-08-06 15:09:51 发布