假设您的客户端,例如 HTTP 应用程序接口端点或更复杂的服务或协议等,需要访问网络资源。那么最直接的方式就是创建一个服务,并利用其连接外部世界。但是,如果您的客户端有着严格的服务访问要求,那么您又该怎么办呢?例如,您的客户端可能无法访问公共互联网,必须通过专用或内部网络进行所有连接。在这篇文章中,我将探讨几种能够实现此目标的可用方案。
AWS PrivateLink 允许您使用网络负载均衡器,通过专用网络,在客户端访问 AWS 资源。您可以在 VPC 上创建一个网络负载均衡器,作为客户端入口点,然后向特定 AWS 账户、IAM 用户或 IAM 角色授予权限,允许他们访问您的服务。然后,他们就可以通过其专用网络,从客户端访问您的服务。
请注意 AWS PrivateLink 考虑因素和前提条件,需要考虑的要点如下:
如果您选择使用 AWS PrivateLink,那么您将可以轻松地使用 AWS PrivateLink 与客户端共享服务:
VPC peering 服务允许您将两个 AWS VPC 连接在一起,并使用专用 IP 地址在它们之间路由流量。这种连接是专用的、加密的,并且与互联网的其他部分相互独立。如果您不想使用 AWS PrivateLink,这是一个很好的替代方案。但是 VPC peering 有一些非常严格的限制,在使用其之前,您需要了解清楚:
如果您决定使用 VPC peering,操作流程非常简单,如下:
结合使用 VPC peering 和 AWS PrivateLink
如果您是服务提供商,想使用简单的 AWS PrivateLink 配置将您的服务连接至您的客户端,从而将其连接至专用 VPC,这可能是一个很好的方案。您的客户端可以配置(或者您可以为其配置)VPC peering 连接,这将允许其在一侧使用某些更复杂的路由配置或安全要求来访问您的服务。另一个优势是,这允许从多个区域跨区域访问您的服务,而通过 AWS PrivateLink 服务端点可能无法实现这一点。
AWS Transit Gateway 是核心方案。与前述方案相比,AWS Transit Gateway 更复杂(也更昂贵)。其用于配置和管理,具备更多的配置选项,更少的限制因素。Transit Gateway 允许将多个 AWS VPC 或本地网络连接在一起,使用专用、加密和独立的连接在它们之间路由流量。该服务非常复杂,有许多配置选项,在这里就不详细介绍了,因为具体配置高度依赖于具体需求。有关更多详细信息,请参见 AWS Transit Gateway 相关资料。以下是一些可以使用 AWS Transit Gateway 的示例:
本文介绍了一些方案,用于将您的服务连接至客户端或实现专用网络之间的安全连接。下表总结了各个方案以及其适用场景:
| 方案 | 适用场景 | 何时需要其他方案 |
| AWS PrivateLink | 您只想连接通过网络负载均衡器就能连接至 AWS 网络的服务。 | 您的服务有更复杂的要求,通过网络负载均衡器无法满足这些要求,或者需要跨区域连接。 |
| VPC peering | 有复杂的网络要求,或者只需要跨区域连接到 AWS 网络。 | 您的服务需要连接至非 AWS 网络,或者有更复杂的配置或安全要求。 |
| AWS PrivateLink 与 VPC peering 相结合 | 您可以使用网络负载均衡器来连接服务,但也需要 VPC peering 的某些优势,例如跨区域。 | AWS PrivateLink 或 VPC Peering 无法满足您的服务要求。 |
| AWS Transit Gateway | 所有其他方案都不合适,或者需要连接到非 AWS 网络或本地网络。 | 根据配置,价格可能是一种限制,在这种情况下,您可能需要考虑自托管 VPN 服务。 |