[ 云计算 | AWS ] 亚马逊云科技核心服务之计算服务(Part1:AWS EC2 星巴克为什么横向排队)

article/2024/4/20 14:33:15
(星爸爸网络上的一张图)

注意上图中的5个人,对没错这5个人。一般情况星巴克的人员配置大概是这样的:

  • 1个经理,在办公室
  • 两个收银,在收银台(本文关注的重点
  • 三个人做咖啡

当你去过星巴克买咖啡时,你有没有发现或者注意过星巴克收银台有两个,并且不同于肯德基的纵向排队,为什么星巴克是横向排队?

其实星巴克内不仅与云计算有关,他们的流程更与云原生的 DevOps 有莫大关系,本文重点讲解与云计算 ECS 相关这块。

文章目录

    • AWS EC2 概要
      • 什么是 AWS EC2
      • 为什么要用云主机 EC2,与传统主机比有和优点
        • 传统的物理主机
        • 与传统主机比 EC2 的优点
    • AWS EC2 实例的类型
    • AWS EC2 计费定价
      • 1. 按需定价(On-Demand)
      • 2. Savings Plans
      • 3. 预留实例(Reserved Instances)
        • 3.1 预付全部费用
        • 3.2 预付部分费用
        • 3.3 不预付费用
      • 4. Spot 实例
      • 5. 专用主机(Dedicated Hosts)
      • 定价的整体归纳总结
    • AWS EC2 动态扩展(Amazon EC2 Auto Scaling)
      • AWS EC2 动态扩展解决了什么问题
      • AWS EC2 的扩展方法
    • 参考资料

AWS EC2 概要

什么是 AWS EC2

AWS EC2 缩写于:Amazon Elastic Compute Cloud,其中文翻译为 xXxX(不知道怎么翻译,反正最好别翻译中文,起码我认识的人只叫 EC2),简单点说 EC2 就是 AWS 中的一台虚拟机,这个名词在 AWS中你会反复听到,也是必须要知道的知识点。

对于这个概念必须要知道两点:1. 它是一个虚拟机,2. 计算是弹性的

面试或者考试可能会考的地方(敲黑板):EC2 是什么级别的服务(Iaas,PaaS,SaaS)?

AWS EC2 是 IaaS 服务级别。不知道怎么区分的或者看完了Iaas,PaaS,SaaS区分的还是懵逼的,那么就死记硬背下来,如果想理解记忆,那么看完下面小节就明白了


为什么要用云主机 EC2,与传统主机比有和优点

传统的物理主机

当我们创建自己的物理服务器的时候,首先需要的就是要调研,比如需要购买的服务器类型,数量,之后交给公司采购,提交采购单,之后下单购买…等待1~1000年漫长岁月,之后硬件供应商才会把这些硬件交付给你,这个过程最坑逼的是,这些硬件设施并不一定会同时到达。接下来就是你需要将这些主机搬家到自己的数据中心,或者租用的数据中心里,进行安装,调试他们,最后将他们连接起来,之后一堆的杂七杂八的事情,比如接入通电,做一些check等等。

这里面举一个博主遇到的大栗子:之前在政府公司,采购了一批机器,机器自带的系统是Ubuntu,之后要换成Windows server,所有东西弄好之后,发现机器一直连接不上网络,各种360度的排查之后,发现接入的网络是千兆网络,但是做的驱动并不支持千兆网络,后来换了驱动后,顺利介入网络,这个之间排查和 Fix 的过程是需要一定时间的。

做完了前面所说的各种前期准备后,你才真正的开始部署你的应用程序。但是这里需要注意的是,你采购回来的这批主机,已经固定,也就是他们的计算能力当你在下单的时候就已经被决定了,所以你放在上面的应用程序的计算能力,必定被这些物理机器的计算能力所限制。这也就是为什么后面会引入 EC2,因为 EC2 完全不需要担心此类问题。

将应用程序部署在物理服务器上线前准备:
在这里插入图片描述

与传统主机比 EC2 的优点

相比传统主机, EC2 可以随时创建和终止不同类型的服务器,相比传统服务器的运维部分,在 AWS中,你不需要来conrtol,这部分服务器的运维工作,完全是 AWS 来负责,你可以认为从购买主机到接入网络调试部分,AWS已经全部完成,你所需要做的就是创建 EC2,之后启动 EC2 使用即可,当然如果有一天你不想用 EC2 了,那么你也可以随时的直接删除掉 EC2 实例。

无论是AWS还是国内的阿里云,华为云等,都会自己自建数据中心(这里如果有兴趣可以参照我的另一篇博文:[ 华为云 ] 云计算中Region、VPC、AZ 是什么,他们又是什么关系,应该如何抉择)

概括总结 EC2 的特点:

  • 非常灵活

    上面已经说了,你可以随时开关 EC2,也可以随时选择保留或者删除 EC2,其次在 EC2 实例的配置方面也是非常灵活的,比如你选择OS的时候,你可以选择 Linux 或者 Windows,也可以使用配置模板,创建成百上千个 EC2 实例,并且你还可以使用不同的操作系统和配置的组合来满足不同的业务和计算场景。

    除去操作系统外,在 EC2实例上软件运行的环境也可以灵活配置,比如数据库,第三方软件,或者自开发应用程序等,在实例的运行方面 客户这面是有完全的控制权。这里再次敲黑板,到这里你应该知道为什么 EC2 是 IaaS 服务了吧,EC2 的 OS 是你在控制,并且实例里面的东西是你来控制,外部的网络或者硬件什么的不需要你来管。这些综合即是 IaaS 解决方案。

    垂直缩放实例:当你的 EC2 实例计算能力不满足当前需求时,你可以选择随时的增加或者减少你的服务计算资源(CUP、内存等)

    EC2 具有 Auto Scaling 的特点,可以根据使用者定义的条件自动增加或者减少 EC2的容量、实例数量等,比如在使用高峰期动态增长保持性能,又可以在低峰期主动缩减,达到降低成本的目的。

  • 经济高效且快速

    减少了前期采购准备与后期运维等工作,付费只支付正在使用的 EC2 实例,已经停止或者已经终止(删除)的实例付费(敲黑板中…)

    EC2 是按照使用的秒数以及执行的个体类型计费。

拓展知识

AWS EC2 是由虚拟化技术实现的,实际这些虚拟机最终还是托管在物理服务器上,当启动某个EC2 的实例时,你不会占用服务器的整个主机,事实是你的 EC2 实例 可能和其他人的 EC2 实例共用一个物理服务器,这也就是常说的虚拟化技术。

多租户模式:在虚拟机之间共享底层硬件的概念被称为多租户模式(multi-tenancy)。这些管理、维护和协调资源的工作也都是由AWS来负责。

AWS 的多租户模式是否安全?

答案是安全的,虽然是多租户共用一个服务器,但是本身每一个 EC2 彼此之间是隔离的,相互之间并不知道彼此所在主机上正在运行其他的 EC2实例。


AWS EC2 实例的类型

之所 EC2 有不同的类型,其原因是他们的分工和处理业务场景不相同,就好比我们做一个项目或者产品,需要PM、BA、前段、后端、DBA等不同的分工,他们擅长的领域也不同,同样Amazon EC2 提供多种经过优化,适用于不同使用案例的实例类型以供选择。

实例类型包括各种 CPU、内存、存储和网络容量,使您可以灵活地为应用程序选择适当的资源搭配。每种实例类型都包含一个或多个实例大小,允许您根据目标工作负载的要求扩展资源(官方描述)。

Amazon EC2 实例类型都归属于一个实例系列,这些实例类型对 CPU、内存、存储和网络容量进行了不同组合,可以灵活地为应用程序选择适当的资源组合。

在这里插入图片描述

现时点内( ~更新时间 2023年2月1日01:33:16~ ),亚马逊 EC2 有如下几种类型:

实例类型 (中文) 实例类型(英文)实例类型描述
通用类型General Purpose通用实例提供计算、内存和联网资源三方面的平衡,可用于各种不同的工作负载。这些实例非常适合于以相同比例使用这些资源的应用程序,如 Web 服务器和代码存储库。
计算优化型Compute Optimized计算优化型实例非常适用于从高性能处理器获取的受计算限制的应用程序。属于此系列的实例非常适用于批处理工作负载、媒体转码、高性能 Web 服务器、高性能计算(HPC)、科学建模、专用游戏服务器和广告服务器引擎、机器学习推理和其他计算密集型应用程序。
内存优化型Memory Optimized内存优化型实例旨在提高可处理内存中大型数据集的工作负载的性能。
加速计算型Accelerated Computing加速计算实例使用硬件加速器或协同处理器来执行浮点数计算、图形处理或数据模式匹配等功能,比使用在 CPU 上运行的软件更高效。
存储优化型Storage Optimized存储优化型实例旨在用于需要对本地存储上的大型数据集进行高速连续读写访问的工作负载。它们经过了优化,每秒可以向应用程序交付数以万计的低延迟、随机 I/O 操作 (IOPS)。
HPC优化型HPC Optimized高性能计算(HPC)实例专为在 AWS 上大规模运行 HPC 工作负载提供最佳性价比而构建。HPC 实例特别适用于从高性能处理器(如大型复杂模拟和深度学习工作负载)中受益的应用程序。

AWS EC2 计费定价

Amazon EC2 云服务器有五种付费方式:按需实例Savings Plans预留实例Spot 实例,以及专用主机。专用主机可在专供您使用的物理服务器上提供 EC2 实例容量。下面会进行讲解这5中付费方式。

AWS没有带宽的费用,但是有实例流量费。

在这里插入图片描述

1. 按需定价(On-Demand)

无需签订合同,按需计费,适合入门,可以用测试工作负载和进行各种尝试时使用。

按需型实例推荐用途:

  • 希望拥有低成本和 Amazon EC2 提供的灵活性,且不想支付预付款或签订长期合同的用户
  • 具有短期、难应付或无法预测且不能中断的工作负载的应用程序
  • 首次在 Amazon EC2 上开发或测试的应用程序

Linux实例按秒计算,windows实例按小时计算。


2. Savings Plans

提供很低的定价,但是需要使用者承诺在 1年 或者 3年 的期限内保持稳定的使用量(xx 美元/小时为单位衡量)。此类定价模式 最高可节省 72%的使用费用。

Savings Plan 的定价模式,也适用于无服务器服务:Amazon FargateAmazon Lambda


3. 预留实例(Reserved Instances)

此模式计价适用于稳定状态的工作负载或者使用量可以预测的工作负载。与按需定价相比,预留实例可以节省最高 75% 的费用。

这个折扣有个限制,就是必须承诺 1年 或者 3年 的试用期后,才可以享受折扣。

3.1 预付全部费用

预付全部费用是指在承诺时候全额支付所有的费用。

3.2 预付部分费用

预付部分费用是指在承诺时候支付部分费用。

3.3 不预付费用

不预付费用是指你一开始就不需要支付任何费用。


4. Spot 实例

借助这类实例 ,你可以请求获得限制的 Amazon EC2 计算容量。与按需实例的价格相比,使用 Spot 实例最高可以达到 90% 的折扣。

Spot 实例推荐用途:

  • 开始时间和结束时间灵活的应用程序
  • 只能承受极低的计算价格的应用程序
  • 具有紧急计算需要,需要获取大量附加容量的用户

需要注意如下两个特点:

  • 对于可能需要大容量的紧急计算需求非常有用。
  • 如果一个 Spot 实例被 Amazon EC2 终止,你将不会被收取特定使用时间的费用,但如果它被你自己终止,那么将依据实例运行时间按小时计费。

注意:AWS 可能随时回收该实例,只有提前两分钟向你发出告知,来提醒你完成工作并保存状态。所以如果要选择Spot实例,一定要确保工作负载能够支持随时中断,比如批处理工作。


5. 专用主机(Dedicated Hosts)

专用主机是专供你用于 EC2 的物理主机。通常用于满足某些合规性要求,不会有人和你一同租用该主机。

它可以作为预订购买,相比按需价格最高可打七折。

专用主机可以每小时购买一次。


定价的整体归纳总结

定价模式(中文)定价模式(英文)说明
按需定价On-Demand按秒为启动的实例付费
储蓄计划Savings Plans通过承诺在 1 年或 3 年期限内保持稳定的使用量(以 美元/小时为单位)来降低你的 AWS EC2 成本
预留实例(RI)Reserved Instances通过承诺在 1 年或 3 年期限内保持稳定的实例配置(包括实例类型和区域)来降低你的 AWS EC2 成本
Spot 实例Spot Instances请求未使用的 EC2 实例,这可能会显著降低你的 AWS EC2 成本
专用主机Dedicated Hosts为你专有的物理主机付费,让你现有的Sokets、物理内核或 VM 计数的软件许可证降低成本

AWS EC2 动态扩展(Amazon EC2 Auto Scaling)

AWS EC2 的其中一个主要优势是:可扩展性和弹性。你可以理解为:客户可以根据自身业务的需求,增加或者降低AWS的使用量。

如果想要自动执行扩展流程,您会使用哪项 AWS 服务?为 Amazon EC2 实例提供这一功能的 AWS 服务是 Amazon EC2 Auto Scaling

在这里插入图片描述

[图片来源于AWS官方](https://aws.amazon.com/cn/blogs/startups/how-to-use-autoscaling/)

AWS EC2 动态扩展解决了什么问题


这里先来举一个栗子

在咖啡店里,由于每天来买咖啡的人数不确定,所以很难确定应该雇几个咖啡师(初中高级等)。如果雇少了,虽然降低了成本,但是客人可能需要等很长时间才能取到咖啡,影响客户就餐体验,而且有的客户甚至有可能就此离开。最糟糕的是,如果咖啡店只有一个咖啡师,那么万一有一天这个咖啡师生病请假后,不能来上班,那咖啡店就无法营业了。另外一方面,如果雇多了,却又没有那么多人来,那么对咖啡店也不合算,会影响其收益率ROI(Return On Investment,或投资回报率)。毕竟企业最终目的还是要盈利的。

上述的例子如果映射到企业购买服务器上,如果按最大客流量购买服务器,那一年大部分时间里这些服务器就处在闲置的状态,产生浪费。如果按照平均客流量购买服务器,那么在客流量激增的时候,又会出现无法访问的问题。

AWS 可以解决这个问题。当一个咖啡师不够用的时候,AWS可以用程序创造出来第2个,第3个,…第n个咖啡师。当顾客人数减少时候,不需要那么多咖啡师的时候,AWS可以关掉一些“咖啡师”。这就是 AWS EC2 的扩展功能。当然,AWS可以自动完成这个过程,也就是亚马逊 EC2 自动扩展功能(Amazon EC2 Auto Scaling)。

这个功能可以帮助客户自动增减实例,维持应用程序的可靠性。亚马逊EC2自动扩展功能有两种模式:动态扩展预测扩展。前者根据需求增减实例。后者根据预测值决定实例的个数。

当客户在EC2上启动一个应用程序的时候,可以配置自动扩展组。一般来说,客户可以将EC2实例的最小数量设为一个。也就是说,任何客户都至少有一个EC2的实例。客户可以将所需容量设为两个EC2实例。客户还可以设置最大容量,比方说四个EC2实例。用KFO餐厅的例子来解释,就是说至少有一个服务员,正常情况有两个服务员,最多四个服务员。这些服务员都是随叫随到,而且不需要的时候就会自动消失。


AWS EC2 的扩展方法

AWS EC2 的扩展方法有两种方式:

  1. 垂直(纵向)扩展
  2. 水平(横向)扩展

水平扩展和垂直扩展有什么区别?(敲黑板,无论是面试还是考试)

垂直扩展意味着将 CPU、RAM 等计算能力扩展到现有机器,而水平扩展意味着向服务器或数据库添加更多机器。即增加节点的数量,并将任务分布在不同的节点之间。


参考资料

https://aws.amazon.com/cn/ec2/instance-types/
https://aws.amazon.com/ec2/pricing/
https://aws.amazon.com/cn/blogs/startups/how-to-use-autoscaling/


http://www.ngui.cc/article/show-861352.html

相关文章

MySQL事务篇

目录​​​​​​​ 一.事务有哪些特性? 二.并行事务会引发什么问题? 脏读 不可重复读 幻读 三.事务的隔离级别有哪些? 一.事务有哪些特性? 原子性(Atomicity):一个事务中的所有操作&…

golang协程基本开发

文章目录说明分享协程实例无参协程带参协程多个带参协程总结说明 golang语言是谷歌发布的近几年比较流行的编译型高级编程语言,语言设计之初把编译与简单作为核心,java程序臃肿内存占用大且必须依赖于jdk(近今年也在尝试编译,个人…

致跟我一样苦恼的你们

2023年2月1日,我决定结束实习,回去准备春招和毕设。我把这个决定跟家人和朋友说时,他们似乎是有点不太赞同,他们觉得: “现在工作不好找,你可以先找好下一家公司后再选择离职” “毕设得事情,…

2. Pytorch 张量运算

目录 2.1 比较大小 2.2基本运算 2.3 统计相关的计算 2.4 张量的自动微分 张量计算 张量的计算内容主要包括:张量之间的大小比较,张量的基本运算,如元素之间的运算和矩阵之间的运算等,张量与统计相关的运算,如排序&am…

[leetcode 215] 数组中的第K个最大元素

题目 题目:https://leetcode.cn/problems/kth-largest-element-in-an-array/description/ 解法 这道题目目前快排可以直接过,但是时间复杂度是 O(nlogn)O(nlogn)O(nlogn)。 想要 O(n)O(n)O(n),这就涉及到408考研知识点了😂&…

ideal整合reids实现缓存查询

目录 前言: 一.工作流程 二. RedisConfig类 三.application.properties 四.开启linux中的redis 五.使用redis结合数据库进行数据查询 5.1编程式缓存 5.2声明式缓存 5.2.1在启动类上添加注解 5.2.2实现代码 六.运行结果 ​编辑 前言: 废话不多讲…

JAVA02_02学习总结(Spring开启事务,Spring通知和curd数据库)

今日内容 1. SpringAOP和数据库进行curd操作 SpringAOPSpring核心技术之一对数据库进行curd操作时,进行增强 思想增强数据库的curd业务,将SpringAOP技术整合进去,为后面的Spring方式控制事务做准备 需要准备的依赖包mybatismysql驱动spring-context依赖包druid连接池-德…

Word处理控件Aspose.Words功能演示:使用 C++ 处理 Word 文档中的目录

Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。 Aspose.words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和…

软件测试真的可以达到月薪20k+?不会自动化测试的我真的很难....

做自动化测试后悔吗? 后悔,真的后悔! 后悔没有早点学..... 虽然现在网上到处都在散播35的焦虑,姑且信之,那么反问你,如果你30岁了,那么给你5年,能够在某个领域成为专家呢&#xf…

Oracle的启动与关闭

启动oracle 启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例。 一、如何启动数据库实例 1.进入到sqlplus启动实例 –“切换到oracle用户” su - oracle –“打开监听” lsnrctl start –“进入到sql…