VPC 终端节点-网关终端节点

关注公众号:AWS爱好者(iloveaws)
文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
网站:www.iloveaws.cns

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,今天的课时内容为 VPC终端节点。

VPC 终端节点有两种类型:网关终端节点 和 接口终端节点,本节课时讨论网关终端节点。

我们开始今天的课程内容。

VPC 终端节点-网关终端节点

首先,什么是VPC终端节点?

我举个例子,看下下面的图,比如在AWS东京区域我们有一台EC2以及一个S3存储桶,如果EC2需要访问S3,比如上传一些数据,默认情况下,EC2是需要通过Internet网关然后通过Internet访问到S3。即便EC2和S3都是在同一区域,也需要通过Internet走公网来访问S3。通过Internet访问,无论是安全级别还是两者间的网络的品质都是没办法完全保障的。

而VPC 终端节点 使您能够将 VPC 通过AWS的私有网络连接到支持的 AWS 服务,而不需要通过internet。

如图中的橙色的线,同样是EC2访问S3,可以通过创建网关终端节点,使EC2访问S3通过AWS的私有网络。

终端节点是虚拟设备。它们是水平扩展、冗余和高度可用的 VPC 组件

使用终端节点,访问AWS服务无需 Internet 网关、NAT网关/实。VPC 中的实例无需公有 IP 地址便可与服务中的资源通信,所有的通信都是通过AWS的私有网络进行的。

我们这节课讨论的网关终端节点只支持S3和DynamoDB服务。对于其他的AWS服务可以通过接口终端节点访问,接口终端节点的内容我们在之后的课时讨论。

如果终端节点有问题,容易出问题的两个地方是 1.检查DNS解析配置, 2.检查路由表,确保路由表中有终端节点的路由。

VPC 终端节点有两种类型:网关终端节点 和 接口终端节点。

VPC 终端节点-网关终端节点

网关终端节点的一些重要知识点

网关终端节点,只支持S3和DynamoDB这两个服务,要使用网关终端节点,必须为每个VPC创建一个网关。

使用网关终端节点需要更新路由表,在其中创建到AWS服务的路由。这也意味着与路由表相关联的每个子网都可以访问终端节点。

网关终端节点是在VPC级别定义的。

使用网关终端节点,大致的流程是:
首先创建网关终端节点,选择要连接的服务,S3或者DynamoDB,比如我们选择S3。

然后选择创建网关终端节点的VPC,以及选择终端节点要使用的路由表。比如我们有一台EC2想要通过网关终端节点访问S3,就需要选择这台EC2所在子网的路由表,然后将自动向选定的路由表添加一个路由,将目标设定为S3服务的流量指向终端节点。

这样的话,这台EC2后面需要访问S3时,就会通过路由表,访问S3服务的流量将会通过终端节点,使用AWS私有的网络对S3服务进行访问。

为了让网关终端节点正常工作,必须在VPC中启用DNS解析。

无法将网关终端节点连接扩展到 VPC 之外。就是说VPC 中的 VPN 连接、VPC 对等连接、transit gateway、AWS Direct Connect 连接的另一端的资源,不能使用终端节点与终端节点服务中的资源进行通信。创建的网关终端节点,只能在创建的VPC内使用,其他的VPC,通过建立VCP对等连接,也是无法使用终端节点的,这一点要注意。

VPC 终端节点-网关终端节点

好,接下来是实操演示的内容,创建一个网关终端节点。

实操演示:创建一个网关终端节点

我先介绍下测试的环境。访问EC2管理控制台后,可以看到目前我们有两台已启动的EC2实例,名为server1和endpoints-test。

我们先看下endpoints-test这台实例,通过下方描述可以看到这台EC2实例没有公有IP地址和公有DNS;然后我们看下这台EC2所在的子网为fd2c,我们点击这个子网,看下子网的路由表。

VPC 终端节点-网关终端节点

可以看到这台EC2所在子网的路由表中只有一条本地的路由,没有指向互联网网关或者NAT网关/实例的路由,也就是说,这台名为endpoints-test的EC2实例是无法访问internet的。

如果在endpoints-test这台实例访问S3服务是肯定无法访问的。因为前面我们介绍过,默认情况下实例是通过internet访问AWS服务,而这台实例无法访问internet,自然就无法访问S3。

而在这个时候我们通过建立一个网关终端节点,即便这台实例无法访问internet,实例可通过终端节点,使用AWS的私有网络访问S3。

我们接下来就进行实操演示这部分内容。

VPC 终端节点-网关终端节点

我们先登录到这台endpoints-test实例上,因为没有公网地址,所以我们需要先登录server1这台实例,把它当成跳板机,然后在通过server1实例内网登录到endpoints-test这台实例上。所以server1的作用只是用作跳板机。

VPC 终端节点-网关终端节点

为了节省时间,我已经提前登录到了server1这台实例,登录endpoints-test实例的证书我也提前放在了server1上,我们现在就从server1登录到endpoints-test实例。

先复制下endpoints-test的内网ip地址,然后在server1上输入命令:
ssh -i jp_ec2.pem 172.31.103.136

好,可以看到我们现在已经成功ssh到了endpoints-test实例,我们可以尝试ping一下baidu,PING不通,这台实例是无法访问internet的。

我们在尝试下使用aws cli命令ls s3存储桶,输入命令:aws s3 ls
也没有任何返回,因为现在这台实例是在私有网络,路由表中也只有一条本地路由,无法访问internet,也无法和同区域的S3服务通信。

VPC 终端节点-网关终端节点

那接下来我们就开始创建一个网关终端节点,让这台实例通过网关终端节点访问S3服务。

访问VPC管理控制台,然后访问左侧的“终端节点”,创建终端节点。

服务类别选择“AWS服务”

然后服务名称,在这里可以看到VPC 终端节点有两种类型:网关终端节点 和 接口终端节点;网关终端节点目前只支持S3和DynamoDB这两个服务,其他的服务都是接口终端节点。

我们选择S3服务来做测试。

VPC 终端节点-网关终端节点

接下来需要选择VPC以及选择路由表。

路由表选择需要通过终端节点访问S3服务的EC2所在子网的路由表,我们看一下。
就是这个b376的这个路由表,我们勾选一下这个路由表,等我们创建完成后,会在选择的这个路由表添加一条规则,该规则包含目的地为S3服务,以此终端节点的 ID(如 vpce-12345678)为目标,这样的话与这个路由表关联的子网能够访问此终端节点,通过终端节点访问S3服务。

然后策略这里我们会在后面的课时讨论,这里先配置默认的“完全访问”,点击“创建终端节点”。

好,可以看到终端节点已经创建成功了。

VPC 终端节点-网关终端节点

接下来我们切换到EC2的控制台,看下endpoints-test这台实例的子网的路由表有什么变化。

可以看到路由表中刚创建终端节点后,自动添加了一个路由条目,表示访问S3服务都可以通过刚创建的终端节点访问。

VPC 终端节点-网关终端节点

那我们就测试下是不是这样。

切换到endpoints-test这台实例,然后再次输入aws s3 ls 命令。
可以看到列出了S3存储桶,也就是说这台实例通过创建的终端节点,目前可以访问S3服务了。

好,我们的上面实操演示,通过建立一个网关终端节点,即使EC2实例无法访问internet,没有公网的IP地址,这台实例也可以通过创建的终端节点,使用AWS的私有网络访问S3,对S3存储桶进行上传和下载等操作。

使用终端节点的优势我们前面介绍过,因为走的是AWS的私有网络,对于网络的质量以及安全性是要远远高于使用默认的internet访问的。

好的,我们今天的课时讨论了网关终端节点的内容,在实际组织环境中,很多组织都是在同一AWS区域同时使用EC2以及S3服务,但是很少有会用到网关终端节点,其实网关终端节点并没有什么额外的使用费用,且能提供两点间的AWS私有网络的品质及更高的安全保障,在架构设计中应当适当评估选择。

好,最后希望本课时能够给大家带来帮助。

VPC 终端节点-网关终端节点

希望此系列教程能为您通过 AWS解决方案架构师认证 Professional 认证考试带来帮助,如您有任何疑问

关注公众号:AWS爱好者(iloveaws)
文 | 沉默恶魔(禁止转载,转载请先经过作者同意)
网站:www.iloveaws.cn

我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。

上一篇:SQL中如何求解连续N天都满足的问题


下一篇:API--05--String--特性