使用阿里云 ECS 搭建廉价的高性能云桌面 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
villivateur
1.56D
V2EX    云计算

使用阿里云 ECS 搭建廉价的高性能云桌面

  •  3
     
  •   villivateur 2020-02-09 19:10:15 +08:00 12778 次点击
    这是一个创建于 2119 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本文转自个人博客 https://blog.vvzero.com/2020/02/08/build-powerful-remote-desktops-with-aliyun-ECS-at-low-price/

    要想读懂本文,你需要:

    1. 了解阿里云等云服务的基本 WEB 界面操作;
    2. 了解 Windows 操作系统的中阶操作;
    3. 了解基础的软件开发术语。

    前言

    本文面向的是需要使用高性能计算设备,但是身边只有低性能 PC 机的群体。最近由于 NCP 疫情,出不了门,返回不了工作地,想必不少人的高性能计算设备(好电脑)没带回家,但是,肯定也有人跟我一样,受不了笔记本电脑的龟速。

    我的配置需求是,能够流畅运行安装多个插件的 VSCode、能够同时打开数十个 Firefox 标签页、能够快速完成 node 项目构建。但是我身边只有一台五年前的 intel NUC (i3-4010U, 4GB RAM)。

    在详细了解了各大云服务商的云计算平台后,个人排除了华为云(弹性计算服务价格较高、云桌面售罄)、腾讯云(云计算服务类别过少)、天翼云(云桌面需要安装指定 APP 且性能不满足要求),决定使用阿里云的云计算服务。

    使用阿里云初步搭建云桌面

    经过权衡,我决定使用阿里云 ESC “抢占式实例”付费模式下的“突发性能实例”。为什么这么选?

    因为没钱……

    开玩笑的。我觉得这是我需求下的合理选择方式。为什么选择“抢占式实例”?首先,我们复工的时间还是个未知数,而且可能随时就不想用这个云桌面了。“抢占式实例”是按量付费的一种,也就是,用多长时间给多少钱。并且,相对于按量付费,有相当大的折扣。**“抢占式实例”的最大问题在于,这是竞价模式。也就是说,当别人出价比你高的时候,或者阿里云供给紧张而你又给钱给得不够的时候,它会自动帮你释放。我了解的是,在释放前 5 分钟,阿里云会有提醒。**为了尽量避免实例被自动释放,我选择了“使用自动出价”,也就是说,系统会每小时自动判断当前时间该实例的价格,并选择一个高于市场均价的价格进行付费。**但是,这并不是万无一失,阿里云在供给紧张的时候,仍然会将实例释放。**所以,在处理重要数据时,应该随时备份。我的处理方法是,随时将代码提交到我的 Git 仓库。

    Snipaste_2020-02-09_17-32-20.png

    Snipaste_2020-02-09_17-34-24.png

    如果要保证不会被释放,建议使用包年包月制。

    为什么使用“突发性能实例”?因为个人电脑与服务器不同。个人电脑不会时时刻刻占用大量 CPU,CPU 使用率是离散化的,所以 CPU 的使用积分,我觉得是用不完,25% 的使用基线,完全够用。

    Snipaste_2020-02-09_17-34-05.png

    哎,目前好像国内也只有阿里云能做出“抢占式实例”和“突发性能实例”。

    其他的配置就简单了,区域选择靠近你的(不同地区的价格好像差别挺大),镜像选择 Windows Server,另外,SSD 是很关键的,我觉得现在已经没有多少人能忍受机械硬盘的龟速了。

    Snipaste_2020-02-09_18-03-26.png

    Snipaste_2020-02-09_17-36-25.png

    在下一个页面配置网络,为了保证远程桌面流畅,按使用流量计费,带宽拉满!

    Snipaste_2020-02-09_17-45-57.png

    最终,我的配置如下:

    • 4 核 16GB,25% 平均 CPU 计算性能;
    • 100Mbps 按流量付费网络;
    • 80GB SSD ;
    • Windows Server 2019 数据中心版;

    这样的话,实例价格为 0.412 元每小时(我选的是上海区的,其他区的可能更便宜,在深夜、早上也会更便宜),流量费用为 0.8 元每 GB。算一算,一天大概要 10 元,一个月大概要 300 元,是不是还是有点贵?没关系,继续看。

    Snipaste_2020-02-09_17-36-50.png

    价格的进一步优化

    现在我已经启动了这个实例:

    Snipaste_2020-02-09_18-21-04.png

    我还想更便宜。

    与基友合租一台机器

    我想你一定不可能一天 24 小时都在用它,用它的时候也一定不会一直占满 CPU。关键是,我们这是 Windows Server,跟家庭版、专业版、企业版什么的都不一样,它支持多个用户同时登陆!所以,我觉得,如果有信任的人选,完全可以合租。

    关机时选择“停机不计费”

    阿里云真的是神奇的存在,在 ECS 管理界面,选择停机,竟然可以停机不收费!

    图片 1.png

    实际上也不是完全不收费,硬盘和弹性公网 IP 仍然是收费的。但是,与停机后仍然保留 CPU、内存相比,价格大幅降低。也就是说,我们在每天晚上,完全可以关机并选择不收费,可以节约一大笔。如果想要一直使用同一个 IP,可以选择绑定弹性公网 IP。

    依据个人需求选择实例规格

    我觉得,可能 8GB 内存已经够我用了,另外,青岛区的实例好像每小时能更便宜一毛钱……

    云桌面体验

    在体验之前,再确保一下:该实例网络安全组,需要放通 3389 端口( TCP 和 UDP 都要放通)。

    打开本地的远程桌面客户端试试吧!

    Snipaste_2020-02-09_18-38-25.png

    网络方面,我是江苏电信网络,连接上海区的 ECS,延迟很小,可以忽略,而且画质很清晰,暂时没有什么画面卡顿。至于下行网络,由于这是阿里云的专线,比家用运营商网络好太多,下载速度嗖嗖的,不管国内外。

    计算性能方面,在我本地机器上,VSCode 的 Python 插件,进行一次文件错误扫描需要 5 秒左右,而这台云桌面,只要 1 秒。

    操作系统方面,Windows Server 比 Windows PC 简洁很多,没有乱七八糟的服务,但也没有缺少日常开发所需的重要组件。可能会有点不一样,但是如果出问题,一般能很快解决。比如我在安装 Python 时出错,Google 一下便知要直接以管理员身份打开。

    以下截图自我的云桌面。

    Screenshot 1.png

    Screenshot 3.png

    Screenshot 4.png

    Screenshot 2.png

    提高体验的可选项

    1. 关闭 Windows 的过渡动画,这在远程桌面上会导致卡顿,且会消耗大量的流量费;
    2. 安全起见,重新创建一个管理员用户并禁用 Administrator 用户;
    3. 用好各种云同步功能,比如 Git 仓库、浏览器云同步、云盘等。

    实测价格

    我正常使用了一天,晚上停机不收费,消费如下:

    Snipaste_2020-02-09_18-54-30.png

    Snipaste_2020-02-09_18-55-07.png

    可见,我天大致消费 5 元。

    后记

    确实不是很贵,可行性也很高。假如有模型渲染需求,甚至可以绑定个显卡(

    抢占式实例也不是很可怕吧?我的实例目前没被回收。

    37 条回复    2020-10-29 06:46:08 +08:00
    yankebupt
        1
    yankebupt  
       2020-02-09 19:25:12 +08:00
    RDP?开 60 帧了么...看起来像 30 帧凑合党...
    另外带显卡的实例都什么价……
    跑个 overnight 任务没关 RDP。早上起来发现光流量就收了几块钱......
    villivateur
        2
    villivateur  
    OP
       2020-02-09 19:29:26 +08:00
    @yankebupt 如果仅仅是搞开发的话,30 帧足够了,而且鼠标指针的帧率是 60 帧。
    带显卡那个是开玩笑的。
    怎么可能会忘关 RDP 呢……
    hst001
        3
    hst001  
       2020-02-09 19:31:37 +08:00
    能绑个显卡玩游戏?私人版云游戏
    villivateur
        4
    villivateur  
    OP
       2020-02-09 19:32:17 +08:00
    @hst001 理论上可以,但是流量费够你喝一壶了
    hst001
        5
    hst001  
       2020-02-09 19:40:28 +08:00
    @villivateur #4 服务器版本的 CPU 频率太低了,而且那个 GPU 的接入方式可能不是直接插主板,应该会有不少的网络延迟,玩玩策略回合制的应该可以,但是要支持多核 CPU 的,不然就浪费了。
    pdfgo
        6
    pdfgo  
       2020-02-09 19:41:16 +08:00
    哇,价格看起来还是比较合理。

    阿里云为什么不借此机遇推出更加廉价云桌面产品呢,不是很能让人理解。
    LinYa
        7
    LinYa  
       2020-02-09 19:45:41 +08:00
    比较好奇,停机一晚大概花费是多少?或者说,硬盘+ip 一天要多少钱?
    pdfgo
        8
    pdfgo  
       2020-02-09 19:46:34 +08:00
    还有一个问题,每天晚上都要在控制台停机,早上要在控制台。这实在是太麻烦了。
    locoz
        9
    locoz  
       2020-02-09 19:56:56 +08:00
    @pdfgo #8 你可以用他们的 SDK 自己写一个开机脚本...
    villivateur
        10
    villivateur  
    OP
       2020-02-09 19:58:31 +08:00
    @pdfgo 这只是一个方案而已,选择最适合自己的

    @LinYa 停机的时候,我这边一小时 0.1 元
    1596384882
        11
    1596384882  
       2020-02-09 20:00:41 +08:00
    还以为不用富强就能愉快玩耍了
    dearroy
        12
    dearroy  
       2020-02-09 20:04:12 +08:00   3
    只能临时用用,长期用下来你会发现,不但麻烦,而且也不便宜。
    SingeeKing
        13
    SingeeKing  
    PRO
       2020-02-09 20:05:57 +08:00
    我用的方案差不多,不过选的是 aws,因为可以直接访问外网……
    opengps
        14
    opengps  
       2020-02-09 20:09:07 +08:00 via Android
    怎么最近都玩上这个了,抢占式实例可以保证一个小时保护不被释放,临时用一下可以玩那个,别去用 t5 这种不适合 cpu 连续负载的机器
    villivateur
        15
    villivateur  
    OP
       2020-02-09 20:10:11 +08:00 via Android
    @dearroy 确实,这个面向的就是现在这样的情形
    Yourshell
        16
    Yourshell  
       2020-02-09 21:54:15 +08:00 via iPhone
    为何不直接使用 vscode remote development
    ldcr99
        17
    ldcr99  
       2020-02-09 23:17:26 +08:00 via Android
    可以玩英雄联盟吗
    villivateur
        18
    villivateur  
    OP
       2020-02-10 08:00:10 +08:00 via Android
    @ldcr99 玩游戏基本上不可能,延迟和流量费受不了
    tadtung
        19
    tadtung  
       2020-02-10 10:19:12 +08:00 via Android
    @villivateur 你这没玩过游戏啊,远程延迟和流量都不是问题。。。而且这个比你在家延迟更低,流量你再玩也没多少。。。
    主要是云主机哪个有独立显卡?能让你玩起游戏?
    国外一些独服,你倒是可以联系加装显卡。
    larendorrx
        20
    larendorrx  
       2020-02-10 10:45:33 +08:00
    @tadtung 画面传输的流量吧
    tadtung
        21
    tadtung  
       2020-02-10 11:09:08 +08:00 via Android
    @larendorrx 只是用远程桌面,流量不大,如果你是用云游戏串流,传 1080p 以上视频,这流量是有点大。。。
    这样的话,建议还是选香港直连节点的,。。。例如 aliyun 香港这些
    shilyx
        22
    shilyx  
       2020-02-10 12:35:15 +08:00
    套路云不是盖的,一天 5 块是不贵,但是有便宜得多的
    llvm98
        23
    llvm98  
       2020-02-10 14:33:23 +08:00   1
    赞,老家的老爷机也能用了
    mostkia
        24
    mostkia  
       2020-02-10 16:55:43 +08:00
    按量付费的确贵,用着输服与否,主要看你离数据中心的距离,远了肯定不行,延迟太高,而且远程桌面的带宽真的不小,玩玩可以,不推荐长期使用。
    mostkia
        25
    mostkia  
       2020-02-10 17:09:30 +08:00   1
    云桌面其实还是架设在家中更好一些,要是随便整台机器就能用,也不必那么麻烦了,其实配置环境之类的也需要大量时间的,租用的服务器性能也不高,高的价格也受不了,而且一个不小心欠费了,数据也可能会丢,还不如把家里的电脑利用起来。家中的电脑,所有的文件、配置环境都是自己熟悉的,可以做到零成本快速切换使用,而且硬件也可以自己升级,升级后就是永久的了,这样带个超薄本就能随时连接到自己手头最强算力的设备了。云服务器开一台配置最低的,宽带按量拉满,直接 FRP 内穿回家中的电脑,省下的钱补贴家中电脑开机时的电费。
    br00k
        26
    br00k  
       2020-02-11 08:56:21 +08:00 via iPhone
    如果有支持 remoteFX 体验就会更好了
    RickyC
        27
    RickyC  
       2020-02-11 10:15:53 +08:00
    不太理解. 阁下说的不就是租一台 windows server 服务器吗?
    这个不是 10 多年前就能实现的吗?
    那时的价格, 应该也是一个月几百上千元, 当然配置是低的.
    这怎么叫云桌面呢? 这叫云电脑啊.
    这种方案的价格,如果是 20 元 /月以下, 我会考虑. 否则我觉得是奢侈品了.
    Rheinmetal
        28
    Rheinmetal  
       2020-02-11 13:16:44 +08:00 via Android
    优点是临时伸缩配置 如果负载波动大是划算的现在临时应急其实也行 长租拿来当开发机就有点贵了
    Rheinmetal
        29
    Rheinmetal  
       2020-02-11 13:20:35 +08:00 via Android
    @RickC 区别在于按量计费 加上竞价实例可以按网络 /io/cpu 的实际用量付费 拿来应急比较灵活
    临时需要高负载任务 可以几十块搞定 不用长租高性能机器
    snoopygao
        30
    snoopygao  
       2020-02-11 13:44:29 +08:00
    天翼云实名后给两个月的云桌面,具体没验证
    villivateur
        31
    villivateur  
    OP
       2020-02-11 19:38:40 +08:00 via Android
    @snoopygao 那东西我看了,没有 PC 客户端,只能在手机上用远程桌面。我 tm。。。
    suom
        32
    suom  
       2020-02-11 21:01:49 +08:00
    ip 改成弹性 ip。会省很多钱。
    zqfxch
        33
    zqfxch  
       2020-02-12 16:13:28 +08:00
    支持一下楼主分享。
    其实这就是最简单的云桌面的使用模式,RDP 模式,在这个特殊的时间支持了楼主的短期高配置办公需求。
    阿里云最新一代的 t6 也出来了,价格比 t5 更便宜,看了下 t6 4 核 16G 的性能基线是 40%,也就是说平均 CPU 使用率不超过 40%,99%的情况够用了,咱自己家的电脑平常上个网玩个普通游戏 CPU 使用率一般也低于这个数字,更不用说普通的办公了。
    不过抢占式实例可能被释放,需要时刻关注释放通知,这个有点累,长期使用可以使用按量付费或者预留实例券,并且开启停机不收费功能。
    firsthym
        34
    firsthym  
       2020-02-24 20:55:59 +08:00
    想问下,抢占式后面可以转成按量或者包月包年吗?
    villivateur
        35
    villivateur  
    OP
       2020-02-24 21:13:09 +08:00
    @firsthym 不可以
    leffz
        36
    leffz  
       2020-05-13 15:09:14 +08:00
    很棒,学习了。又赶上阿里云最新的优惠活动,不如购置一台云服务器,方便多了:leffz.com
    oooolongtea
        37
    oooolongtea  
       2020-10-29 06:46:08 +08:00
    @villivateur 多谢分享,我想用这个搭一个远程的 linux 然后用 tightvnc 连上去。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2556 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 42ms UTC 04:22 PVG 12:22 LAX 20:22 JFK 23:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86