在接触到阿里云之前,我对公有云甚至是云的概念都不是很明确。通过自己在日常工作和生活中不断的探索与尝试,才感觉逐渐上了道,算得上是半路出家。在这个过程中,我很感谢阿里云开发者学堂,不仅有零基础入门可学的开发课程,在阿里云ECS概览页面还有非常实用的教程,甚至在部署过程中出现问题也可以发个工单向阿里云的工程师咨询。
缘起
在数年前,逛某乎的时候,推送了一条:服务器可以做哪些GEEK的事情?在众多博主的回答中,我认识了阿里云,知道了什么是“云”。那些技术前辈的回答让我跃跃欲试。我开始主动了解阿里云和服务器的相关产品,偶然的机会发现了阿里云高校计划。不仅有免费的服务器资源还有训练营带学课程。通过高校计划,我得以系统性学习了 Linux 操作系统、HTML&CSS、前端三大件和云服务器管理迁移等内容,成功部署了我的第一个静态网站,后来还开发了基于wordpress系统的动态网站。阿里云飞天加速计划就是我云上学习的缘起。
开箱即用
即使已有基础知识在身,像配置环境很繁琐的过程也是会本能的抗拒。在阿里云ECS镜像市场已经有很多封装好的环境镜像,对于个人来说非常友好,尤其是对于我这样的零基础开发者,它能够把已配置好的自由服务端软件、运行环境初始化安装和网络资源的配置拉过来就用。
如果你也是跟我一样并非科班出身但是对云计算和计算机也很感兴趣的同学,那么选择阿里云ECS是很明智的,不管是使用ECS搭建博客、购物网站、部署开发环境还是写低代码小程序在这里都可以很轻松的实现。
生态优势
这是选择阿里云ECS的另一个理由。在云原生大行其道的今天,阿里云提供了云开发平台,使用阿里云ECS可以与其绑定使用主机开发,尽情享受云开发的便利。此外,域名、备案、OSS、DNS、ROS、弹性伸缩、RDS等衍生产品都可以在阿里云一站式原生解决,降低选择和迁移成本。
和阿里云一起的日子是多彩的,从小白到站长,从站长到开发者。路虽弥,不行不至。事虽小,不做不成。在学习ECS的过程中我也总结了一份ECS扫盲指南,在这里分享给大家。
ECS扫盲指南
引言
出于工作和学习的需要,我折腾过不少的服务器,既刷过各种openwrt路由器,也整炸掉过几千块钱的物理机,但目前来说,使用最多的也是最靠谱的还是由公有云厂商提供的云服务器(ECS)。公有云的云服务器最大的优点在于稳定,可以不用考虑运维,具体运维由厂商的运维团队负责,对于小白来说踩雷也是常有的事情,本文作为ECS扫盲指南使用,效果极佳。
本文主要介绍以 VPS(Virtual Private Server,常以KVM等虚拟化技术支持)为主的服务器。像裸金属服务器,FPGA,边缘计算等内容不在本文范围内。
需求引导选型
对个人或者小型团队来说性价比是第一位的选择,如果可能的话甚至可以不花钱使用到云计算资源。ECS是通用型的资源,能够做到的事情非常多,性能和配置自然是越高越好,但对于个人来说可能出于兴趣和学习的需求较多,不求最好只求合适应当是选购原则。
那么在我们打开ECS购买页面之前,首先你要问问自己,你为什么需要一台服务器?你要拿服务器干什么?
如果你只是想挂一个小脚本,那么你大概率不需要购买ECS。你完全可以白嫖阿里云免费提供的Serverless服务-函数计算FC和云开发平台,或者直接在软路由或者本地虚拟机中定时运行。
如果你只是想做一个类似于Hexo的小型静态网站,你也不一定需要买一台服务器。各种免费的静态托管,阿里云云开发平台静态前端应用托管、Github pages,Heroku,Vercel,Leancloud 等云产品几乎可以满足你的需求。
如果你想用来跑机器学习,那么你应该去买专用的显卡或者租用专业的工作站。对个人来说服务器来进行这个工作有些过于奢侈,即使是按量付费也会是不菲的花费。
如果你只是用来挂个游戏,那么阿里云无影云桌面可能更加适合你,与服务器相比较不仅便宜而且配置高。
不使用ECS就可以低成本甚至零成本做这么多事情了,那么ECS的独特优势在哪里?
私以为ECS最大的优势是可以完整的拥有对云计算资源服务的控制权限,可以做更多开放性的底层操作、部署多项服务。另外,ESC拥有独立的公网IP地址,这是非常重要的。
云服务器的种类
以阿里云为例,阿里云提供的云服务器产品有:云服务器ECS、弹性裸金属服务器、轻量应用服务器、GPU云服务器、FPGA云服务器、专有宿主机、无影云桌面和弹性加速计算实例EAIS。
l (普通)云服务器ECS(本文讲这个)
n 和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。通常具有 100% 的性能释放,独享带宽,对突发任务的处理能力更强一点。
n 基于KVM虚拟化技术,物理资源不隔离。
n 解决传统硬件服务器成本高、无弹性、管理难和不安全的痛点。
n 交付一台装载有操作系统的虚拟云主机。
n 是公有云厂商主打的产品,核心优势在于弹性。
n 可选弹性、共享和多种计费方式,细分种类非常繁多。
l 轻量应用服务器
n 国内公有云厂商近两三年推出的云产品,面向单机使用环境,基本无法升降配。共享性能,配置成熟应用服务,开箱即用,价格感动人心。
n 适合个人用户使用,小白也能一键搭建网站。
n 通常集成DNS、域名、HTTPS、VPC等增值服务,使用便捷。
n 缺点在于拓展性较弱,基本上不可应用于游戏服务器和其他高负载的服务器应用场景。
n 阿里云2核2一年只要99元,价格远低于普通服务器。
l 弹性裸金属服务器
n 可弹性伸缩的基于物理单机隔离的服务器,安全性和稳定性更高。
n 是物理独立服务器 + 云的结合产品。
n 适合高负载、高IO应用。
n 不是不穿衣服的服务器。
n 价格更贵,配置起点高。
l GPU云服务器
n 以GPU算力为主的弹性计算服务器。
n 适合深度学习、科学计算、图形可视化多种应用场景。
n 当然,拿来挖矿肯定是万万不能收回成本的,
l FPGA云服务器
n 高度灵活的计算资源。
n 适用于加速计算、深度学习推理、基因组学研究等领域应用。
l 专有宿主机(针对企业的解决方案)
l 无影云桌面(没有公网IP的ECS,常用于企业办公场景,其Windows实例用的是Windows server 2019 数据中心版)
l 弹性加速计算实例EAIS(弹性加速实例服务,先要有ECS然后再用GPU加速)
ECS服务器配置选择
l CPU
n 通常,服务器追求稳定,CPU 的主频不会太高,因此不同厂家的 CPU 性能的差异在同价位差别不大。如果是个人使用的服务器,基本不用刻意考虑 CPU 的具体型号,即使在意,你看到的可能也只是虚拟化的CPU资源,例如:Intel Xeon KVM CPU @ 2.5GHz。
n 我们在选购时对 CPU 的考虑,主要是核心数。入门标准配置 1C2H,指的是单核双线程。这样的配置对于个人服务器来说其实也是够用的。使用 Windows server 的服务器, CPU 最好在 2 个核心以上。
n 得益于虚拟化的技术,实际上大部分公有云厂商都存在突发性能实例(KVM虚拟化的云服务器内存和硬盘不会超售,但CPU可以),一般没有说明性能独享的云服务器,CPU 性能都是共享的。共享性能的服务器无法长期跑高负载应用的。
n
n 入门级t5突发性能实例CPU性能以积分方式累计,轻量使用基本无感知。
l 内存
n 服务器的内存基本都是 ECC 内存条,性能不高,但也比较稳定。如果是个人使用的服务器,我们也基本不用考虑内存的具体型号与速度。
n 一般对内存的选择,还是在容量的大小上。操作系统对内存会有最低要求,Linux 本身对于内存的需求是很低的,但是低于 512M 内存的服务器就不建议买了,毕竟跑一个 docker 或者其他服务就基本占满了。使用 Windows server 操作系统的服务器,建议内存在2GB打底4GB 以上。在此基础上,内存容量当然是越大越好。
n 很多国外的服务器厂商都喜欢设置 SWAP 内存(虚拟内存分区,硬盘当内存用),SWAP 内存是不算在内存中的。一般情况下并不需要用到,除非你的内存真的不够用。
l 硬盘
n ECS的ESSD容量在20-500Gb可选,默认是40GB,值得注意的是Windows实例最低的硬盘容量要求是40GB。正常情况下硬盘也不会用满。所以硬盘的容量大小不用太纠结。
n 服务器的硬盘大部分都是用来安装应用服务以及存放日志的,服务器的硬盘不是拿来当网盘存文件用的。国内的服务器,带宽通常很昂贵,静态的资源尽量不要往上面丢,可以选择用OSS对象存储或CDN服务。数据库文件可以使用云数据库来存放。
n 硬盘的随机读写能力要比连续读写能力重要得多,所以要谨慎留意是否买到光有容量但是读写性能极差的垃圾服务器,国外服务器此坑相对较多不过好在通常可以很快退款。
n 硬盘的冗余策略,有条件的大厂都使用 RAID10 作为标配。这不是一个加分项,而是保障数据安全的必备项,如果你购买的服务器不支持硬盘冗余和快照灾备,直接RUN。
RAID 级别 |
最少磁盘要求 |
优点 |
缺点 |
应用 |
RAID0 |
1 |
读写速度快 |
无容错 |
MySQL Slave、集群节点 |
RAID1 |
2 |
镜像盘 读写性能一般 |
成本高 |
监控盘、系统盘、重要数据和需要高可用性业务 |
RAID5 |
3 |
可坏一块盘 |
性能一般 |
普通应用都行 |
RAID10 |
4 |
性能好100%冗余 |
成本高 |
数据库和存储集群主节点 |
n 选购可参考IOPS数值。
l 带宽
n 服务器厂商提供的带宽,基本都是以 Mbps 计算的。比如 1M 的带宽,换算成实际体现是 128KB/s。
n 不太了解服务器的同学可能以为服务器都会有很大的带宽,比如刷全是图片、视频的淘宝几十兆的下行速率很轻松都跑到了,甚至你可能考虑过买一台服务器自己当网盘用。但当你打开ECS购买页面会发现带宽都是一兆起步,百兆带宽一个月就七千多块,和家用宽带比真的是一个天上一个地下。
但实际上,如果你成功在ECS上部署过网站,你会发现哪怕是 1M 的小水管,优化做的好,也足以支持日均上万的 IP,十万的 PV。这是因为,服务器是运算中心而不是数据中心,服务器只负责输出核心的内容即可,内容和资源由对象存储和 CDN 进行分发。这也是为什么基本所有的大型项目都要求前后端分离的原因,因为服务器的带宽真的很值钱。
n 在大多数非流量业务中,时延,抖动,丢包等指标的重要性都远远高于带宽,这些都与带宽无任何直接联系,这就是为什么尽管国内的服务器的带宽如此昂贵,我们也不得不选择国内服务器的原因。
n 当然,国外的服务器厂商提供的带宽一般都比较大,有着动不动1Gbps起步的带宽。不过在实际使用的过程中根据线路的不同也不一定能跑到满速。
l 高仿、堡垒机
n 个人在国内使用提供非商业服务的服务器一般不用买安全产品,阿里云免费提供最高 5Gbps 的恶意流量攻击防护基本够用。另外,国内实名的互联网环境让恶意攻击大幅减少,境外攻击也打不进来,所以不用买~
n 选购国际站的服务器可以考虑使用Cloudflare 服务,免费计划就可以无限防御 DDoS 攻击,根本不和你算什么流量清洗费用。几个 T 的流量打过来那都是伤及不到皮毛的。据说Cloudflare能够承受比有史以来最庞大 DDos 攻击还要强 11 倍的攻击。防DDos攻击的同时还可以隐藏自己服务器的真实 IP,使用他们的CDN还可以做网站加速,除中国外体验都很好。
购买
l 优惠
n 阿里云有飞天加速计划,学生用户可以免费用几个月,同时新用户首购入门级服务器可以做到40/年,甚至可以做到续费三次同价,非常nice。双十一什么的节日优惠力度也很大,老用户也可以做到三折优惠。其他厂商也常有优惠,但千万不要相信免费服务器,免费的就是最贵的。
n 国外大厂通常也有首购优惠,一般以代金券形式发放,需要信用卡来核验身份。
其他
l 备案
n 在国内购买云服务器提供网站服务是必须备案的,不备案虽然也可以使用ECS但是80、443端口会被接入商禁用并停止域名解析。如果不做网站可以暂时不备案,同时像DNS服务器这种特殊的服务需要经营性备案。现在备案挺快的,线上也可以直接办理,建议尽早备案~
n 国外的服务器无需备案,甚至可以不用实名购买。理论上不能在中国提供网络服务。
由于不需要备案,所以难免会有竞争对手来通过向厂商投诉不合规行为来封停你的服务。厂商收到投诉可以随时拔你网线,因此选购海外服务器需要关注服务商是否抗投诉。
l 售后
n 阿里云售后很不错,提供7*24小时服务,有事提工单或者打电话。开发者社区还经常有活动,逢年过节还有小礼品可以拿。
n 国外厂商一般没有中文售后,英语不好只能用翻译软件了。如果没有购买增值的售后服务那你可能要在工作日上班时间才会收到回复,考虑到时差,售后周期可能会很长。优先可选阿里云国际站。
l 虚拟化架构
n
n 虚拟化是云计算的基础。简单的说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚拟机共享物理机的 CPU、内存、IO 硬件资源,但逻辑上虚拟机之间是相互隔离的。使用ECS的我们可以简单了解以下虚拟化架构的区别,做扫盲用。
n 物理机我们一般称为宿主机(Host),宿主机上面的虚拟机称为客户机(Guest)。硬件资源虚拟化通常是通过Hypervisor(VMM)程序来实现的。根据 Hypervisor (VMM)的实现方式和所处的位置,虚拟化又分为全虚拟化和半虚拟化。
n 两种虚拟化方式
u 全虚拟化是指Hypervisor (VMM)直接安装在物理机上,多个虚拟机在 Hypervisor (VMM)上运行。Hypervisor (VMM)实现方式通常是一个特殊定制的 Linux 系统。在全虚拟化的虚拟平台中,GuestOS并不知道自己是一台虚拟机,它会认为自己就是运行在计算机物理硬件设备上的HostOS。以KVM架构为主,Xen的全虚拟化性能损耗大。
u 半虚拟化需要客户操作系统做一些修改(配合Hypervisor),性能损耗较低。以Xen架构为主。Windows操作系统由于其封闭性,不能被Xen的半虚拟化所支持。
n 虚拟化产品
u Xen(半虚拟化技术的代表,开源,半虚拟化支持Linux,全虚拟化支持Windows)
u KVM(全虚拟化技术的代表,开源,支持任何OS)
u OpenVZ(GPLv2授权,仅支持Linux,可嵌套,易超售)
u VMwareESX/ESXi(闭源商业软件,价格高)
u Hyper-V(微软开发,公有云里只有Azure在使用)
l 网络线路
n 国内线路
u 单线
l 机房由联通或电信或移动线路接入,跨运营商延迟高。
u 双线
l 通常由电信 + 联通双线路 (单网卡双 IP 或双网卡双 IP)同时接入。
l 服务器拥有两个 IP 地址,通过路由或DNS解析的方式自动接入访问者的线路,从而实现电信用户使用电信 IP 进网站,网通用户使用网通 IP 访问网站。这样做可以从硬件上解决两种线路互访困难的情况,以此提高网站访问速度。
u 三线
l 通常电信 + 联通 + 移动 (单网卡三 IP)。
u BGP线路
l BGP (边界网关协议) 协议主要用于互联网 AS (自治系统) 之间的互联,BGP的最主要功能在于控制路由的传播和选择最好的路由。中国网通与中国电信都具有 AS 号 (自治系统号),全国各大网络运营商多数都是通过 BGP 协议与自身的 AS 号来互联的。采用 BGP 方案来实现电信 / 联通 / 移动多线路互联的机房就是BGP 机房。
l BGP 分为两种,一种动态,环路情况下自动切换。一种是静态 BGP,遇到堵塞,需要手动来切换线路。
l 阿里云提供BGP多线线路,无需担心不同运营商直接的访问性问题,同时EIP可以作为一种单独的资源购买使用。
l
n 出海线路
u 中国电信:163 骨干网(ChinaNet,AS4134),CN2 网络(AS4809);
u 中国联通:169 网络(AS4837)、A网(AS9929);
u 中国移动:AS9808 网络