说到云计算并不陌生,很多人对概念、场景、应用都有一些认识。相信还有很多初学者、准备转行的技术人员、在校大学生,我们还是打算用7天的时间来介绍下云计算中核心的7项云服务

        介绍7项云服务并非和单一云计算服务商绑定,而是介绍通用的内容,因此无论你选择哪个云服务商进行学习和操作,均适用。

1. 云服务器界面

        云主机是云计算提供的最基础、使用最频繁的产品,云主机实例配置如下图所示,创建云主机实例需要选择所在的地域、可用区。云主机配置包含镜像、内存、CPU、磁盘、网络增强、热升级等其他特性。需要绑定到云主机使用的产品与服务有云硬盘(数据盘)、EIP、安全组等。


UCloud界面如下:

7天7项云服务 | 01-云服务器,适用于ECS/UHost/CVM/BCC等_云平台


阿里云创建ECS界面如下:

7天7项云服务 | 01-云服务器,适用于ECS/UHost/CVM/BCC等_云主机_02


腾讯云CVM界面如下:

7天7项云服务 | 01-云服务器,适用于ECS/UHost/CVM/BCC等_云主机_03


        创建云主机除了从镜像启动实例,还需要配置网络、绑定硬盘等,包括绑定VPC、绑定安全组、挂载数据盘,这些会通过创建云主机的堆栈自动完成,还有一些需要手动操作或通过脚本来进行操作的,如绑定EIP、创建监控组、添加到负载均衡中、创建弹性伸缩组。

2. 云主机核心概念

操作系统

        云主机的操作系统支持Linux的CentOS、Debian、Ubuntu等,也支持Window Server系列。用户只需为云主机付费,无须额外为Windows Server操作系统付费,云服务商已经将License费用打包到云主机费用中。云平台会对操作系统进行一些定制开发,云平台版本和开源/闭源版本略有差异,对绝大部分使用无影响。

镜像

        镜像则是云服务中的重要功能,允许将操作系统、安装的软件、系统盘中的数据打包制作为镜像,支持通过镜像创建云主机。在进行系统迁移、跨可用区和跨地域部署、自动伸缩扩展时会使用到镜像,可将云主机的系统制作为镜像,在弹性扩展时直接基于镜像创建云主机,实现快速扩容,在迁移服务时可在目的端基于镜像创建云主机并启动服务,以达到迁移应用的目的。自动伸缩中的启动配置模板必须指定云主机镜像,达到触发条件时会根据该镜像的配置模板扩展资源或缩减资源。


MetaData

      用户自定义的镜像包含应用和数据,云主机启动和运行需要的部分网络环境、开机启动脚本等可在镜像之外通过MetaData进行配置,如图所示。MetaData是云主机实例的管理数据,支持在创建云主机实例时将一些启动命令写入MetaData中,云主机启动时执行预先设定的命令来完成整个准备工作,保证镜像中的服务能够正常启动并运行。

        在实例启动时,可以执行开启镜像中的服务、传入外部参数、安装或更新软件依赖包等操作。

7天7项云服务 | 01-云服务器,适用于ECS/UHost/CVM/BCC等_云平台_04

图  启动云主机时调用MetaData


## 运行httpd并设置开机启动/etc/systemctl startchkconfig httpd on

系统盘

        在创建云主机的过程中会创建系统盘并安装镜像,必选系统盘并且会自动挂载完成。创建过程中会检测是否配置了数据盘,如有数据盘则先进行预挂载,预挂载并非Linux中的mount,而是云平台中云主机和数据盘资源进行关联的操作。需要手动或通过脚本来格式化云硬盘,创建文件系统,再进行mount挂载操作。

详情信息展示

        创建完成云主机实例之后,在控制台可查看到实例的资源ID、可用区、内网IP、机型、CPU平台、镜像、CPU等信息。另外还显示CPU使用率、磁盘读/写吞吐、磁盘读/写次数等监控信息,如需要对内存、系统盘、数据盘、进程、TCP连接等数据进行收集和监控,则需要授权和安装Agent,否则云服务商不会收集敏感的用户资源数据。

访问方式

        创建完成云主机实例后还需要绑定到EIP才能面向互联网用户访问,登录方式有如下几种。

  • VNC登录。
  • Mstsc远程桌面(Windows)。
  • SSH登录(Linux)。
  • 通过WinSCP界面化工具访问文件系统。

        Ubuntu的登录账号为ubuntu,其他Linux的登录账号为root,Windows的登录账号为Administrator。不建议直接用明文账号和密码来登录,登录过程存在安全风险,明文账号和密码容易泄露,建议通过pem key的形式进行登录。

安全组

        云平台为了保障云主机的安全,在创建云主机时会选择绑定安全组。安全组是用来过滤用户TCP、UDP等协议请求的,通过五元组的方式来界定一条访问规则,五元组包括源IP、源端口、目的IP、目的端口、协议,对该规则可以设定允许访问或拒绝访问的动作,还可设置优先级。同一个安全组中的多条访问规则首先按照优先级进行匹配,同一优先级的规则按照从上到下的顺序匹配,匹配到的规则会直接进行相应的允许访问或拒绝访问的动作,不会继续匹配其他规则。

        创建云主机时,默认绑定的安全组拒绝了所有请求①,通过SSH远程访问需要打开22端口,提供Web服务一般开放80(也可能是8080或443)端口,如图所示。

7天7项云服务 | 01-云服务器,适用于ECS/UHost/CVM/BCC等_云平台_05

图  多个安全组规则过滤访问云主机的请求

3. 云服务器生命周期

生命周期

        通过下图能够清晰地了解云主机的生命周期,通过原生镜像或自定义镜像来创建云主机实例,中间的状态包括未启动、启动、创建、释放,这些中间状态可通过操作进行相互转化,最后可通过删除操作来删除云主机实例。

7天7项云服务 | 01-云服务器,适用于ECS/UHost/CVM/BCC等_云服务_06


图  云主机的生命周期

        根据高可用中“实现冗余、减少单点故障”的最佳实践,不建议将应用部署在单台云主机上,通过负载均衡可以进行自动状态监测,可以监测到服务器故障或端口无响应,对于自行监控到的服务器宕机,应该在保证业务正常的情况下及时释放故障资源,减少不必要的费用。

        云主机的“停止”状态并不会停止云主机的计费,只有在“释放”状态下才会停止云主机的计费。如果需要临时暂停云主机计费,可以选择将云主机实例制作为镜像,然后删除该云主机,等需要提供服务时,只需要基于该镜像创建新的云主机即可。

扩展

        有些情况在创建云主机时选择的配置较低,可通过“配置升级”来纵向扩展云主机的配置,如原来是2核4GB的云主机,可升级为4核8GB或其他配置的云主机。在升级过程中,大部分情况需要对云主机进行重启,云服务商在部分云主机机型中可通过“热升级”技术实现无须重启云主机即可完成配置的升级,热升级技术通过修改CPU内核启动程序来实现。升降配置会产生相应的费用,升级配置时需要补差价,降级配置时系统会自动核算并退费。

        扩容还包括对云硬盘、系统盘和数据盘的扩容。对云硬盘的扩容需要进行一系列操作,包括格式化云硬盘、创建文件系统,单分区硬盘和多分区硬盘的处理方式也有所不同。在扩容云硬盘前建议先对数据进行备份。

        对网络带宽进行扩容相对来说更加容易,网络带宽和云主机具有松耦合性,将2Mbps带宽升级到5Mbps或减少到1Mbps,直接通过控制台界面、API或CLI即可进行操作,实时生效。对于可预见的流量高峰期还可以通过购买网络带宽包的方式在指定时间绑定到EIP上,如购买10Mbps有效时间为2小时的带宽包在周六18:00—20:00绑定到EIP上来提升EIP带宽。



最佳实践

优先选择横向扩展而不是纵向扩展,系统中已有的低配置资源可以通过创建符合预期的高配置资源进行轮换。

4. 产品规格族及配置

        云服务商按照不同内存、CPU或一些定制特性等来区分不同型号或产品规格族的云主机。常见的分类包括通用型、计算增强型、网络增强型、存储增强型、内存密集型、大数据存储密集型、高主频型、GPU型等,通用型云主机满足大部分场景,并作为性能参数的标准版本,其他不同产品规格族的云主机在网络、存储、内存、主频等方面进行了定制,适合在自建Oracle、对战游戏等对性能或主频等指标有特殊要求的场景。GPU型云主机可满足人工智能、基因分析等使用场景。

        在UCloud云平台,云主机UHost产品规格族的分类包括通用型G、快杰S型、快杰PRO型、快杰MAX型、快杰Lite型、快杰O型、高主频型、GPU型等,在阿里云平台中,ECS分为通用型、计算型、内存型、大数据型、本地SSD型、高主频型、GPU计算型、FPGA计算型等多种类型。大部分云服务商支持的云主机实例分类如图所示。

7天7项云服务 | 01-云服务器,适用于ECS/UHost/CVM/BCC等_云服务_07


图  大部分云服务商支持的云主机实例分类

        部分云服务商按照云主机的CPU和内存配置分类可分为small、nano、micro、medium、large、xlarge等类型。整理云主机产品规格族、类型代号、CPU、内存的关系,如表4-1所示,此外,还有共享型、异构计算(GPU/FPGA/NPU)、弹性裸金属服务器、超级计算集群等更多分类的参数,详见阿里云、腾讯云等官方文档。

6. 延伸思考

  • ECS的SLA是多少
  • 单台ECS可用性不够,如何解决
  • 单台ECS性能不够,如何

5. 动手实验

  • 选择一个云平台,创建云服务器/云主机,创建成功界面截图(可隐藏掉EIP地址等关信息)。
  • 在云服务器/云主机上搭建Apache或nginx,在浏览器访问EIP对界面进行截图。
    (如需要MumuLab平台精简版示例代码,请微信联系。)






关注微信号,持续获得云计算等相关的各类技术输出和生活工作感悟。