通過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