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相关知识。
我们今天的视频课程就到这里,感谢大家的观看,我们下一课程再见。
0 responses on "45-VPC 终端节点-接口终端节点"