簡體   English   中英

在 AWS 中,在非辦公時間關閉/啟動所有開發人員 EC2 實例以節省成本(使用 Dynamic IP)

[英]in AWS shutting down / starting all developers EC2 instance at non office working Hours for cost saving ( using Dynamic IP )

有一個小要求,我有 50 個開發人員,他們使用 EC2 實例來完成他們的開發任務,他們用它來在本地 ec2 實例上開發 word press 網站。 目前,他們的 EC2 實例全天候 24/7 運行,這增加了所涉及的成本。 如果我使用EC2CLI關閉並啟動他們的 EC2 實例,他們將丟失他們的 IP(因為我們使用動態 IP 並且不想使用 static IP,因為它成本很高)。 他們 map 他們 IP 到一個域名(例如: 1.1.1.1 wwwname.examplesite.com )在本地 windows 7 主機文件。

我們計划在非工作辦公時間使用 EC2 CLI 關閉他們的 EC2 實例,並在一天開始后再次自動啟動它,但是一旦我們再次啟動它,IP 就會改變,開發人員如何了解他們的 IP。

對此的任何投入將不勝感激。

沒有“一鍵式”方式來執行此afaik,因為亞馬遜並不真的希望您通過這種方式省錢:)。

我已經使用AWS開發工具包為此編程了一個解決方案:基本上,它會定期輪詢AWS以獲取所有實例的公共主機名。 找到它們后,它會將公共主機名注冊到帶有選擇名稱的公共域名(您現在在Windows主機文件中正在使用的域名)的CNAME鏈接到Amazon Route 53(DNS)上。

這是動態DNS的原理。 它已經工作好幾年了。 祝好運

很多時候,依賴IP地址實際上是一種不好的做法,因為它們會像您在回答中所觸及的那樣不斷變化。 您應該改為依靠DNS名稱。

最好的解決方案是編寫一個腳本,以獲取實例上的當前公共IP並更新DNS A記錄。 使用Route 53進行此操作最有意義,因為它具有不錯的API。

您需要為每個員工分配自己的DNS名稱,每個實例都需要知道與其相關的DNS名稱(例如,在腳本中硬編碼,環境變量等)。 然后,您可以編寫一個腳本,使該腳本在每次實例啟動時運行,並執行以下操作:

  1. http://169.254.169.254/latest/meta-data/public-ipv4(EC2元數據服務, 在此處了解更多信息 )提交HTTP請求,以獲取實例的當前公共IP地址
  2. 使用ChangeResourceRecordSets API調用在Route 53上更新A記錄。

借助此最新公告 ,您可以使用AWS Lambda編寫腳本以在特定時間停止所有實例。 但是,如果您的員工上班遲到,並因實例關閉而中斷,則可能會帶來一些小問題。 另外,我不建議您在特定時間再次啟動所有這些實例。 僅允許員工每天啟動實例將是一種更具成本效益的解決方案。 如果有5名員工生病怎么辦? 如果他們不上班,他們的實例將無法開始:)

我可能會遲到,但如果其他人想要這樣做,您可以使用 python 和boto3編寫腳本。 這將使您能夠:

  • 啟動和停止給定(或所有)實例
  • 獲取給定實例的 IP 地址

如何在開發人員機器上編寫VB腳本。 在Windows7桌面啟動時,其特定計算機將啟動,在Windows7桌面關閉時,可以調用VB腳本關閉實例。 還是我可以使用其他任何語言代替VB(必須學習VB)。 無法使用python或無法安裝python。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM