45-VPC 终端节点-接口终端节点

Hello大家好,欢迎来到《AWS解决方案架构师认证 Professional(SAP)中文视频培训课程》,我们继续VPC终端节点的内容,上个课时我们讨论了网关终端节点,本节课我们将讨论接口终端节点。

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

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

在上节课后面的内容我们实操演示创建了一个用来访问S3服务的网关终端节点,在创建终端节点时可以看到,VPC终端节点的另一种类型—接口终端节点,接口终端节点支持更多的AWS服务。

接口终端节点重要知识点

接口终端节点提供一个弹性网络接口ENI,ENI会被分配一个所属子网的私有 IP 地址,用于发送到AWS服务的通信的入口点。

创建接口终端节点后,将会生成几个特定的的终端节点DNS 名称,可用这些DNS名称与AWS服务通信。

如果在创建接口终端节点时勾选了“启用私有DNS 名称”,那么对应AWS服务的公有DNS名称,就不在解析成其服务的公有的IP地址,而是会解析为接口终端节点的私有IP地址。

要使用私有 DNS 名称,请确保 VPC 的“启用 DNS 主机名”和“启用 DNS 支持”属性均设置为“true”

我举个例子帮助大家更好的理解。当创建访问EC2服务的接口终端节点后,会生成3个DNS域名。
前面这两个VPCE开头的DNS名称,会解析为这个创建的接口终端节点的私有IP,可以通过这两个DNS,通过私有网络访问EC2服务。

重点是最后这个EC2开头的DNS名称,这个是我测试的区域调用EC2服务API的公有DNS,在没使用终端节点时,都是使用这个公有的DNS名称与EC2服务通信。但注意如果您勾选启用了私有DNS名称,这个公有DNS将会解析为您创建的终端节点的私有IP地址,这样的话您可以继续使用这个DNS通过终端节点访问EC2服务。

这样的好处是,如果您之前通过这个公有DNS名称访问服务,后面你变更为使用终端节点访问服务,这样的话您就不需要修改您的应用程序的配置,因为都是通过同一个DNS名称访问。

如果不启用“私有DNS名称”,如果想通过终端节点访问EC2服务,那就只能使用前面这两个vpce开头的DNS名称。

需要指定要与终端节点网络接口关联的安全组,然后可以通过安全组规则控制从 VPC 中的资源发送到终端节点网络接口的通信。

本地数据中心可以通过AWS Direct Connect或者AWS 站点到站点 VPN访问接口终端节点。

实操演示:接口终端节点

好,接下来我们通过实操演示,创建一个接口终端节点,然后在一台无法访问internet的EC2上,使用AWS CLI命令,通过创建接口终端节点调用EC2服务的API。

我先介绍下测试的环境,其实和上个课时的环境是一样的,我们快速过一下。
目前有两台已启动的EC2实例,名为server1和endpoints-test。

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

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

这种情况在实际的使用环境中很常见,像数据库或一些非直接对外业务所在的EC2一般不分配公有IP,将其运行在私有网络中,这也是安全最佳实践,对外暴露的服务越少越安全。

但在这种情况下,我们如果还需要在这个EC2上访问AWS服务的话,就需要使用终端节点通过AWS私有网络访问。

上节课我们演示了网关终端节点,接下来我们实操演示创建一个接口终端节点,用于通过AWS私有网络访问EC2服务。

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

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

我们在尝试下使用aws cli命令调用下EC2服务的API,输入命令:aws ec2 describe-instances

也没有任何返回,因为现在这台实例无法访问internet,自然也无法访问ec2服务。

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

  • 访问VPC管理控制台,然后访问左侧的“终端节点”,创建终端节点。
  • 服务类别选择“AWS服务”
  • 然后服务名称,在这里可以看到VPC 终端节点有两种类型:网关终端节点 和 接口终端节点;我们这次选择EC2服务,对应的类型是接口终端节点。
  • 接下来需要选择VPC以及子网。我实操演示的环境只有一个VPC,所以VPC就是默认的这个。
  • 子网选择要在其中创建终端节点网络接口的子网 (可用区),对应我们的演示我要选择endpoints-test实例所在的子网,也就是这个尾数为fd2c这个子网。完成创建后会在这个子网中创建一个终端节点网络接口,endpoints-test实例就能够通过这个终端节点访问EC2服务。
  • 接下来启用私有DNS名称这里,我们保持勾选,那么调用EC2服务API的公有DNS,会重新解析为创建的终端节点的私有IP地址。我们一会创建完后确认下是不是这样。
  • 然后选择与创建终的端节点接口关联的安全组,通过这个安全组规则控制从 VPC 中的资源发送到终端节点网络接口的通信。如果你测试的时候有问题,请检查安全组规则是否放行。我们选择一个安全组。
  • 再往下,策略这里我们会在后面的课时讨论,这里先配置默认的“完全访问”,点击“创建终端节点”。
  • 好,可以看到终端节点已经创建成功了,我们稍等2分钟,等终端节点的状态变为可用。

好,可终端节点状态已为“可用”。

首先我们先找一下终端节点创建的网络接口。选择终端节点,然后“子网”选项卡,可以看到终端节点创建的网络接口,就是这个尾数为25e8的网络接口。

我们点击下这个接口,进入到网络接口控制台看下这个ENI详细信息,接口描述说明这是一个接口终端节点,这个ENI的IP为172.31.101.63 ,然后使用的是我们在创建时为其指定的-4的安全组。

我们检查下这个安全组的入站规则,配置的是放行所有,所以在后面的测试会放行我们的EC2的访问。

注意这里的规则只是为了实操演示需要,实际使用时请根据实际情况配置规则。

我们在切换到终端节点的“详细信息”页面,看下终端节点分配的DNS名称。

可以使用这些DNS名称通过终端节点访问EC2服务。

大家注意这个EC2开头的DNS名称,这个是演示所在区域调用EC2服务API时的默认DNS地址。
如果在前面勾选了“启用私有DNS名称”,那么这个DNS地址就会重新解析为这个接口终端节点的私有IP地址。这样在调用EC2 API时,就会通过终端节点的私有IP地址。即使我们演示的EC2无法访问internet,同样可以通过终端节点访问EC2服务。

我复制下这个EC2开头的DNS,然后切换到endpoints-test实例确认下是不是这样。

切换到endpoints-test实例,然后输入命令:

nslookup ec2.ap-northeast-1.amazonaws.com

可以看到这个DNS已经重新解析到了我们创建的终端节点的私有IP—172.31.101.63

我们现在重新执行下aws ec2 describe-instances命令,正常情况下应该可以通过终端节点成功执行。

可以看到这台EC2实例即便无法访问internet,目前也可以调用EC2的API。

这是因为我们创建了一个EC2服务的接口终端节点,然后启用了私有DNS名称,这台EC2执行AWS CLI命令时,通过EC2开头的这个域名,解析到了终端节点的私有IP,通过终端节点成功调用了EC2的API。

好的,我们今天的课时讨论了接口终端节点的内容,希望本课时能够给大家带来帮助。

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

  • 如果您想获取本课程全部课时,请扫PPT的二维码加入。
  • AWS爱好者的网址是www.iloveaws.cn,认证视频课程,免费的认证考试仿真题以及认证课程文章,都可以在网站找得到
  • 可以通过扫码加入【AWS爱好者】微信公众号,查看原创的AWS知识点相关文章。
  • 加入【AWS爱好者】微信群,和其他同学一起备考,以及探讨交流AWS相关知识。

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

2021年10月29日

0 responses on "45-VPC 终端节点-接口终端节点"

Leave a Message

Setup Menus in Admin Panel

error: Content is protected !!