摘要
亚马逊云科技在2021年2月正式公布了实用于 Amazon S3 的 Amazon PrivateLink,Amazon PrivateLink 应用虚构网络中的公有 IP 提供 Amazon Simple Storage Service (S3) 与本地资源之间的专用连贯。借助此性能,您当初能够应用 Virtual Private Cloud 中的接口 VPC 终端节点,在平安的虚构网络中间接拜访作为公有终端节点的 Amazon S3。通过容许您应用公有 IP 地址拜访Amazon S3,这扩大了现有网关终端节点的性能。从本地应用程序向 Amazon S3 收回的 API 申请和 HTTPS 申请会主动通过接口终端节点进行定向,这些终端节点通过 PrivateLink 以平安和私密的形式连贯到 Amazon S3。
- 实用于 Amazon S3 的Amazon PrivateLink
https://docs.aws.amazon.com/A... - Amazon PrivateLink
https://aws.amazon.com/privat... - Amazon Simple Storage Service (S3)
https://aws.amazon.com/s3/ - Virtual Private Cloud
https://aws.amazon.com/vpc/
本文档介绍的计划是通过利用跨区域间的VPC对等连贯和Amazon S3的接口终端节点,来实现跨区域公有拜访Amazon S3。客户能够依据本人的须要,能够通过 Amazon Direct Connect 或 Amazon VPN 提供的平安连贯从本地应用程序公有拜访 Amazon S3。
- Amazon Direct Connect
https://aws.amazon.com/direct... - Amazon VPN
https://aws.amazon.com/vpn/
想要理解更多亚马逊云科技最新技术公布和实际翻新,敬请关注2021亚马逊云科技中国峰会!点击图片报名吧~更多精彩内容,敬请期待8.19-20北京、9.15深圳分会吧!
服务介绍
早在 2015 年,Amazon S3 是第一个反对增加 VPC 终端节点的服务;通过VPC网关终端节点提供与 Amazon S3 的平安连贯,而不须要网关或 NAT 实例。其原理是在指定的路由表里,创立到Amazon S3服务的路由,与路由表相关联的每个子网都能够拜访终端节点,随后通过终端节点将来自这些子网实例的流量路由到Amazon S3服务。在下图中,子网2中的实例可通过网关终端节点拜访Amazon S3。
- Amazon S3 是第一个反对增加 VPC 终端节点的服务
https://aws.amazon.com/blogs/...
这种新的灵活性深受客户欢送,然而也有它的局限性 – 不反对跨区域和本地数据中心公有拜访Amazon S3,最新推出的Amazon S3接口终端节点则能够满足这种需要,其通过在抉择的子网中,应用调配公有IP的ENI创立Amazon S3接口终端节点,从而实现与Amazon S3的平安连贯。VPC内应用程序,或者是通过Amazon Direct Connect或Amazon VPN等平安连贯到接口终端节点的本地应用程序,都能够通过接口终端节点公有拜访 Amazon S3。当从本地应用程序连贯到 Amazon S3 时,通过打消配置防火墙规定或互联网网关的须要,接口终端节点可简化您的网络架构。
- Amazon Direct Connect
https://aws.amazon.com/direct... - Amazon VPN
https://aws.amazon.com/vpn/
Amazon S3两种终端节点的比照:
演示环境整体架构
演示环境的VPC设置:
留神:
- VPC 对等连贯的2个VPC的CIDR块不能有重叠
- 应用具备接口 VPC 终端节点的公有 DNS (Amazon PrivateLink),则必须将enableDnsHostnames
- 和enableDnsSupport 属性设置为 true
- 在两个VPC对等连贯中都须要启用DNS解析
- 接口终端节点的平安组必须容许入站 HTTPS(端口 443)流量
演示环境搭建步骤
4.1 创立演示VPC环境
在每个区域中通过VPC Console的向导创立一个带有私有子网和公有子网的VPC, 同时在cn-northwest-1区域创立Amazon S3桶(具体步骤略)。上面是我的演示环境中的截图:
cn-north-1区域VPC及子网
cn-northwest-1区域VPC及子网
在两个VPC中都启用DNS hostnames 和 DNS resolution:
cn-northwest-1区域Amazon S3桶
4.2 搭建跨区域VPC对等连贯
把两个区域中的VPC创立对等连贯,更新路由表(具体步骤略),上面是我的演示环境中的截图:
VPC对等连贯
在两个VPC对等连贯中都启用DNS解析
cn-north-1区域路由表
cn-northwest-1区域路由表
4.3 验证跨区域VPC对等连贯
在cn-north-1私有子网和公有子网各创立一台EC2实例,私有子网的EC2作为跳板机连贯到公有子网的EC2。同时在cn-northwest-1的公有子网创立一台EC2实例。
cn-north-1区域EC2
cn-northwest-1区域EC2
EC2平安组入站
EC2平安组出站
借助于私有子网的EC2跳板机, 验证从cn-north-1公有子网的EC2(IP:172.31.30.22) 胜利SSH到cn-northwest-1的EC2实例(IP:10.10.1.94 )。
4.4 创立Amazon S3接口终端节点
首先为确保亚马逊云科技命令行工具(例如 Amazon CLI)能够通过 HTTPS 从 VPC 中的资源向亚马逊云科技服务发出请求,接口终端节点的平安组必须容许入站 HTTPS(端口 443)流量,所以在cn-northwest-1区域创立一个平安组,入站规定如下:
在cn-northwest-1区域的VPC创立Amazon S3的接口终端节点,关联对应的VPC和子网,来实现跨区域公有拜访Amazon S3。
接下来给接口终端节点关联之前创立的平安组,而后创立Amazon S3的接口终端节点。
创立实现后,会生成两种类型的Amazon S3接口终端节点的DNS:
- Regional DNS – 包含惟一的VPC端点ID、服务标识符、Amazon区域和amazonaws.com, 本实例中为vpce-0257c85882d96cc95-vj9syim9.s3.cn-northwest-1.vpce.amazonaws.com.cn
- Zone DNS – 包含可用区,如vpce-0257c85882d96cc95-vj9syim9-cn-northwest-1a.s3.cn-northwest-1.vpce.amazonaws.com.cn,客户用这种类型的DNS来指定可用区,升高跨可用区数据传输老本
Amazon S3接口终端节点在抉择的子网中,应用调配公有IP的ENI创立Amazon Amazon S3接口终端节点,从而实现与Amazon S3的平安连贯。
4.5 测试验证
首先在cn-north-1创立EC2 服务的role, 赋予Amazon S3 读写权限。
把创立的EC2 服务的role赋予cn-north-1公有子网的EC2(IP:172.31.30.22)。
验证从EC2不能间接拜访cn-northwest-1的Amazon s3桶,因为EC2在公有子网,不能拜访public网络拜访Amazon S3 Endpoint,命令会始终hung住直到超时。
留神:须要先把Amazon CLI降级到最新版本。
验证通过VPC对等连贯和Amazon S3接口终端节点DNS,cn-north-1的公有子网的EC2能够胜利拜访位于cn-northwest-1的Amazon s3桶并上传文件。
应用倡议
Amazon S3接口终端节点和之前的网关终端节点是能够共存的,倡议本区域的VPC内应用程序通过网关终端节点公有平安Amazon S3,这种形式不会产生额定的费用。对于其它区域和客户数据中心用接口终端节点, 通过Amazon PrivateLink以平安和私密的形式连贯到Amazon S3。举荐的架构如下:
对于本地数据中心拜访Amazon S3接口终端节点DNS, 亚马逊云科技 Global区域能够联合Route53 Resolver(参考文档1);亚马逊云科技中国区能够搭建DNS Proxy来实现DNS解析(参考文档2)。
总结
本文介绍了利用Amazon S3的接口终端节点和跨区域间的VPC对等连贯,来实现跨区域公有拜访Amazon S3,网络流量通过Amazon PrivateLink全副放弃在Amazon网络上。客户能够依据本人的须要,能够通过Amazon Direct Connect或Amazon VPN提供的平安连贯从本地应用程序公有拜访Amazon S3。从本地应用程序向Amazon S3收回的 API 申请和 HTTPS 申请会主动通过接口终端节点进行定向,这些终端节点通过PrivateLink以平安和私密的形式连贯到Amazon S3。
- Amazon Direct Connect
https://aws.amazon.com/direct... - Amazon VPN
https://aws.amazon.com/vpn/
参考文档
- https://docs.aws.amazon.com/z...
- https://aws.amazon.com/blogs/...
- https://aws.amazon.com/cn/blo...
- https://docs.aws.amazon.com/z...
- https://docs.aws.amazon.com/z...
本篇作者
朱士洋
亚马逊云科技技术客户经理
负责企业级客户的架构和老本优化、技术支持等工作,致力于AdTech等行业,曾供职于IBM,领有15+年的产品设计、开发/测试、技术支持教训。