通过AWS创建无服务器的动态DNS系统
大小:0.6 MB 人气: 2017-10-12 需要积分:1
在本文中,我们讲述了如何通过一个小脚本与一些AWS服务来构建自己的动态DNS系统。也有其他系统能提供类似的解决方案,然而只用AWS服务与几行代码来构建无服务器系统确实简单合算;下面是在AWS上如何构建自己的无服务器解决方案的案例。
我们用在动态DNS系统中的AWS服务
在下文中,我们会展示如何使用下面的AWS服务来构建动态DNS微服务:
(AWS Lambda)[https://aws.amazon.com/lambda/]可用于运行Python、Java或Node.js的代码,而无需管理底层服务器。代码随时可以运行,不过只有每次执行时才会加载,以100毫秒增量。Lambda可以通过AWS SDK管理其他AWS服务。Lambda的功能可以通过Amazon API Gateway或者其他AWS服务所发送的event,按预定计划触发。Amazon API Gateway是一种托管服务,可以为运行在Amazon EC2、Lambda或者其他网络应用之上的后端服务建立公共API前端。Amazon Route 53是一种托管的DNS服务,提供服务允许用户自全球DNS服务器对域名与DNS 区域进行注册与管理。与所有AWS服务一样,Route 53也是通过API来管理的。Amazon S3是一个具有高可用性、高耐久度的对象存储服务。通常用于存储图片之类的静态资源,不过用来存储配置信息、或者其他无服务器/无状态系统的信息也是很好的选择。
动态DNS系统的逻辑流程
下面的图片展示了客户端是怎样向API Gateway和Lambda服务包发起API请求,以获得IP地址的。
客户端知道自己的公共IP后,向我们的服务发送了另一个请求,设置DNS记录。Lambda通过咨询S3中的一个配置文件,来确认请求是否有效。如果核实有效,Lambda就会通过API调用,在Route 53中设置DNS条目。现在,网络当前的IP是公共DNS,可以通过标准的DNS查询来获取。
使用AWS Lambda与Amazon Route 53获取动态DNS的好处
当然还有其他可用的动态DNS系统,下面列举了我们系统的一些优势。
容易设置:样例客户端中包含了所有代码、设置与设置自己AWS账户的指南。架构单薄:更新API只需三个命令。支持大多语言,可以自行编写客户端,并能运行在Windows、Linux、OS X、Raspberry Pi、Chrome OS与DD-WRT/ Tomato USB路由固件之上。支持任意数量的客户端、主机名与域名。价格低廉,1-2美元/mo。Route 53 每个区域成本为0.5美元/月,DNS查询花费为0.01美元/25万个,e而更新DNS所需的Lambda请求为0.01美元/万次。无服务器微服务。因为代码在Lambda上运行,因此运行自己的Linux主机不需耗费成本或维护费用。安全。权限划分细致:只有获得授权的客户端才能更新自己的主机名。只有通过加入到DNS中的地址,客户端才能更新系统。调整当前DNS,只需简单的修改。可以在当前的DNS供应商处保留原本的example.com区域,并在AWS中使用第二个dynamic.example.com区域。代码开源,架构可扩展。想要向系统增加自己的功能,或请关注后续文章。我们打算演示该如何借助加强版系统,从网络或漫游的笔记本对Amazon EC2实例进行公开存取。
前提条件
AWS(Amazon Web Services)帐号。新账号有资格享受AWS Free Tier服务。自己的域:由Amazon Route 53或其他供应商托管。通过Route 53,只需每年10美元便可注册一个域。
在自己的AWS帐号上构建动态DNS系统
读到这里,信息量已经足够,你可以开始构建自己的系统副本了。如果想要了解更多相关信息,请往下看。如果想要开始构建,请访问Git repository下载图例说明,与所有必要的代码及配置信息。
系统运作的详细描述
首先,客户端需要知道分配给自己网络的公共IP。如果从自己的网络向互联网服务发送请求,则该服务会看到从你的外部IP地址发出请求。
在我们的系统中,以Get mode调用API,就会返回相应的公共IP地址:
https://….amazonaws.com/prod?mode=get
{“return_message”: “176.32.100.36”, “return_status”: “success”}
在后端,API Gateway将请求转化为JSON,并将请求发送方的IP地址发给了Python Lambda的函数。然后,Lambda会通过API Gateway将JSON回应与IP返回给客户端。
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%
下载地址
通过AWS创建无服务器的动态DNS系统下载
相关电子资料下载
- S32K3可以直连AWS云服务啦! 56
- 新闻资讯|意法半导体发布安全软件,保护STM32边缘AI设备连接AWS IoT Core的安全 256
- 美国国防部为北卡罗来纳州微电子共享区域创新中心CLAWS拨款3940万美元 124
- 40亿美元!亚马逊投资OpenAI最强竞品 178
- 亚马逊AWS:已协助联发科、纬颖等上云,缩短产品上市时间 220
- 云计算厂商定制ASIC芯片潮流将进一步加速 342
- 亚马逊云科技Amazon Lightsail具备VPS的简易性和AWS的强大功能 187
- Commvault加入AWS ISV工作负载迁移计划(WMP) 181
- GD32 AWS IoT解决方案 126
- 高通和AWS致力于长期共同创新,加速实现软件定义出行的未来 427