联网

与 AWS 的连接

Amazon Virtual Private Cloud (Amazon VPC)

有数百万家在客户使用 AWS 服务。这些客户创建了数百万的资源,例如 Amazon EC2 实例。如果所有这些资源周围都没有边界,那么网络流量就能够不受限制地在这些资源之间流动。

您可以使用一项联网服务在 AWS 资源周围建立边界,这项服务就是 Amazon Virtual Private Cloud (Amazon VPC)

借助 Amazon VPC,您可以在 AWS 云中预置出隔离的部分。在这个隔离的部分中,您可以在自己定义的虚拟网络中启动各种资源。在 Virtual Private Cloud (VPC) 中,您可以将资源组织到子网中。子网是 VPC 的一部分,可以包含 Amazon EC2 实例等资源。

互联网网关

要允许来自互联网的公共流量访问您的 VPC,您需要将互联网网关连接到 VPC。

image-20230817173935312

互联网网关是 VPC 和互联网之间的连接。您可以将互联网网关看成顾客用于进入咖啡店的大门。没有互联网网关,任何人都无法访问您的 VPC 中的资源。

如果您的 VPC 仅包含私有资源,该怎么办?

虚拟私有网关

要访问 VPC 中的私有资源,您可以使用虚拟私有网关

下面的示例说明了虚拟私有网关的工作原理。您可以把互联网看成从家里通往咖啡店的道路。假设您在这条路上行走时带了保镖来保护自己。您仍然走在其他顾客行走的路上,但是多了一层保护。

保镖就像虚拟私有网络 (VPN) 连接,对您的互联网流量进行加密(或保护),使其免受周围所有其他请求的影响。

虚拟私有网关这种组件可以允许受保护的互联网流量进入 VPC。即使您在前往咖啡店的路上多了一层保护,您还是可能会遇到交通堵塞,因为您走的路上还有其他顾客。

image-20230817173941310

借助虚拟私有网关,您可以在 VPC 和私有网络(例如本地数据中心或企业内部网络)之间建立虚拟私有网络 (VPN) 连接。只有当流量来自经过批准的网络时,虚拟私有网关才会允许流量进入 VPC。

AWS Direct Connect

AWS Direct Connect 这项服务让您能够在数据中心和 VPC 之间建立专用私有连接。

假设有一栋公寓大楼,它的走廊直接将大楼与咖啡店相连。只有公寓大楼里面的住户才能穿过这个走廊。

这个私人走廊提供的专用连接与 AWS Direct Connect 提供的专用连接性质相同。住户无需走过与其他顾客共享的公共道路就能进入咖啡店。

image-20230817173948770

AWS Direct Connect 提供的私有连接可以帮助您降低网络成本,同时增加通过网络传输的带宽。

子网和网络访问控制列表

要详细了解 VPC 中子网的角色,请查看以下咖啡店示例。

首先,顾客向收银员下单。然后,收银员将订单交给咖啡师。当更多的顾客到店时,这个流程可以确保生产线顺利进行。

假设有些顾客试图跳过收银员,直接向咖啡师下单。这会扰乱人群的流动,让顾客在咖啡店中挤占各种位置。

image-20230817173954343

为了解决这个问题,咖啡店店主划分了柜台区域,让收银员和咖啡师在不同的工作区工作。收银员的工作区面向公众,专门接待顾客。咖啡师的区域则属于私人区域。咖啡师仍然可以接收来自收银员的订单,但不能直接从顾客那里接收订单。

image-20230817173959017

与此类似,您可以使用 AWS 联网服务来隔离资源并设定网络流量的流向。

对于咖啡店,您可以将柜台区域看成 VPC。柜台区域分为两个独立的区域,即收银员的工作区和咖啡师的工作区。在 VPC 中,子网是一个用于将资源归为一组的独立区域。

子网

子网是 VPC 的一部分,您可以在其中根据安全性或操作需求对资源进行分组。子网可以是公有子网,也可以是私有子网。

公有子网包含需要能够公开访问的资源,例如在线商店的网站。

私有子网包含只能通过私有网络访问的资源,例如包含客户个人信息和订单历史记录的数据库。

在 VPC 中,子网可以相互通信。例如,对于您的应用程序,公有子网中的 Amazon EC2 实例可以与私有子网中的数据库进行通信。

image-20230817174005310

VPC 中的网络流量

当客户向 AWS 云中托管的应用程序请求数据时,该请求会作为数据包发送。数据包是通过互联网或网络发送的一个数据单元。

它通过互联网网关进入 VPC。数据包进入子网或离开子网之前,需要检查权限。这些权限可以表明数据包的发送者,以及数据包与子网中的资源进行通信的方式。

检查子网数据包权限的 VPC 组件是网络访问控制列表 (ACL)

网络访问控制列表 (ACL)

网络访问控制列表 (ACL) 是一种虚拟防火墙,用于在子网级别控制入站和出站流量。

例如,您身处一个机场之中。机场中的旅客要进入其他国家/地区。您可以将旅客看成数据包,将护照检查站官员看成网络 ACL。护照检查站官员在旅客出入境时会检查他们的证件。如果旅客在批准名单上,他们就可以通行。但是,如果他们不在批准名单上或被明确列入禁飞旅客名单,他们就不能入境。

image-20230817174011384

每个 AWS 账户都包含一个默认网络 ACL。配置 VPC 时,您可以使用账户的默认网络 ACL,也可以创建自定义网络 ACL。

默认情况下,您账户的默认网络 ACL 会允许所有入站和出站流量,但您可以通过添加自己的规则对其进行修改。自定义网络 ACL 会拒绝所有入站和出站流量,除非您添加规则,指定允许哪些流量。此外,所有网络 ACL 都有一条显式拒绝规则。该规则可以确保拒绝不符合列表中的任何其他规则的数据包。

无状态数据包筛选

网络 ACL 会执行无状态数据包筛选。它们什么都不会记住,并会检查通过入站和出站两种方式跨越子网边界的数据包。

回想一下前面的示例,旅客想要进入其他国家/地区。这类似于从 Amazon EC2 实例向互联网发送请求。

当该请求的数据包响应返回子网时,网络 ACL 不会记得之前的请求。网络 ACL 会对照规则列表检查数据包响应,以确定是允许还是拒绝。

image-20230817174019636

数据包进入子网后,系统必须评估其对子网内的资源(例如 Amazon EC2 实例)拥有的权限。

检查数据包的 Amazon EC2 实例权限的 VPC 组件是安全组

安全组

安全组是一种虚拟防火墙,用于控制 Amazon EC2 实例的入站和出站流量。

image-20230817174024606

默认情况下,安全组会拒绝所有入站流量并允许所有出站流量。您可以添加自定义规则来配置允许或拒绝哪些流量。

在本示例中,假设您所在的公寓大楼里有一名门卫,在大堂迎接客人。您可以将客人看成数据包,将门卫看成安全组。当客人到达时,门卫会查看名单,以确保他们可以进入大楼。但是,当客人离开大楼时,门卫不会重新查看名单。

如果您的一个子网中有多个 Amazon EC2 实例,您可以将它们与同一安全组关联,也可以为每个实例使用不同的安全组。

有状态数据包筛选

安全组会执行有状态数据包筛选。它们可以记住之前对传入数据包的处理方式。

还是以将请求从 Amazon EC2 实例发送到互联网为例。

当该请求的数据包响应返回实例时,安全组会记得之前的请求。安全组会允许响应进入,而不考虑入站安全组规则。

image-20230817174030116

通过网络 ACL 和安全组,您可以为 VPC 中的流量配置自定义规则。在继续了解有关 AWS 安全性和联网的更多信息时,请务必理解网络 ACL 与安全组之间的区别。

image-20230817174035389

全球联网

域名系统 (DNS)

假设 AnyCompany 在 AWS 云中托管了一个网站。客户在浏览器中输入网址就能够访问这个网站。这是域名系统 (DNS) 解析的结果。DNS 解析需要使用与 Web 服务器通信的 DNS 服务器。

什么是 DNS?我们可以把 DNS 看成一种翻译服务,但它翻译的不是不同的语言,而是将网站名称翻译成计算机可以读取的 IP 地址,也就是互联网协议地址。

您可以将 DNS 看成互联网的电话簿。DNS 解析是将域名转换为 IP 地址的过程。

image-20230817174041254

例如,假设您想要访问 AnyCompany 的网站。

  1. 当您在浏览器中输入域名时,该请求会被发送到 DNS 服务器。

  1. DNS 服务器要求 Web 服务器提供与 AnyCompany 的网站对应的 IP 地址。

  1. Web 服务器给出响应,提供网站的 IP 地址,即 192.0.2.0。

Amazon Route 53

Amazon Route 53 是一项 DNS Web 服务。它为开发人员和企业提供了一种可靠的方式,可以将最终用户路由到 AWS 中托管的互联网应用程序。

Amazon Route 53 可以将用户请求连接到在 AWS 中运行的基础设施(例如 Amazon EC2 实例和负载均衡器)。它可以将用户路由到 AWS 以外的基础设施。

Route 53 的另一项功能是管理域名的 DNS 记录。您可以直接在 Route 53 中注册新域名。您也将在其他域名注册机构管理的现有域名的 DNS 记录转移到 Route 53 中。这让您能够在一个位置管理所有域名。

在上一个模块中,您了解了 Amazon CloudFront 这种内容分发服务。以下示例说明了 Route 53 和 Amazon CloudFront 如何将内容协同分发给客户。

示例:Amazon Route 53 和 Amazon CloudFront 如何分发内容

image-20230817174048575

假设 AnyCompany 的应用程序在多个 Amazon EC2 实例上运行。这些实例位于附加到 Application Load Balancer 的 Auto Scaling 组中。

  1. 客户访问 AnyCompany 的网站,请求应用程序中的数据。

  1. Amazon Route 53 利用 DNS 解析来识别 AnyCompany.com 对应的 IP 地址,即 192.0.2.0。系统将这一信息发送给客户。

  1. 客户的请求通过 Amazon CloudFront 发送到最近的边缘站点。

  1. Amazon CloudFront 连接到 Application Load Balancer,后者将传入的数据包发送到 Amazon EC2 实例。

其他资源

要详细了解联网模块中探讨的概念,请查看以下资源。

posted @   Donaver  阅读(168)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示