自动创建阿里云抢占式实例
舊博文,搬到 csdn
原文:http://rebootcat.com/2020/08/24/auto_run_aliyun_spot/
aliyun_spot
自動創(chuàng)建阿里云搶占式實例。
支持一下作者,購買阿里云
背景
阿里云搶占式實例應該屬于阿里云的一種閑置資源利用,性價比非常高,每小時的價格在 0.01 ~ 0.05 每小時,具體根據不同的配置和地域有差別,流量價格小于 1元/G.
搶占式實例最高可以以一折的價格購買 ECS 實例,并能穩(wěn)定持有該實例至少一個小時。一個小時后,當市場價格高于您的出價或資源供需關系變化時,搶占式實例會被自動釋放,請做好數據備份工作。
非常適合爬蟲
非常適合爬蟲
非常適合爬蟲
也適合程序員個人日常開發(fā)使用,上班來創(chuàng)建,下班釋放,開銷基本可以控制在在 1毛 ~ 2 毛。
對于我來說,最近在寫一個爬蟲,看了很多代理都很貴,免費的又不穩(wěn)定,正好了解到阿里云的搶占式實例,所以非常滿足我的需求。
但是要注意,這個實例是有可能被釋放的,但是不用擔心,比如香港地區(qū)的釋放率最近(2020-08-19)小于 3%. 另外,每個人可以最大創(chuàng)建 100 個實例,所以還是不用太擔心。
腳本功能
腳本倉庫: https://github.com/smaugx/aliyun_spot
自動創(chuàng)建阿里云搶占式實例
支持以下一些參數:
- 實例所屬地域
- 創(chuàng)建的實例數量
- 公網出口帶寬最大值
- 實例付費的策略和每小時最大價格
- 系統(tǒng)盤大小
- 釋放時間(hours)
- 實例規(guī)格(cpu/mem/localdisk/net/ipv6)
手動釋放一個或者多個實例
可以使用腳本提前釋放一個或者多個實例。
創(chuàng)建的時候可以設置自動釋放時間,當然也支持隨時手動釋放。
如何使用
$ python run_aliyunspot.py
usage: run_aliyunspot.py [-h] [-c [CREATE]] [-r [RELEASE]] [-l [LIST]] [-s [SPOTID [SPOTID ...]]]aliyunspot, 自動創(chuàng)建阿里云搶占式實例,支持自動/手動釋放optional arguments:-h, --help show this help message and exit-c [CREATE], --create [CREATE]create aliyun spot instance and run instance-r [RELEASE], --release [RELEASE]release aliyun spot instance-l [LIST], --list [LIST]list local record aliyun spot instance-s [SPOTID [SPOTID ...]], --spotid [SPOTID [SPOTID ...]]aliyun spot instance_id for release, you can give more than one
1 克隆倉庫
$ git clone https://github.com/smaugx/aliyun_spot.git
$ cd aliyun_spot
$ virtualenv -p python3 vv
$ source vv/bin/activate
$ pip install -r requirements.txt
2 調整配置
$ cp test_config.py config.py
# 打開配置文件,根據你自己的需求修改里面的配置選項
$ vim config.py
當然你也可以不用修改其他配置,只需要把你的 access_id 和 access_secret 填進去就可以,以及 key_pair_name 填進去。(見后文章節(jié) #阿里云官網操作# )
默認創(chuàng)建的是香港地區(qū)的搶占式實例,內存 500MB, 1 CPU, 系統(tǒng)盤 20GB, 按流量計費(1元/G), 公網出口帶寬 10Mbps, 1 小時候自動釋放。
2020-08-19 上述默認配置的實例價格在 ¥ 0.018 /時。
如果你覺得這個配置(cpu/mem)無法滿足你的要求,那么可以調整 instance_type 這個參數,表示實例規(guī)格,詳細可以查看阿里云官網頁面 云服務器 ECS > 實例 > 實例規(guī)格族
3 創(chuàng)建實例
$ python run_aliyunspot.py -c
will create and run aliyun spot instance, please wait...
Success. Instance creation succeed. InstanceIds: i-j6cfhcbb3o2pepduwgfk
Instance boot successfully: i-j6cfhcbb3o2pepduwgfk
Instances all boot successfullyInstanceId:i-j6cfhcbb3o2pepduwgfk
InstanceName:smaug-000-aliyun-8242148
HostName:smaug-000-aliyun-8242148
PublicIp:47.242.33.179
KeyPairName:aliyunspot
CreationTime:2020-08-24T13:48Z
AutoReleaseTime:2020-08-24T22:48Zinstance info saved in file:./ecs/ecs.i-j6cfhcbb3o2pepduwgfk
now you can use ssh: ssh -i ~/.ssh/aliyunspot.pem root@47.242.33.179
如上,創(chuàng)建成功。然后接下來就可以使用 ssh 登錄:
$ ssh -i ~/.ssh/~/.ssh/aliyunspot.pem root@8.210.245.226
4 列出實例
$ python run_aliyunspot.py -l
list all local record instance:
['i-j6caz353cisgl3fzenwi', 'i-j6cbyis12fb1fpzk59fv', 'i-j6cfhcbb3o2pepduwgfk']
注意,上面僅僅是把之前創(chuàng)建并保存的實例信息從文件當中讀取出來,并沒有與 aliyun 交互。
5 釋放實例
$ python run_aliyunspot.py -r -s i-j6caz353cisgl3fzenwi i-j6cbyis12fb1fpzk59fv
will release aliyun spot instance:
['i-j6caz353cisgl3fzenwi', 'i-j6cbyis12fb1fpzk59fv']
please wait...release instance:["i-j6caz353cisgl3fzenwi", "i-j6cbyis12fb1fpzk59fv"] done
阿里云官網操作
上面提到了幾個配置是需要在阿里云官網操作的。
阿里云官網的使用還是挺復雜的,因為功能太多了,花費了我至少一個上午的時間才熟悉了整個操作,完成了整個腳本
所以整理了這個腳本方便大家使用,對阿里云的操作只需要下面幾個:
- 注冊一個阿里云賬號,這個不用說了吧
- 充值 100 元以上,比如 130 元。因為創(chuàng)建實例賬號里至少要 100 元
- 點擊 https://ram.console.aliyun.com/overview 創(chuàng)建一個用戶組,分配權限 AliyunECSFullAccess 和 AliyunVPCFullAccess
- 還是上一步的頁面,添加 ram 子賬號,添加到剛才創(chuàng)建的用戶組,這個賬號會用來編程訪問 aliyun API
- 還是上一步的頁面,為這個ram 子賬號創(chuàng)建 AccessKey。記得保存好。
- 在 https://ecs.console.aliyun.com/ 頁面選擇 網絡與安全-密鑰對,創(chuàng)建密鑰對 aliyunspot (名字任意),會自動下載這個私鑰,記得保存好,一般要放到 ~/.ssh 目錄下,并且記得
chmod 600 aliyunspot.pem
OK, 到這里基本上得到了我們腳本里需要的幾個配置:
- access_id
- access_secret
- key_pair_name
把上述幾個配置填到 config.py 中即可。
然后開始創(chuàng)建和管理你的實例吧!!
然后開始創(chuàng)建和管理你的實例吧!!
然后開始創(chuàng)建和管理你的實例吧!!
Blog:
-
rebootcat.com
-
email: linuxcode2niki@gmail.com
2020-08-24 于杭州
By 史矛革
附
- 阿里云官網
- Aliyun OpenAPI Explorer
總結
以上是生活随笔為你收集整理的自动创建阿里云抢占式实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈几种区块链网络攻击以及防御方案之其它
- 下一篇: Scons构建C++项目