PrivateLink实验 - II

上一节我们完成了Provider VPC侧的搭建工作,并创建了Endpoint Service, 本节我们将完成Consumer侧的工作,使用AWS PrivateLink技术访问Provider的服务:

image-20220929095619150

Consumer侧创建Endpoint

在VPC的页面,点击Create endpoint

image-20220929110141916

此时我们不使用AWS Services,而是选择Other endpoint services

输入上一节最后复制的Service ARN,然后点击 Verify service

image-20220929111116313

Provider VPC网段为10.0.0.0/16Consumer VPC网段为10.1.0.0/16,选择这个VPC及其下的子网,并使用默认的安全组:

image-20220929111205204

default安全组上要放通80端口的HTTP流量

最后点击创建。


此时回到Endpoint services,会看到有一条新的连接请求过来,需要Acceptimage-20220929111306586

在provider侧确认接收连接,点击确认后大概两分钟后,连接会创建好。

访问测试

在consumer侧,可以看到AWS PrivateLink在两个子网里创建的ENI:

image-20220929111358636

Consumer VPC创建一台EC2, 并使用Endpoints的DNS来访问NLB服务:

image-20220929114122050

Consumer VPC能成功访问到Provider VPC里的服务:

image-20220929111828410


PrivateLink与VPC Peering的区别

通过实验,我们发现PrivateLinkVPC Peering在实现的功能上类似,它们都是将对外网的服务访问变成走AWS内网,但它们的应用场景又略有不同:

PrivateLink VPC Peering
应用场景 VPC暴露单个服务给别的VPC VPC之间需要访问很多资源
对网段的要求 支持重叠的CIDR CIDR不能重叠
连接的数量 没有上限 最多125个Peering connection
流量的方向 单向。只支持从consumer VPC发起流量请求 双向

VPC PrivateLink不支持直接跨region使用,如果直接在另一个region使用endpoint service,会提示Service name could not be verified:

image-20231127144432669

解决方式参考:

https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/centralized-access-to-vpc-private-endpoints.html

         A diagram depicting multi-Region VPC endpoints