AWS_EC2

EC2简介

1. EC2的特性

  • EC2是AWS提供的一种计算服务,它以EC2实例(EC2 Instance)的形式存在,因此一个EC2实例可以被认为是一个虚拟机
  • 预配置的EC2镜像被称之为Amazon Machine Images (AMI),一个AMI包含了你打包的好操作系统,以及相应的应用程序和配置
  • 不同的EC2实例类型包含了不同的CPU,内存,存储和网络性能
  • AWS默认以及建议使用密钥对(Key Pair)的形式访问EC2实例,AWS将保存公钥,您将负责保存私钥
  • EC2实例存储(Instance store volumes)是一种短暂性的存储,一旦您停止或者终止您的EC2实例,这个存储内的数据将永久消失
  • EBS存储(Amazon EBS volumes)是一种持续性的存储,不管EC2实例是什么状态,你都可以保留EBS存储内的数据。这种类型的存储对于进行数据盘的迁移非常方便,使用场景也比较多。
  • 安全组(Security Group)会通过检测数据包的端口、协议、源IP地址从而从当防火墙的作用
  • 弹性IP(Elastic IP address)可以方便您为您的EC2实例分配一个固定的公网IP地址,并且保证每次关机重启该地址依旧有效。
  • 虚拟私有云(Virtual Private Cloud, VPC)是AWS的网络组件,可以让你的AWS资源与其他用户的资源在逻辑上进行隔离。您也可以使用VPC与您的物理数据中心进行连接。

2. 如何访问EC2

AWS提供了非常多的方法方便您来访问EC2实例,下面将一一进行列举。并且会在后续课程通过视频的方式为大家进行演示。

  • AWS 命令行(CLI)- 您可以通过一些终端软件并利用命令行的方式访问您的Windows,Mac和Linux实例
  • AWS EC2管理平台 – 您可以通过基于web的用户界面来访问您的EC2实例(通过java等插件)
  • AWS CLI工具 – 您可以通过AWS CLI工具来访问AWS的多个组件
  • Windows Powershell
  • AWS API
  • AWS SDK

3. EC2实例的计费类型

EC2的实例计费类型有很多种,每一种都有自己的使用场景,不同的客户可能对计费类型的需求也不一样。

官网:

https://aws.amazon.com/cn/ec2/instance-types/

  • On-Demand Instances (按需实例)
  • Reserved Instances (预留实例)
  • Spot Instances (竞价实例)
  • Scheduled Reserved Instances (计划的预留实例)
  • Dedicated Instances (专用的实例)
  • Dedicated Hosts(专用的主机)

针对考试的朋友只着重看前三种实例的计费类型即可。

3.1 On-Demand Instances (按需实例)

这是最基本的实例计费类型,也应该是使用率最高的类型了。这种实例是用多少收费多少,精确到秒。在实例处于停止状态的时候,AWS不会收取你关于EC2的任何费用。只有在实例处于运行状态的时候,才会产生花销。

这种EC2的实例类型非常灵活,你可以在任何时间和地点开启并使用你的实例,然后在不需要的时候将其终止(Terminate)。你的消费只取决于你使用的时间,而没有其他的额外成本或者初始投资成本。

在传统的数据中心内,如果你要部署一个新的应用程序,那么你可能需要先去申请购买硬件服务器,然后安装操作系统,物理接上网络甚至存储,安装和调试应用程序以及代码。这一系列的过程会消耗你几个月甚至大半年的时间。

而是用AWS EC2实例,你只需要一个浏览器,以及几分钟的操作就可以创建你所需要的应用程序了!

如果你不需要这个应用程序,直接将其删除即可。这样的模式特别适合初创企业开发新的应用程序并进行试错。

这也是云计算带来的优势。

On-Demand Instances (按需实例)总结特点如下:

  • 按秒收费(以前是按小时收费,现在AWS更改了),用多少收费多少
  • EC2实例可以根据业务需求实时增加或减少规模
  • 不会有昂贵的初始投资成本
  • 适合用来部署有突发性,爆发性流量的应用程序,比如双11
  • 适合用来测试和开发新的应用程序

3.2 Reserved Instances (预留实例)

这种预留实例你需要和AWS签订1年或3年的合同,并且会以单价低于同等规格的按需实例的价格买到预留的实例,需要一次性付费。在合同有效的期限内,实例不管处于任何状态,费用都不会有变化。

如果你需要使用某种需要不间断运行(24x7x365)的应用程序,那么这种预留实例则会非常适合你,因为你会获得单位时间内最便宜的EC2实例。

1年的合同可以获得40%左右的折扣,3年的合同可以获得60%的折扣。

Reserved Instances (预留实例)总结特点如下:

  • 更低的每小时运行成本
  • 买断了一定的计算资源,不会出现AWS计算资源不足而无法创建EC2的情况
  • 费用在合同期内是固定的,因此费用可预期
  • 适合需要长期运行、稳定的、可预估的应用程序

3.3 Spot Instances (竞价实例)

AWS的计算资源会提供给全球成千上万的客户,因为客户使用计算资源的程度不同,也会影响AWS的总体计算资源消耗的程度。AWS向客户提供的这种竞价实例的每小时价格是浮动的,在计算资源紧张的时候价格较高,在计算资源较为空闲的时候价格较低。

因此客户可以设定规则,在实例价格低于某个阀值的情况下申请并使用该实例,而达到最大的性价比。

这种实例一般比较适合仅进行计算和分析的任务,并且可以随时中断。

(扩展阅读)可以查看客户评价和案例研究,目前已经非常多公司通过使用竞价实例有效地降低非常大的成本。

Spot Instances (竞价实例)总结特点如下:

  • 每个小时都会变化,依据是竞价实力的供需关系
  • 可以非常有效地降低运行EC2实例的成本(特别对于有大数量实例需求的情况下)
  • 在其上安装的应用程序随时可以中断,也就是数据和任务处理结果都需要保存在外部存储上
  • 对实例运行开始的时间没有太多要求

3.4 Scheduled Reserved Instances (计划的预留实例)

这个类型的实例和预留实例很相似,但不一样的地方是你可以定义该类型的实例在每天,每周,每个月的某个时间段运行,其他时间段处于关闭的状态。

这种实例比较适合于例如只在上班时间运行的应用程序,或者每周末进行的数据批处理等。

3.5 Dedicated Instances (专用的实例)

和按需实例差不多,但是实例会运行在专用的AWS硬件上。您的专用实例与属于其他 AWS 账户的实例在主机硬件级别是实体隔离的。

3.6 Dedicated Hosts(专用的主机)

相当于购买了一整台AWS的物理服务器,针对许可证会绑定CPU或者Socket的软件特别有用处。

4. EC2实例的运行平台

目前,EC2上可以运行基于Windows和Linux操作系统的实例,不支持任何非X86架构的实例。

另外,在2017 Re:Invent会议上AWS发布了一种新型的实例,可以让你操作AWS的裸机(不含任何操作系统),因此方便你在上面直接安装类似VMware Esx的虚拟操作系统。

5. EC2的实例类型

目前,AWS提供了70种以上的不同类型的EC2实例,解决客户的不同需求,并且这个类型的数量在逐年增加。

总体来说,EC2的实例类型可以分为通用型、计算优化型、内存优化型、存储优化型、加速计算型。

更高级别的实例会给你带来更多的CPU,内存,I/O,存储等等,当然价格也是越来越高。

举个例子,AWS提供的1年免费套餐中所包含的实例类型是t2.micro,这种实例类型提供了1个vCPU和1G的内存容量,而其他的参数例如网络,I/O则是所有在同一个物理主机中的实例一起共享的。

更多实例相关的内容,可以查看官网的Amazon EC2 实例类型介绍。

6. EC2实例信息综述

6.1 EC2 (Elastic Cloud Compute)

  • 了解不同EC2实例类型的区别,要知道在不同的使用场景需要使用哪一种类型的EC2
    • 按需实例(On Demand Instance)- 用多少时间付费多少,费用精确到秒,不用则可以随时关闭/终止并停止费用的产生
    • 竞价实例(Spot Instance)- 以低于按需实例的价格竞得实例,但价格高于设定得价格后会自动被终止
    • 保留实例(Reserved Instance) – 相当于买断一个实例1年/3年,期间不管实例开不开都需要付总得费用,但平均下来费用会比按需实例便宜
    • 专用主机实例(Dedicated Hosts)- 涉及到软件许可证的时候,会考虑使用专用主机实例
  • 终止一个竞价实例
    • 如果主动终止一个竞价实例,需要为当前这个完整小时付费
    • 如果因为价格上涨,AWS终止了你的竞价实例,那么这个小时的费用会被免费
  • 实例的终止保护(Termination Protection)功能是默认关闭的,有需要必须手动开启。开启后实例将无法被终止,除非先将终止保护关闭
  • 使用EBS为存储的实例,默认情况下如果该实例被终止,这个根EBS卷也会被随之删除
    • 但也可以设置为实例被终止的时候保留根EBS卷

EBS (Elastic Block Storage)

  • EBS的不同类型,需要了解不同类型的EBS主要的使用场景
    • 通用型SSD – GP2 (高达10,000 IOPS),适用于启动盘,低延迟的应用程序等
    • 预配置型SSD – IO1 (超过10,000 IOPS),适用于IO密集型的数据库
    • 吞吐量优化型HDD -ST1,适用于数据仓库,日志处理
    • HDD Cold – SC1 – 适合较少使用的冷数据
    • HDD, Magnetic
  • 不能将EBS挂载到多个EC2实例上,一个EBS只能挂载到1个EC2实例上。
    • 如果有共享数据盘的需求,请使用EFS (Elastic File System)
  • 根EBS卷默认是不能进行加密的,但可以使用第三方的加密工具(例如BitLocker)对其进行加密
    • 除了根磁盘外的其他卷是可以加密的

EBS快照(Snapshot)

  • EBS的快照会被保存到S3(Simple Storage System)上
  • 你可以对一个EBS卷创建一个快照,这个快照会被保存到S3上
  • 快照实际上是增量备份,只有在上次进行快照之后更改的数据才会被添加的S3上
    • 因此第一次快照所花费的时间比较长
    • 而第二次以后的快照所花费的时间相对短很多
  • 对加密的EBS卷创建快照,创建后的快照也会是加密的
  • 从加密的快照恢复的EBS卷也会是加密的
  • 你可以分享快照给其他账户或AWS市场,但仅限于这个快照是没有进行过加密的
  • 要为一个作为根设备的EBS卷创建快照的话,建议停止这个实例再做快照

实例存储(Instance Store)

  • 实例存储也叫做短暂性存储(Ephemeral Storage)
  • 实例存储的实例不能被停止(只能重启或终止),如果这个实例出现故障,那么在上面的所有数据将会丢失
  • 使用EBS的实例可以被停止,停止后EBS上的数据不会丢失
  • 重启使用实例存储的实例或者重启使用EBS的实例都不会导致数据丢失

亚马逊系统镜像(AMI)

  • AMI是区域化的,只能使用本区域的AMI来创建实例;但你可以将AMI从一个区域复制到另一个区域

角色(Role)

  • 使用角色(Role)比使用Access Key和Secret Access Key要安全很多
  • 角色更容易管理和变更
  • 角色可以在EC2实例启动之后再分配,并且可以随时更改角色以及角色关联的策略
    • 在旧版本考试中,角色只能在EC2创建的时候分配,并且实例启动之后不能对角色进行任何更改
  • 角色是跨区域的,创建的角色可以在任何区域中使用

实例Meta-data

EC2置放群组(Placement Group)

EC2 置放群组(Placement Group)逻辑性地把一些实例放置在一个组里面,在这个组里面的实例能享受低延迟、高网络吞吐的网络。

Placement Group的特点

  • EC2 Placement Group分为集群模式(Cluster)和分布模式(Spread)
    • 集群模式(Cluster)即传统的置放群组,所有的实例需要在同一个可用区内
    • 分布模式(Spread)是将实例分布到不同的底层硬件,可以在不同的可用区内。你最多可以在每一个置放群组的每一个可用区内创建7个实例
  • Placement Group提供了低延迟,高速率的网络,可提供高达10 Gbps的速度
  • EC2 Placement Group的命名需要在你的AWS账户内唯一,不能有命名重复
  • 只有特定的EC2实例类型可以放在配置Placement Group内(某些计算优化型、GPU、内存优化型和存储优化型的实例)
  • AWS建议在一个Placement Group内的所有EC2实例是一模一样的,否则会有短板效应
  • 不可以合并多个EC2 Placement Group
  • 不可以将一个正在运行的EC2实例放到一个EC2 Placement Group中;只能为这个EC2实例创建一个AMI,然后基于AMI创建一个新的实例并且加入到Placement Group内
  • Placement Group可以跨越peerd VPC,但要保证在同一个可用区内
  • 如果在Placement Group中创建实例的时候出现“capacity error”的错误,可以停止再启动组中的所有实例,再重新创建刚才的实例
    • 停止再启动组中的所有实例可以改变这些实例所在的底层物理设备,从而带来更多的性能和空间启动新的实例
  • Placement Group的创建会告诉AWS将组里的实例安置在物理上接近的AWS设备内

使用Placement Group的最佳实践

  • 组内使用一样类型的EC2实例
  • 在同一时间启动组内所有EC2实例,这样可以减少出现“capacity error”错误的概率
  • 可以通过更改最大传输单元(MTU),从默认的1500改成9001来进一步增加Placement Group内实例之间的传输速度

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2020-2022 Henry
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信