AWS VPC

  1. VPC 概述
    1. VPC (Virtual Private cloud)虚拟私有云,是AWS提供的在网络层面对资源进行分组的技术,一个VPC可以看作是一个独立的集合,默认情况VPC与VPC之间不互通,是逻辑上的隔离。
    2. 默认一个region下可以创建5个VPC,在创建VPC的时候需要指定网络CIDR,范围:/16 - /28。
    3. 创建完VPC后,会默认创建一个main route table,其它子网都默认使用该main route table,也可以指定用户自定义的route table。
    4. 一个VPC包含以下组件:
      1. Subnets
      2. Route tables
      3. Dynamic Host Configuration Protocol (DHCP) option sets
      4. Security Group
      5. Network Access Control List(ACLs)
    5. 也可以包含以下可选组件
      1. Internet Gateways(IGW)
      2. Elastic IP(EIP)address
      3. Elastic Network Interfaces (ENIs)
      4. Endpoints
      5.  Peering
      6. Network Address Translation (NATs)instances and NAT gateways
  2. 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有三种
      1. Public subnet,在路由表中有一个指向IGW的路由
      2. Private subnet,在路由表中没有指向IGW的路由
      3. VPN subnet,面向VPN连接,在路由表中有指向VPG的路由
  3. Route Tables
    1. 路由表,用于确定子网中路由的去向
    2. 一个子网只能且必须对应一个route table,一个route table可对应多个子网
  4. Internat gateways
    1. 一个VPC只能有一个IGW,用于连接internet
    2. 让instance连接到internet的步骤:新建subnet并关联一个新的route table,为route table添加一个指向IGW的rule,为instance分配public IP
  5. Dynamic Host Configuration Protocol Option Sets
    1. 指定如何为instance分配IP/Hostname等,默认AWS控制,也可以自定义DNS server
    2.  可以配置的选项有
      1. Domain name server
      2. Domain name
      3. NTP server
      4. NetBios name server
      5. NetBios node type
  6. Elastic IP Address
    1. 默认Public subnet下的instance会得到一个动态的public IP,如果重启instance,public会改变
    2. 可以为instance指定一个静态IP,重启instance不会改变
    3. 创建好EIP后就开始收费,不管是否关联到instance
    4. 一个region默认可创建5个EIP
  7. Elastic Network Instance(ENIs)
    1. 为一个instance创建多个网卡,实现业务和管理网络的分离,如dual-home instances
  8. Endpoints
    1. 连接VPC和AWS服务(如S3等)的连接点,好处是不用走VPN或AWS Direct Connect
    2. 创建好endpoint后需要在对应的route table中增加路由
  9. Peering
    1.  默认情况下VPC与VPC是不能通信的,可以增加peering connection,这样不同的VPC就可以相互通信
    2. Peering没有传递性,例如,若VPC1和VPC2有对等连接,VPC2与VPC3有对等连接,那么VPC1和VPC3默认是没有的,需要手动增加对等连接
    3. 创建peering的时候需要在两边VPC的route table中都增加相应路由
    4. 只需创建一次peering申请,如VPC1申请与VPC2建立peering连接,连接创建后,不用VPC2再向VPC1申请peering,因为连接已经建好,是双向的
    5. 现在peering的VPC可以跨region
    6. 如果VPC1与VPC2的CIDR有包含或部分匹配关系,则不能创建peering
  10. 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
  11. Network Access Contorl List(ACLs)
    1. 在子网层面控制网络访问,默认都allow
    2. 支持allow,也支持deny
    3. 没有状态,需要同时指定inbound和outbound
    4. 每个rule有优先级,通过优先级确定是allow还是deny
    5.  影响的是整个子网,不用单独指定到某个instance
  12. 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,管理更简单
  13. 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连接包含两个隧道以提高高可用

猜你喜欢

转载自blog.csdn.net/funnyrand/article/details/89311170
AWS