本文主要包含以下内容

  • 公有子网和私有子网的区别
  • 如何新建IGW,如何更改路由表
  • 如何创建NAT网关,如何更改路由表
  • 合理的网络拓扑
  • VPC Wizard

公有子网与私有子网

  • 子网:VPC是跨可用区的.在创建VPC后需要为每个可用区添加一个或多个子网,子网不可跨可用区。
  • 公有子网:子网的关联路由表包含指向Internet网关的路由的子网。
  • 私有子网:子网的关联路由表不包含指向Internet网关的路由的子网。
  • 仅限VPN的子网:特别的,一个子网没有通向Internet网关的路由,但其流量会被路由到虚拟专用网关以进行VPN连接,则这个子网就是仅限VPN的子网。

image-20180821103147315

如上图

  • Subnet1:有通向Internet网关的路由,因此它是公有子网
  • Subnet2:没有通向Internet网关的路由,因此它是私有子网
  • Subnet3:没有通向Internet网关的路由,但流量可达VPN,因此它是仅限VPN的子网

InternetGateways

使用Internet网关(InternetGateways,igw),可实现VPC中的实例与Internet之间的通信。

Internet网关有两个用途:

  1. 在VPC路由表中为Internet可路由流量提供目标
  2. 为已经分配了公有IPv4地址的实例执行网络地址转换(NAT)

当生成AWS账户的时候,AWS系统会默认的在每一个区域内都生成一个默认的VPC,并且这个默认的VPC已经绑定了一个Internet网关;一个Internet网关一次只能绑定一个VPC;当VPC中有EC2实例等AWS资源的时候,Internet网关是不能手动和相结合的VPC相分离的

路由表

每个子网都会和路由表相结合使用,并且只能使用一个路由表;VPC中的子网是共有子网还是私有子网是由该子网使用的路由表决定的

如果该路由表中有Internet网关路由条目,那么该子网就是共有子网;

路由表由一系列的路由规则组成,决定了子网的访问权限;默认情况下,同一个VPC之间的子网之间是可以相互通信的;当路由表和子网已经结合的情况下,该路由表是不能被删除的。

配置Internet网关

Internet网关在配置时需要具有对应的子网,在配置之前请确保您已经添加了所需的子网

  • 创建Internet网关并将其附加到VPC
    • 打开AmazonVPC控制台https://console.aws.amazon.com/vpc/
    • 在导航窗格中,选择Internet网关,然后选择创建Internet网关。 image-20180821114813780
    • (可选)为Internet网关命名,然后选择创建
    • 选择刚刚创建的Internet网关,然后选择操作,附加到VPC。 image-20180821114052114
    • 从列表中选择VPC,然后选择附加。

image-20180821114448728

  • 创建自定义路由表
    • 打开AmazonVPC控制台https://console.aws.amazon.com/vpc/
    • 在导航窗格中,选择RouteTables,然后选择CreateRouteTable。 image-20180821115416967
    • 在CreateRouteTable对话框中,可以选择命名您的路由表,选择您的VPC,然后选择Yes,Create。

image-20180821135611911

    • 选择您刚刚创建的自定义路由表。详细信息窗格中会显示选项卡,以供您使用其路径、关联和路线传播。
    • 在Routes选项卡中,依次选择Edit、Addanotherroute,然后根据需要添加以下路由。完成此操作后,选择Save。
      • 对于IPv4流量,在Destination(目的地)框中指定0.0.0.0/0,然后在Target(目标)列表中选择Internet网关ID。
      • 对于IPv6流量,在Destination(目的地)框中指定::/0,然后在Target(目标)列表中选择Internet网关ID。

image-20180821140205194

    • 在SubnetAssociations选项卡上,选择Edit,选中子网的Associate复选框,然后选择Save。

image-20180821140326210

NAT网关

使用网络地址转换(NAT)网关允许私有子网中的实例连接到Internet或其他AWS服务,但阻止Internet发起与这些实例的连接。在创建NAT网关时需要指定与该网关关联的弹性IP地址。创建NAT网关之后,必须更新与您的一个或多个私有子网关联的路由表,以将Internet绑定流量指向该NAT网关。这使您的私有子网中的实例可以与Internet通信。

配置NAT网关

image-20180821152642033

    • 指定要在其中创建NAT网关的子网,并选择要与该NAT网关关联的弹性IP地址的分配ID。完成后,选择CreateaNATGateway。

image-20180821160503177

    • NAT网关会显示在控制台中。片刻之后,其状态会更改为Available,此后它即准备好供您使用。

image-20180821160905824

  • 为NAT网关配置路由表
    • 打开AmazonVPC控制台https://console.aws.amazon.com/vpc/
    • 在导航窗格中,选择RouteTables。
    • 选择与私有子网关联的路由表,然后依次选择Routes、Edit。
    • 选择Addanotherroute。对于Destination,键入0.0.0.0/0。对于Target,选择NAT网关的ID。

image-20180821162613752

    • 在SubnetAssociations选项卡上,选择Edit,选中子网的Associate复选框,然后选择Save

image-20180821171757732

    • 选择Save。

为确保NAT网关可以访问Internet,与NAT网关所在子网关联的路由表必须包含使Internet流量指向Internet网关的路由。如果删除NAT网关,则NAT网关路由会保留为blackhole状态,直到您删除或更新这些路由。

合理的网络拓扑

image-20180821171757732

一个合理的网络拓扑应该包含有以下几部分:

  • Internet Gateway
  • Elastic Load Balancing

Elastic Load Balancing可以在多个目标(如AmazonEC2实例、容器和IP地址)之间自动分配传入的应用程序流量,实现负载均衡。它可以在单个可用区内处理不断变化的应用程序流量负载,也可以跨多个可用区处理此类负载。ElasticLoadBalancing提供三种负载均衡器,它们均能实现高可用性、自动扩展和可靠的安全性,因此能让您的应用程序获得容错能力。

Elastic Load Balancing:

    • 直接与InternetsGateway连接
    • 与AutoScalingGroup连接
  • 堡垒机/NAT网关

通常情况下,堡垒机(也称为“跳转机”)是在系统中访问私有主机的一个最佳实践。例如,您的系统可能包含一个不希望被公开访问的应用服务器,当需要在这台服务器上进行产品的更新或系统补丁程序的管理时,您通常会登录到堡垒机,然后从那里访问(即“跳转到”)应用服务器。

在本拓扑中,Web实例以及数据库实例位于私有子网中,无法被直接访问。因此,您需要通过堡垒机来访问并管理这些实例。

堡垒机:

    • 最好仅向特定的IP地址范围开放
    • 直接与InternetsGateway连接
    • 位与公有子网,通常情况下,AutoScaling会与ELB结合使用,之后实例在启动后会自动加入ELB的目标组,在终止实例前会先等待ELB连接耗尽。
    • 为了保证实例的安全与可用性,实例应分别位于多个可用区的私有子网中

数据库实例:

    • 为了保证您数据的安全,数据库实例不应能直接从外网访问,数据库实例应位于私有子网中。
    • 使用主从架构:

将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈

主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发

    • 为了保证可用性,主数据库与从数据库应位于不同的可用区中

VPC Wizard

VPC控制台中提供了四种VPC向导用于创建常用场景下的VPC的创建

image-20180822135511214

实例在 AWS 云的专用隔离部分中运行,该部分可直接访问 Internet。可使用网络访问控制列表和安全组对您实例的入站和出站网络流量提供严格控制。适用于运行单层、面向公众的Web应用程序(如博客或简单网站)的VPC。

除了包含公有子网之外,此配置还添加了一个私有子网,该子网的实例无法从 Internet 寻址。私有子网中的实例可以使用 Network Address Translation (NAT) 通过公有子网与 Internet 建立出站连接。适用于运行面向公众的Web应用程序的VPC,同时仍在第二个子网中保留非公开访问的后端服务器。

此配置在 Amazon VPC 和数据中心之间添加了 IPsec VPN 连接,可有效地将数据中心扩展到云中,同时为 Amazon VPC 中的公有子网实例提供面向 Internet 的直接访问。适用于将数据中心扩展到云中的VPC,并实现从VPC直接访问Internet。

实例在 AWS 云的专用隔离部分中运行,该部分带有一个私有子网,该子网的实例无法从 Internet 寻址。您可以通过 IPsec 虚拟专用网 (VPN) 隧道将此私有子网连接到您的企业数据中心。适用于将数据中心扩展到云中的VPC,无需将您的网络连接到Internet即可使用Amazon基础设备。