VPC Endpoint - VPC与AWS服务的互通

AWS支持两种类型的VPC Endpoint —— Gateway EndpointInterface Endpoint

Gateway endpoint

当同一个region的EC2访问S3或dynamodb时,流量会走公网,这带来不必要的延迟, 并且流量暴露在外面有被窃听的风险:

image-20220831163441849

创建Gateway Endpoint后,VPC里的资源访问S3时,不再经过igw或nat gw, 而是经过gateway endpoint。每个子网的路由表都要有一条路由,使用s3/dynamodbprefix list(前缀列表) , 并将其转发到对应的endpoint:

image-20220831163528334

注意这个prefix list是和region相关的,如果此时访问其他region的S3/DynamoDB,流量还是会经过igw的路由

Gateway Endpoint的缺陷

Gateway Endpoint不支持流量的穿越,例如从IDC里拉通VPNVPC2,从IDC访问S3时,流量不能穿过VPC2再到S3:

image-20220831164720771

同样,如果VPC1VPC2做了Peering,VPC1访问S3时,流量也到达不了S3:

image-20220831164822297

另外Gateway Endpoint只支持两种服务:S3和DynamoDB。

基于上面的一些缺陷,AWS继续推出了Interface Endpoint

Interface Endpoint

Interface Endpoint是基于AWS Private Link技术实现的。它支持AWS 130多种服务

它的原理和Gateway Endpoint不一样:

  • EC2在使用Gateway Endpoint时,解析出来的S3地址还是公网地址,然后通过路由转发到gateway endpoint
  • EC2在使用Interface Endpoint时,解析出的的是一个弹性网卡的私网地址,将它当做S3的地址,然后经过Interface VPC Enpoint到达S3。

image-20220903075849384

为了保证高可用,一般每个AZ都有一个ENI。


Interface VPC Enpoint也支持和其他帐号的Load Balancer互联:

image-20220903080136092

但是Interface Enpoint要收取每小时0.01$的费用,并且每处理1GB数据也要收0.01$

总结

Gateway Endpoint是通过修改路由表实现的,Interface Endpoint是通过ENI实现的:

image-20220911194909739