想象一下使用AWS服务的数百万客户。另外,想象一下这些客户已经创建了数百万个资源,比如Amazon EC2实例。如果所有这些资源没有边界,网络流量将能够在它们之间不受限制地流动。
Amazon Virtual Private Cloud (Amazon VPC)是一种网络服务,可以用来在AWS资源周围建立边界。
通过“Amazon VPC”,可以实现AWS云的隔离发放。在这个隔离的部分中,您可以启动您定义的虚拟网络中的资源。在VPC中,您可以将VPC中的资源划分为不同的子网。子网是VPC的一部分,可以包含Amazon EC2实例等资源。
当internet上的公网流量需要访问您的VPC时,您需要为VPC绑定internet网关。
internet网关是VPC与internet之间的网关。你可以把互联网网关想象成类似于顾客用来进入咖啡店的门口。在没有internet网关的情况下,用户不能访问VPC内的资源。
当您需要访问VPC中的私有资源时,可以使用虚拟私有网关。
下面是虚拟专用网关工作原理的一个例子。
你可以把互联网想象成你家和咖啡店之间的路。假设你在这条路上,有一个保镖保护你。您仍然使用与其他客户相同的道路,但有一个额外的保护层。
保镖就像一个虚拟专用网络(VPN)连接,它加密(或保护)您的互联网流量不受周围所有其他请求的影响。
虚拟私有网关是允许受保护的internet流量进入VPC的组件。即使你和咖啡店的连接有额外的保护,交通堵塞也是可能的,因为你和其他顾客使用同一条路。
虚拟私有网关用于在VPC和私有网络(如本地数据中心、企业内部网络)之间建立VPN连接。虚拟私有网关只允许来自审批通过的网络的流量进入VPC。
AWS Direct Connect是一项服务,用于在自己的数据中心和VPC之间建立专用的私有连接。
假设有一幢公寓楼,有一条走廊直接连接到咖啡馆。只有公寓大楼的居民才能通过这条走廊。
此私人走廊提供与AWS直接连接相同类型的专用连接。居民不需要与其他顾客共用公共道路就可以进入咖啡店。
AWS Direct Connect提供的私有连接可以帮助您降低网络成本,并增加可以通过网络传输的带宽量。
要了解子网在VPC中的作用,请参考咖啡店中的示例。
首先,顾客把他们的订单交给收银员。然后收银员把菜单传给咖啡师。这个过程使线路在更多顾客进来时保持平稳运行。
假设一些顾客试图跳过收银台,直接把他们的订单给咖啡师。这扰乱了流量,导致顾客进入咖啡店的一部分,这是限制他们。
为了解决这个问题,咖啡店的老板通过将收银员和咖啡师放在不同的工作站来划分柜台区域。收银台面向公众,设计用于接待顾客。咖啡师的区域是私密的。咖啡师仍然可以接受收银员的订单,但不能直接接受顾客的订单。
这类似于如何使用AWS网络服务来隔离资源并准确确定网络流量如何流动。
在咖啡店中,您可以将柜台区域看作VPC。柜台区分为两个独立的区域,分别是收银员工作站和咖啡师工作站。在VPC中,子网是一个独立的区域,用于将不同的资源组合在一起。
子网是VPC的一部分,可以根据安全需要或操作需要对VPC中的资源进行分组。子网分为公有子网和私有子网。
在VPC中,子网之间可以互通。例如,您可能有一个应用程序,它涉及公共子网中的Amazon EC2实例,与位于私有子网中的数据库通信。
当客户从AWS Cloud中托管的应用程序请求数据时,该请求将作为数据包发送。数据包是通过因特网或网络发送的数据单位。
通过internet网关进入VPC。在报文进入或退出子网之前,它会检查是否有权限。这些权限指示谁发送了数据包,以及数据包如何试图与子网中的资源通信。
VPC中的ACL (network access control list)组件用于检查子网的报文权限。
ACL (network access control list)是一种虚拟防火墙,在子网级别控制流量的进出。
例如,走出咖啡店,想象你在机场。在机场,旅客正试图进入一个不同的国家。您可以将旅行者看作信息包,而将护照控制官员看作网络ACL。当旅客进出该国时,护照检查人员要检查他们的证件。如果旅客在批准的名单上,他们就可以通过。然而,如果他们不在批准的名单上或明确在禁止入境的名单上,他们就不能入境。
个AWS帐户都有一个默认的网络ACL。在配置VPC时,可以使用帐号默认的网络ACL,也可以自定义创建网络ACL。
默认情况下,您的帐户的默认网络ACL允许所有入站和出站流量,但您可以通过添加自己的规则来修改它。对于自定义网络acl,所有入站和出站流量都会被拒绝,直到您添加规则来指定允许哪些流量为止。此外,所有的网络acl都有一个显式的拒绝规则。该规则确保如果报文没有匹配列表中的任何其他规则,该报文将被拒绝。
网络ACLs是一种无状态的包过滤。它们什么都不记得,并检查各个方向跨越子网边界的包:入站和出站。
回想一下前面的例子,一个旅行者想要进入一个不同的国家。这类似于从Amazon EC2实例向internet发送请求。
当对该请求的包响应返回到子网时,网络ACL不记得您之前的请求。网络ACL根据它的规则列表检查数据包的响应,以决定是允许还是拒绝。
包进入子网后,必须对子网内的资源(如Amazon EC2实例)评估其权限。
为Amazon EC2实例检查报文权限的VPC组件称为安全组。
安全组是一个虚拟防火墙,用于控制Amazon EC2实例的入站和出站流量。
缺省情况下,安全组拒绝所有入方向的流量,允许所有出方向的流量。您可以添加自定义规则来配置允许或拒绝哪些流量。
对于本例,假设您在一栋公寓楼中,有一个在大厅迎接客人的门卫。您可以把客人看作小包,把门房看作一个安全组。当客人到达时,门服务员检查名单以确保他们能进入大楼。然而,当客人离开大楼时,门服务员不会再检查名单。
如果在一个子网中有多个Amazon EC2实例,可以将它们与相同的安全组关联起来,或者为每个实例使用不同的安全组。
安全组执行有状态包过滤。它们记住以前为传入数据包所做的决定。
考虑从Amazon EC2实例向internet发送请求的相同示例。
当对该请求的包响应返回到实例时,安全组将记住您之前的请求。无论入站安全组规则如何,安全组都允许响应继续进行。
通过使用网络acl和安全组,可以对VPC中的流量设置自定义规则。随着您继续学习有关AWS安全和组网的更多信息,请确保理解网络acl和安全组之间的区别。
假设AnyCompany在AWS云上托管了一个网站。客户在浏览器中输入网址,就可以访问该网站。这是因为域名系统(DNS)的解析。DNS解析涉及客户DNS解析器与公司DNS服务器之间的通信。
你可以把DNS看作是互联网上的电话簿。DNS解析是将域名转换为IP地址的过程。
例如,假设您想访问AnyCompany的网站:
Amazon Route 53是一个DNS web服务。它为开发者和企业提供了一种可靠的方式,将终端用户路由到托管在AWS中的互联网应用程序。
Amazon Route 53将用户请求连接到运行在AWS中的基础设施(比如Amazon EC2实例和负载均衡器)。它可以将用户路由到AWS之外的基础设施。
Route 53的另一个特性是能够管理域名的DNS记录。你可以直接在Route 53中注册新的域名。您也可以为其他域名注册商管理的已有域名传递DNS记录。这使您能够在一个位置管理您的所有域名。
在上一个模块中,您了解了内容交付服务Amazon CloudFront。下面的例子描述了Route 53和Amazon CloudFront如何一起向客户交付内容。
例如:Amazon Route 53和Amazon CloudFront如何提供内容
假设AnyCompany的应用程序运行在几个Amazon EC2实例上。这些实例位于附加到应用程序负载均衡器的自动伸缩组中。