AWS

AWS EC2

EC2

Posted by Galvin on September 26, 2018

EC2(Amazon Elastic Compute Cloud)

EC2是AWS提供的一种计算服务,它以EC2实例(EC2 Instance)的形式存在,因此一个EC2实例可以被认为是一个虚拟机

预配置的EC2镜像被称之为Amazon Machine Images (AMI),一个AMI包含了你打包的好操作系统,以及相应的应用程序和配置

私钥必须非公开可见才可以使用(chmod 400) 通过公有dns连接

ssh -i "ec2.pem" ec2-user@ec2-54-174-80-90.compute-1.amazonaws.com

安全组(Security Group)

  • 默认情况下,所有入方向的流量都会被拒绝
  • 默认情况下,所有出方向的流量都会被允许
  • 安全组是有状态的
  • 如果某个流量被入方向的规则放行,那么无论它的出站规则如何,它的出方向响应流量都会被无条件放行
  • 如果从主机发出去的出站请求,无论入站规则如何,该请求的响应流量都会被无条件放行
  • 如果从主机发出去的出站请求,无论入站规则如何,该请求的响应流量都会被无条件放行
  • 在安全组内只能设置允许的条目,不能设置拒绝的条目
  • 安全组的源IP地址可以选择所有IP地址(0.0.0.0/0),特定的IP地址(比如8.8.8.8/24),或者处于同一个VPC中的其他安全组
  • 安全组会关联到EC2实例的ENI(网络接口)上

连接跟踪

  • 安全组是有状态的,因此AWS使用连接跟踪来跟踪实例的入向和出向流量
  • 对于入向流量的响应包,会被自动允许从实例出去,无论出向的安全组规则是如何。反之亦然
  • 并不是所有通信都会被跟踪
    • 如果安全组规则允许所有通信 (0.0.0.0/0) 的 TCP 或 UDP 流,并且另一个方向存在允许所有端口 (0-65535) 的所有响应通信 (0.0.0.0/0) 的对应规则,则不会跟踪该通信流。
  • 跟踪的信息流在你删除了安全组规则后并不会马上消失,而可能会持续几分钟(甚至最多5天)
  • 对于除了TCP、UDP或ICMP之外的协议,仅跟踪IP地址和协议编号

EC2的存储类型

在创建一个EC2实例的时候,我们可以选择两种主要的存储类型作为EC2的存储设备,一种是弹性块存储EBS (Elastic Block Storage),另一种则是实例存储(Instance Store Volumes)

弹性块存储EBS (Elastic Block Storage)

  • 亚马逊EBS卷提供了高可用、可靠、持续性的块存储,EBS可以依附到一个正在运行的EC2实例上
  • 如果你的EC2实例需要使用数据库或者文件系统,那么建议使用EBS作为首选的存储设备
  • EBS卷的存活可以脱离EC2实例的存活状态。也就是说在终止一个实例的时候,你可以选择保留该实例所绑定的EBS卷
  • EBS卷可以依附到同一个可用区(AZ)内的任何实例上
  • EBS卷可以被加密,如果进行了加密那么它存有的所有已有数据,传输的数据,以及制造的镜像都会被加密
  • EBS卷可以通过快照(Snapshot)来进行(增量)备份,这个快照会保存在S3 (Simple Storage System)上
  • 你可以使用任何快照来创建一个基于该快照的EBS卷,并且随时将这个EBS卷应用到该区域的任何实例上
  • EBS卷创建的时候已经固定了可用区,并且只能给该可用区的实例使用。如果需要在其他可用区使用该EBS,那么可以创建快照,并且使用该快照创建一个在其他可用区的新的EBS卷
  • 快照还可以复制到其他的AWS区域

EBS Volume Types

  • SSD-backed volumes optimized for transactional workloads involving frequent read/write operations with small I/O size, where the dominant performance attribute is IOPS
  • HDD-backed volumes optimized for large streaming workloads where throughput (measured in MiB/s) is a better performance measure than IOPS

  • Solid-State Drives (SSD)
    • General Purpose SSD (gp2)(通用型)
    • Provisioned IOPS SSD (io1)(预配置)
  • Hard disk Drives (HDD)
    • Throughput Optimized HDD (st1)(吞吐优化型)
    • Cold HDD (sc1)

image

EC2 Instance Store

  • 有些实例不支持实例存储
  • 实例存储的大小取决于实例的类型
  • 实例存储的存活与否与实例的状态有关系
    • 实例重启,实例存储的数据将不受影响
    • 一旦实例终止,实例存储将永久消失
    • 实例存储的实例不能进入停止状态(Stop),只能重启(Reboot)或者终止(Terminate)

AMI系统镜像和快照

Amazon Machine Image (AMI)

一个AMI包含了如下的信息:

  • 由实例的操作系统、应用程序和应用程序相关的配置组成的模板
  • 一个指定的需要在实例启动时附加到实例的卷的信息(比方说定义了使用8 GB的General Purpose SSD卷)

EBS快照

  • 备份的快照将会保存在亚马逊S3 (Simple Storage System)上
  • EBS快照属于增量备份,即第二次之后的快照只会更新变化了的那一部分数据
  • 你可以在EC2实例运行的状态下进行EBS的快照操作,但会给EC2的系统带来一定延迟(CPU,内存利用率会变高)
  • 最佳实践是将EC2实例停止,然后将EBS从EC2上卸载下来,进行快照操作
  • 你可以基于EBS快照在同一个AWS区域创建新的EBS卷,这个卷可以是任何EBS类型,任何支持的大小
  • 你也可以将快照复制到其他AWS区域
  • 你可以将快照共享给其他的AWS用户
  • 加密的EBS卷在创建快照后,该快照也会被自动加密
  • 通过加密快照创建的EBS也是自动加密的
  • 在复制未加密的快照时,你可以在复制过程中对其加密

Storage for the Root Device

All AMIs are categorized as either backed by Amazon EBS or backed by instance store.

  • The former means that the root device for an instance launched from the AMI is an Amazon EBS volume created from an Amazon EBS snapshot.
  • The latter means that the root device for an instance launched from the AMI is an instance store volume created from a template stored in Amazon S3.