EC2实例,EBS及EFS存储

EC2实例,EBS及EFS存储

  • 1 EC2实例基础以及创建一个Linux虚拟机
    • 1.1 AWS EC2 云服务器
    • 1.2 创建Linux虚拟机
  • 2 将IAM Role赋予给EC2实例
    • 2.1 给IAM Role授予S3管理权限(使用有s3权限的role赋予实例权限)
    • 2.2 给IAM Role授予EC2管理权限(使用有EC2管理权限的role赋予实例权限)
  • 3 安全组
  • 4 共有IP,私有IP以及Elastic IP(弹性ip)的比较
  • 5 使用User Data安装apache
  • 6 EBS块存储
  • 7 EBS快照
  • 8 EBS与实例存储对比
  • 9 EFS网络文件系统存储
  • 10 EC2放置群组
  • 11 S3、EBS、EFS对比

1 EC2实例基础以及创建一个Linux虚拟机

1.1 AWS EC2 云服务器

  • 概念:一项可以根据业务需要快速调整计算容量的云服务,每台虚拟机称为一个实例

  • 类型:根据不同硬件配置的虚拟机分类成为实例类型。例如t和m是常规类型、c是计算优化、r x 和 z是内存优化、d h 和 i是存储优化、f g 和 p是计算优化

  • 限制:每个账户最多可以运行20个同类型的实例,如果需要提高限制,需要联系aws

  • 购买选项

    • 按需实例:该方式收费是按秒计算的,而且没有长期的合同以及预付款
      • 特点:按秒收费,用多少收费多少;EC2实例可以根据业务需求实时增加或减少规模;不会有昂贵的初始投资成本;适合用来部署有突发性,爆发性流量的应用程序,比如双11;适合用来测试和开发新的应用程序
    • 预留/计划实例:前期支付一次性的费用,可以预留一个实例/不足要7*24小时使用实例,而是规划在某个时间段去使用实例
      • 特点:更低的每小时运行成本, 1年的合同可以获得40%左右的折扣,3年的合同可以获得60%的折扣;买断了一定的计算资源,不会出现AWS计算资源不足而无法创建EC2的情况;费用在合同期内是固定的,因此费用可预期;适合需要长期运行、稳定的、可预估的应用程序
    • spot实例:以拍卖的形式出售实例,但是当aws需要该实例时,用户就必须将该实例关闭
      • 特点:每个小时都会变化,依据是竞价实力的供需关系;可以非常有效地降低运行EC2实例的成本(特别对于有大数量实例需求的情况下);在其上安装的应用程序随时可以中断,也就是数据和任务处理结果都需要保存在外部存储上;实例运行开始的时间没有太多要求
    • 专用主机/实例:针对对安全性或性能要求较高的用户,会预整台物理机或使用单一主机的实例
  • EC2实例的运行平台:
    目前,EC2上可以运行基于Windows和Linux操作系统的实例,不支持任何非X86架构的实例。另外AWS还发布了一种新型的实例,可以让你操作AWS的裸机(不含任何操作系统),因此方便你在上面直接安装类似VMware Esx的虚拟操作系统。

1.2 创建Linux虚拟机

  • 点击进入EC2界面,点击运行新实例
    EC2实例,EBS及EFS存储_第1张图片

  • 选择一个AMI镜像(注意与iam区分),选择带有free标识的以减免不必要的费用,选择第一个,点击select
    EC2实例,EBS及EFS存储_第2张图片

  • 选择类型,next
    EC2实例,EBS及EFS存储_第3张图片

  • 会进入配置实例的细节,第一个框是生成几个虚拟机1即可,其他都默认,点击下一步
    EC2实例,EBS及EFS存储_第4张图片

  • 进入存储配置,全部默认下一步
    EC2实例,EBS及EFS存储_第5张图片

  • 点击add tags 输入 Name —自定义名,下一步
    EC2实例,EBS及EFS存储_第6张图片

  • 进入防火墙配置,创建新的规则,在security group name处输入SSH ,表示只开放ssh服务,下一步
    EC2实例,EBS及EFS存储_第7张图片

  • 点击启动,在弹出的窗口选择create a new key,自定义名称,点击download key,将key保存下来,点击创建实例即可
    EC2实例,EBS及EFS存储_第8张图片
    EC2实例,EBS及EFS存储_第9张图片

  • 点击创建完成后界面的处生成的虚拟机id,就可以看到虚拟机的初始化过程,初始化完成后可以看到后面自动分配了ip地址
    EC2实例,EBS及EFS存储_第10张图片
    EC2实例,EBS及EFS存储_第11张图片

  • 连接到该虚拟机的方式:

    • 安装putty去连接(要将之前保存下来的key导入并保存)

      • 使用私钥格式转换工具puttygen(将.pem证书文件转换为.ppk文件)
        EC2实例,EBS及EFS存储_第12张图片
        EC2实例,EBS及EFS存储_第13张图片
      • 使用工具putty将.ppk文件导入
        EC2实例,EBS及EFS存储_第14张图片
        EC2实例,EBS及EFS存储_第15张图片
        EC2实例,EBS及EFS存储_第16张图片
        EC2实例,EBS及EFS存储_第17张图片
    • 使用ssh username@ip -i .pem秘钥文件 (注意要保证key已经提前加载到到当前主机了,有了这个key,就相当于有密码了,才能去连接)

注意:也可以创建一个windows实例,创建步骤同上面一致,创建完成后,点击实例上面的连接选项。在连接方法处选择一个独立的RDP客户端,然后在连接信息处点击获取密码。打开远程桌面连接,将链接信息处的公有DNS输入后,再在凭据处输入用户名及密码即可连接到windows实例

2 将IAM Role赋予给EC2实例

2.1 给IAM Role授予S3管理权限(使用有s3权限的role赋予实例权限)

  • 实验前准备,创建两台EC2实例

  • 连接到第一台vm,注意AMI镜像中提前安装了aws命令行工具,aws --version,查看一下安装的版本;此时如果输入aws s3 ls,是无法查看目前的s3的,因为没有权限;要先进行配置aws configure,此处不输入用户名和密码,前面说了这种方式并不安全,只需要再第三个区域处,配置区域即可,这个区域名来自于地址栏处的region=“”处,找到并复制即可,其他直接回车默认。
    EC2实例,EBS及EFS存储_第18张图片

  • 勾选该实例,点击actions,选择下拉菜单处的安全中进入 attach/replace IAM role ,进入后点击 create new IAM role,进入后点击 create role,选择EC2,进入下一步
    EC2实例,EBS及EFS存储_第19张图片
    EC2实例,EBS及EFS存储_第20张图片
    EC2实例,EBS及EFS存储_第21张图片

  • 在这里授予该用户s3的权限,在进入页面的搜索框处输入S3,查找S3相关权限,选择第二个,下一步
    EC2实例,EBS及EFS存储_第22张图片

  • 在key处输入 Name,value处输入自定义名称,下一步
    EC2实例,EBS及EFS存储_第23张图片

  • 输入一个role的名称(自定义,与上面的不一样),完成后点击create即可,此时就可以按到成功创建了IAM用户
    EC2实例,EBS及EFS存储_第24张图片
    EC2实例,EBS及EFS存储_第25张图片

  • 此时再回到 attach/replace IAM role 页面处,在IAM role的框后点击刷新按钮,然后下拉菜单就可以看到刚才创建的用户,选中然后点击apply即可
    EC2实例,EBS及EFS存储_第26张图片

  • 此时再进入命令行,输入 aws s3 ls ,就可以看到该区域下所包含的bucket,aws [s3] --help可以查看aws命令相关帮助
    在这里插入图片描述

  • 创建一个新的bucket,aws s3 mb s3://自定义名 ,其中mb=makebucket,此时输入 aws s3 ls查看
    在这里插入图片描述

  • 创建一个文件,将该文件上传到bucket中,echo "hello word" > hello.txtaws s3 cp hello.txt s3://之前的自定义名aws s3 ls s3://之前的自定义名此时就可以看到上传的文件
    EC2实例,EBS及EFS存储_第27张图片

  • 注意这种方法不需要将密码等信息铭文存储到本地,提高了安全性

2.2 给IAM Role授予EC2管理权限(使用有EC2管理权限的role赋予实例权限)

  • 同上面的创建步骤相同,只不过在授予用户权限时,输入ec2,找到 EC2FullAccess,选中即可
    EC2实例,EBS及EFS存储_第28张图片

  • 在创建成功并使用该角色登录后,打开控制台,此时若再输入 aws s3 ls s3://之前的自定义名 就会报错,因为此时已经不是s3权限的用户了
    在这里插入图片描述

  • 可以使用aws ec2 describe-instances help查看该命令的详细用法,然后在里面找到查看实例情况(id、AMI)的命令,复制后查看即可

  • 还可以使用aws ec2 terminate-instance --instance-ids 写要关闭实例的id,此时就可将某一台实例关闭

3 安全组

  • 概念:实例级别的虚拟防火墙
  • 安全组是允许关联到一台EC2上的,而且只有关联到了EC2才会有效
  • 安全组可以用来控制出站以及入站流量,默认允许所有出站流量
  • 安全组只支持“允许”规则,也就是说只有被允许的才能通过,没有设置拒绝规则这么一说
  • 一个实例可以对应多个安全组,反之亦然
  • 出站返回流量自动被允许(返回时声明 port xxxx[随机端口])
  • 实验:
    • 目前有一个在运行的实例,勾选该实例后就可以看到下面出现的有关信息,在安全处可以看到有一个security groups ,点击其后面的链接进入,就可以看到该安全组的相关信息,可以在下面看到他的进出流量策略情况
    • 在inbond处点击edit,将策略都删除并保存,此时使用客户端去连接该实例,会显示timed out ,无法连接
    • 在点击edit,将之前的ssh规则添加回来并保存,选择ssh ,anywhere。此时再去连接即可成功
    • 还可以把一个实例的安全组,当做源添加到另一个实例的规则中。
      • 首先要创建另一个实例,在创建实例的第六步中有一处security group name,需要写入自定义名称,在下面的策略处,选择custom,选择之前的vm1,表示将vm1的安全组作为源
      • 此时,因为vm2只允许从vm1连接,所以使用vm1去连接,注意提前导入key,连接时使用内网ip

4 共有IP,私有IP以及Elastic IP(弹性ip)的比较

  • 在每个实例中至少会包含有两个地址,也就是共有ip和私有ip。而公有ip指可以通过互联网访问的ipv4地址,私有ip则相反
  • 弹性ip地址是分配给aws用户的公有静态ip(注意:弹性ip如果没有和正在运行的实例关联,就会被强制收取小额费用)
  • 实验
    • 进入EC2界面,目前有一个在运行的实例,选中它就可以在下面看到该实例的相关信息,可以看到它自动被分配了一个ipv4的公有地址以及私有地址
      EC2实例,EBS及EFS存储_第29张图片

    • 在左侧导航栏处,可以找到一个 Elastc IPs,点击进入,点击 Allocate new address,在点击Allocate ,此时就会自动创建一个弹性ip,点击close
      EC2实例,EBS及EFS存储_第30张图片
      EC2实例,EBS及EFS存储_第31张图片

    • 在close后弹出的界面中点击actions–> associate address,在弹出的页面中instance处,选择一台实例,其他不做配置,点击associate 即可,点击close
      EC2实例,EBS及EFS存储_第32张图片
      EC2实例,EBS及EFS存储_第33张图片

    • 在左侧导航栏找到instance,返回实例处,次数选中实例,可以在下面看到其公有ip已经发生改变(此时该实例就拥有了一个静态的地址,之前的地址是动态分配的,每次重启就会再重新分配一个ip)
      EC2实例,EBS及EFS存储_第34张图片

    • 在默认情况下,可能一台实例需要两个ip地址,此时就需要再添加一块网卡。可以在左侧导航栏处找到 Network interface 点击进入(注意提前在实例页面找到该实例所处的域,也就是表头的 availability zone),进入后点击create network interface,在进入后页面处的description处做出描述即可,也相当于给第二块虚拟网卡做tag,在subnet处选择刚才看到的实例所在的域。在ip处选择自动分配ip,在最下面的安全组中勾选有ssh的策略,点击create
      EC2实例,EBS及EFS存储_第35张图片
      EC2实例,EBS及EFS存储_第36张图片
      EC2实例,EBS及EFS存储_第37张图片

    • 选中第二块虚拟网卡,点击actions–>attach ,然后选择之前的实例即可。此时再回到instances,选中该实例就可以看到它有两个私有地址
      EC2实例,EBS及EFS存储_第38张图片
      EC2实例,EBS及EFS存储_第39张图片
      EC2实例,EBS及EFS存储_第40张图片

    • 再创建一个新的弹性ip,然后将其分配给该虚拟网卡。在创建弹性ip时前面的步骤一致,在actions–> associate address后,选择resource type时,选择network instance ,在interface处选择刚才创建的网卡,在ip处将生成的ip分配,点击associate即可
      EC2实例,EBS及EFS存储_第41张图片

    • 回到instance处,查看实例信息,就可以看到该实例有两个私有ip,此时也包含两个公有ip
      EC2实例,EBS及EFS存储_第42张图片

    • 注意:当做完实验后,为了避免产生不必要的费用,可以在左侧导航栏的 Elastc IPs 处,将所有不需要的ip选中,然后点击 actions–> disassociate address,在取消关联后,再选中点击 actions–> release address ,将选中的ip释放即可
      EC2实例,EBS及EFS存储_第43张图片
      EC2实例,EBS及EFS存储_第44张图片

5 使用User Data安装apache

  • Meta-data(元数据):即关于实例的数据,可用于配置和管理运行的实例
  • user-data(用户数据):用户数据在实例启动时由用户定义。我们可以将配置脚本作为用户数据传递给实例,在启动或重启时执行;用户数据shell脚本必须以“#!”开始,脚本由root用户执行;用户数据脚本执行后会复制到/var/lib/cloud/instances/目录,确保在用该实例创建AMI前删除脚本
  • 使用本地链路地址可以查看用户数据或元数据,需要注意的是这些地址只能在该设备本地使用(注意:169.254.169.254地址为本地链路地址)
    • http://169.254.169.254/latest/meta-data/
    • http://169.254.169.254/latest/user-data/
    • http://169.254.169.254/latest/dynamic/
  • 实验
    • 首先准备一个安装apache的脚本
      EC2实例,EBS及EFS存储_第45张图片

    • 进入EC2的管理界面,登录实例,使用curl http://169.254.169.254/latest/meta-data/,查看元数据(我的理解就是事实变量),使用 curl http://169.254.169.254/latest/meta-data/hostname,就可以查看主机名
      EC2实例,EBS及EFS存储_第46张图片
      EC2实例,EBS及EFS存储_第47张图片

    • 使用http://169.254.169.254/latest/user-data/,查看用户数据,如果在创建实例时,在advanced details处没有输入过数据,就会返回404找不到,也就是没有用户数据。所以我们再重新创建一个实例,在advanced details处将上面的脚本内容输入,其他步骤不变
      EC2实例,EBS及EFS存储_第48张图片
      EC2实例,EBS及EFS存储_第49张图片

    • 可以查看到系统的运行日志。此时可以查看apache是否安装成功systemctl status httpd,可以输入curl localhost,检查默认发布页面。
      EC2实例,EBS及EFS存储_第50张图片
      EC2实例,EBS及EFS存储_第51张图片
      EC2实例,EBS及EFS存储_第52张图片

    • 使用浏览器去访问该主机的ip,此时是不成功的,因为没有开启80端口。在实例的详细信息处跳转至安全组,在inbound处点击edit,添加http,此时再从浏览器访问ip就可以访问从脚本中输入到发布页面的内容
      EC2实例,EBS及EFS存储_第53张图片
      EC2实例,EBS及EFS存储_第54张图片

6 EBS块存储

  • EBS:基于块的存储卷,它是和EC2配合使用的基于块的卷,是未格式化的裸设备,可以将它看做一个硬盘分配给EC2主机去使用。同时它是高可用及高可靠性的存储设备,适用于主要存储。它可用于创建文件系统并通过操作系统挂载。注意每个卷每次只能附加给一个在同个区域的实例。它支持某个时间点的快照并存在S3上,同时它提供多种不同性能类型的卷

  • 特点:

    • 高可用、可靠、持续性的块存储,EBS可以依附到一个正在运行的EC2实例上【就像linux虚拟机不关机添加一块硬盘】
    • 如果你的EC2实例需要使用数据库或者文件系统,那么建议使用EBS作为首选的存储设备
    • EBS卷的存活可以脱离EC2实例的存活状态。也就是说在终止一个实例的时候,你可以选择保留该实例所绑定的EBS卷
    • EBS卷可以被加密,如果进行了加密那么它存有的所有已有数据,传输的数据,以及制造的镜像都会被加密
    • EBS卷可以通过快照(Snapshot)来进行(增量)备份,这个快照会保存在S3 (Simple Storage System)上
    • EBS卷创建的时候已经固定了可用区,并且只能给该可用区的实例使用。如果需要在其他可用区使用该EBS,那么可以创建快照,并且使用该快照创建一个在其他可用区的新的EBS卷
  • 使用情景:可以使用多个EBS卷创建RAID 0设备来增加资源利用率,提高性能(由于aws已经做了底层硬件保护,所以就可以充分利用raid 0这样的磁盘阵列来大幅提升读写性能而不去在意设备损坏所引起的数据丢失)
    EC2实例,EBS及EFS存储_第55张图片

  • EBS卷类型(常考)
    在这里插入图片描述
    EC2实例,EBS及EFS存储_第56张图片

  • 注意:IOPS是指每秒钟的io操作,可以看做是某个时间段通过的车流量

    • 假定 V = 卷大小,I = I/O 大小,R = I/O 速率,T = 吞吐量
    • T = VIR IOPS=VI
  • 实验:

    • 点击左侧导航栏处的volumes,此时就可以看到EC2的根卷,点击 create volume 创建新的卷(注意创建新卷前在表头上查看根卷是处于哪个域的),类型依旧选择gp2,大小输入10G,AV Zone选择根卷相同的区域即可
      EC2实例,EBS及EFS存储_第57张图片
      EC2实例,EBS及EFS存储_第58张图片

    • 创建完成后,点击close,刷新volumes界面,可以看到出现两个卷,选中刚才新建的卷,点击actions–>attach volume,在进入的窗口处选择只要加入卷的实例即可
      EC2实例,EBS及EFS存储_第59张图片
      EC2实例,EBS及EFS存储_第60张图片

    • 登录进入该实例,使用lsblk命令查看卷,df -h查看所有卷的挂载点,可以使用file 挂载在根下的设备名查看文件类型,可以加上 -s 参数看到其文件系统是XFS类型的文件系统
      EC2实例,EBS及EFS存储_第61张图片

    • 给新加的卷格式化文件系统’mkfs -l xfs /dev/xvdf’,mkdir /data,mount /dev/xvdf /data,进行挂载,df -h查看成功即可

    • 扩充根卷大小

      • 进入左侧导航栏的volumes,选中根卷,actions–> modifty volume,在弹出的窗口中修改大小即可。此时再进入实例输入lsblk,此时可以看到它整体卷的大小已经是12G,但是其挂载的根卷依旧是8G,此时需要挂载文件系统也增加到12G
        EC2实例,EBS及EFS存储_第62张图片
        EC2实例,EBS及EFS存储_第63张图片
        EC2实例,EBS及EFS存储_第64张图片

      • 输入growpart /dev/xvda 1即可,此时再去lsblk查看,挂载文件系统也是12G;但是输入df -h,发现挂载的点显示的大小依旧是8G,可以输入xfs_growfs -d /,再查看,其挂载大小变为12G
        EC2实例,EBS及EFS存储_第65张图片
        EC2实例,EBS及EFS存储_第66张图片
        EC2实例,EBS及EFS存储_第67张图片

      • 实验结束后,在系统将新卷的挂载umount,然后进入volume界面,选中该卷,actions–> force detach volume,然后再actions–>delete volume即可。(避免一些不必要的费用产生)
        EC2实例,EBS及EFS存储_第68张图片
        EC2实例,EBS及EFS存储_第69张图片

7 EBS快照

  • 概念:快照就是EBS卷在某个时刻的状态,可以实现使用快照把EBS卷备份到上s3上;快照是增量备份,就是说最近一次快照备份之后更改的数据才会被备份起来;可以使用快照来创建一个EBS卷,这个新卷是原卷在快照当时的完全复制(可以用于迁移等操作)

  • 特点:

    • 备份的快照将会保存在S3
    • 可以在EC2实例运行的状态下进行EBS的快照操作,但会给EC2的系统带来一定延迟(CPU,内存利用率会变高)。最佳实践是将EC2实例停止,然后将EBS从EC2上卸载下来,进行快照操作
    • 加密的EBS卷在创建快照后,该快照也会被自动加密。而通过加密快照创建的EBS也是自动加密的
    • 在复制未加密的快照时,你可以在复制过程中对其加密
    • 如果有共享数据盘的需求,请使用EFS
    • 根EBS卷默认是不能进行加密的,但可以使用第三方的加密工具对其进行加密。
    • 除了根磁盘外的其他卷是可以加密的
  • 创建快照的过程:当做出第一次快照后,其使用了10G,随着时间的变化,其中10G中有4G发生变化。再次快照成B,此时他会保存变化的那4G,而剩下的6G会沿用之前快照时那一部分,实际上快照A和B加起来一共占用了14G,以此类推
    EC2实例,EBS及EFS存储_第70张图片

  • 删除快照的过程:
    EC2实例,EBS及EFS存储_第71张图片

  • 复制快照:通过快照的复制可以实现迁移、地理扩展、灾难扩展、加密、数据保留和审计要求等场景

  • 卷/镜像迁移的步骤:

    • 创建卷的快照
    • 将快照复制到另一AZ或者区域
    • 使用该快照创建卷/EC2实例
  • 实验:

    • 进入EC2界面,创建一台新的实例,在第三步advanced details处写入安装apahce的脚本;第六步时在安全组处选择第二个“选择一个已经存在的安全组”,开放80和22端口,注意区域的选择

    • 当该实例创建完成后,找到其公有ip,复制到浏览器中进行访问,可以看到成功访问apahce的发布页面

    • 在左侧导航栏进入快照,点击创建快照,在出现的页面中输入描述以及key–name,value–自定义名称,点击创建
      EC2实例,EBS及EFS存储_第72张图片

    • 点击左侧导航栏的snapshot,进入后可以看到刚才创建的快照,点击actions就可以在里面对快照进行一系列操作。例如actions–>copy 此时可以选择另一个区域,点击copy,完成后在右上角将区域切换到刚才所选中的复制区域,进入后就可以看到快照被复制过去。可以在该区域将快照做成一个镜像(在actions中),完成后在左侧导航栏找到AMIs,此时就可以看到该镜像。镜像创建好后,又可以用于创建实例,创建完成后,在浏览器输入该ip地址访问,就可以看到apache的index.html发布页面
      EC2实例,EBS及EFS存储_第73张图片
      EC2实例,EBS及EFS存储_第74张图片
      EC2实例,EBS及EFS存储_第75张图片
      EC2实例,EBS及EFS存储_第76张图片
      EC2实例,EBS及EFS存储_第77张图片
      EC2实例,EBS及EFS存储_第78张图片
      EC2实例,EBS及EFS存储_第79张图片
      EC2实例,EBS及EFS存储_第80张图片
      EC2实例,EBS及EFS存储_第81张图片
      EC2实例,EBS及EFS存储_第82张图片

    • 完成后,需要再actions–>instance static–>terminate,然后点击yes;在左侧导航栏点击AMIs,点击actions–>deregister,将其去注册;在左侧导航栏点击snapshots,actions–>delete。清理完实验环境后,再将快照删除
      EC2实例,EBS及EFS存储_第83张图片

8 EBS与实例存储对比

  • EBS是持久性、高可用的块存储,而实例存储是临时性块存储

  • 实例存储位于物理主机上附加的硬盘,而EBS是独立于物理主机的。【实例存储就相当于虚拟机里面存的东西,只要虚拟机在,里面存储的东西就在,一旦虚拟机删除那么其中存储的东西也将被删除】

  • EC2实例存储(Instance store volumes)是一种短暂性的存储,一旦您停止或者终止您的EC2实例,这个存储内的数据将永久消失

  • EBS存储(Amazon EBS volumes)是一种持续性的存储,不管EC2实例是什么状态,你都可以保留EBS存储内的数据。这种类型的存储对于进行数据盘的迁移非常方便,使用场景也比较多。
    EC2实例,EBS及EFS存储_第84张图片

  • 实例存储是理想的临时存储解决方案,适用于存储需要经常更新的信息,比如缓存、缓冲、临时数据或者从一组实例上复制的数据,如web服务器的负载均衡池;实例存储的虚拟设备为 ephemeral[0-23]

  • 实例存储的生命周期:实例存储只能在某些实例启动时使用;该存储方式不能从一台EC2实例分离并附加到另一个实例;当EC2实例重启时,实力存储的数据时可以保留的,但是当实例stop或terminate(终止、结束),实例存储的数据会丢失,而EBS是可以选择数据保留或删除

  • 实验:

    • 进入EC2界面,创建一台新的实例,AMI仍然选之前的,而在第二步选择实例类型时,需要选择 1x75(SSD);在第四步时可以看到根卷依旧是EBS类型的,但下面多了一个ephemeral0的卷,到此取消,不做创建
      在这里插入图片描述
    • 如果想使得根卷就是实例存储的类型,需要在第一步选择镜像时,点击左侧导航栏的 community AMIs,在最下面的 root device type 处选择实例存储,然后选择第一个镜像就可以;第二步是依旧选择上面说过的 1x75(SSD);此时进入到第四步就可以看到根卷是实例存储。注意,这里依旧没有创建,只是说明还有实例存储这种解决方案

9 EFS网络文件系统存储

  • 概念:EFS提供简单的可扩展文件存储以供与EC2配合使用,目前它仅能供AWS或者本地的Linux主机使用;EFS支持nfs4的版本;它可以在多个Av zone里面运行;多个EC2实例可以同时访问一个EFS文件系统(和EBS不同);EFS提供两种存储类别:标准和非频繁访问
  • 特点:
    • 它是具有弹性的,会根据文件总量的大小自动伸缩,即它能永远满足你的需求
    • 可以在多个EC2实例上使用同样的一个EFS文件系统,以达到共享通用数据的目的
    • 使用EFS,你只需要为你使用的存储空间付费,没有预支费用
    • 可以有高达PB级别的存储
    • 同一时间能支持上千个NFS连接
    • EFS的数据会存储在一个AWS区域的多个可用区内
    • 读写一致性
  • 实验:
    • 首先进入EC2界面,在左侧导航栏处找到 security groups --> create security groups ,在弹出的窗口处输入自定义名和描述,点击左边的add rule,在type处的下拉菜单中选择nfs,在source处选择custom,后面要选择ssh的安全组,create
      EC2实例,EBS及EFS存储_第85张图片

    • 然后在services处输入efs,并进入efs界面,点击create file system
      EC2实例,EBS及EFS存储_第86张图片
      EC2实例,EBS及EFS存储_第87张图片
      EC2实例,EBS及EFS存储_第88张图片
      EC2实例,EBS及EFS存储_第89张图片

    • 进入EC2界面,创建两台EC2实例,注意两个实例放置于不同的区域;在第六步安全组时,选择ssh即可
      在这里插入图片描述

    • 连接上两台实例,输入sudo -s切换到root用户,再输入yum install -y amazon-efs-utils , mkdir /efs , mount -t efs 一串字符串(所创建efs的id):/ /efs , 此时使用 df -T就可以查看是否挂载成功
      EC2实例,EBS及EFS存储_第90张图片
      在这里插入图片描述

    • 此时在一台实例的 /efs 目录下创建一个文件,去另一台实例查看,该文件也存在。也就说明两个实例访问的是同一个efs的文件系统
      在这里插入图片描述
      在这里插入图片描述

    • 注意做完实验后清理实验环境,在efs界面,勾选efs后,点击actions,选择delete(需要将它的id输入以确认删除);在ec2界面,在左侧导航栏,找到安全组,将不需要的(efs)安全组删除;将两个实例 terminate

10 EC2放置群组

  • EC2服务总是尝试把实例分配到不同的底层硬件上,来最小化硬件故障带来的影响。而置放群组(PG)就是用来影响如何放置一组相互依赖的实例,以满足不同负载的要求的功能

  • 分类【下面这三种类型可以理解为置放群组的三种不同分配方法(同分异构)】:

    • 集群置放群组(cluster placement group):基于一个AV zone里的逻辑实例组,组里的所有节点以10G/s的宽带互联,适用于有低延迟和高宽带网络要求的应用。集群置放群组是将启动的EC2实例尽量放置在一起——同一机柜或者相邻机柜,减少实例间的物理距离,一般用于从低网络延迟和/或高网络吞吐量中受益的应用程序,以及在大部分网络流量处于该组中的实例之间的情况下,建议使用集群置放群组。
      EC2实例,EBS及EFS存储_第91张图片

    • 分区置放群组(partition placement group),Amazon EC2 将每个群组划分为多个逻辑段(称为“分区”)。Amazon EC2 确保置放群组中的每个分区具有自己的一组机架。每个机架具有自己的网络和电源。置放群组中的任何两个分区将不会分享相同的机架,从而让您可以在您的应用程序中隔离硬件故障的影响。在一个AV zone里面最多有7个分区,一个分区PG可以拥有在同个地区不同AZ的分区;每个分区使用相同或类似的实例类型,适用于大型分布式和复杂型的负载类型

    • 下图是单个可用区中的分区置放群组简单的直观表示。它显示了放入到一个分区置放群组的实例,该置放群组具有三个分区 — 分区 1、分区 2 和 分区 3。每个分区均包含多个实例。一个分区中的实例不与其他分区中的实例共享机架,这使您可以将单一硬件故障的影响限定在相关的分区内。
      EC2实例,EBS及EFS存储_第92张图片

    • 分布置放群组(spread placement group):组里面的每个实例使用不同的机柜,网络和电源;组可以分布到一个地区的不同AZ,每群组每AZ最多7个运行实例;适用于混合不同的实例,以处理不同的应用类型

    • 建议在具有少量应单独放置的重要实例的应用程序中使用分布置放群组。通过在分布置放群组中启动实例,可以降低在实例具有相同机架时同时发生故障的风险。分布置放群组可以访问不同的机架,因而适合混用不同类型的实例或随着时间的推移启动实例。
      EC2实例,EBS及EFS存储_第93张图片

  • 实验:

    • 进入EC2的管理界面,在左侧导航栏处有一个 placement groups 点击进入。点击 create placement group 输入自定义名称,strategy处选择 spread ,点击create即可;可以再创建一个 partition类型的,在下面的数量处制定3个,点击create接口
      EC2实例,EBS及EFS存储_第94张图片
      EC2实例,EBS及EFS存储_第95张图片
      EC2实例,EBS及EFS存储_第96张图片
      EC2实例,EBS及EFS存储_第97张图片

    • 此时就可以向放置群组里面放入实例了,创建3个实例,可以在第三步的 number of instance 处输入3;在下面有一个 placement group 勾选 添加实例到放置群组,在 placement group name 处勾选 添加已经存在的放置群组,然后先选择放入partition处,其他默认即可。
      EC2实例,EBS及EFS存储_第98张图片

    • 选中其中一个实例,查看其详细信息,可以看到下面的 placement group 处,它被分配到了哪一个区中
      EC2实例,EBS及EFS存储_第99张图片

    • 现在如果想要更改其中某一台实例的置放群组类型,要使用命令行的形式进行,首先需要将要换分区的实例停掉,在actions–>instance status --> stop,现在需要选择其中另外一台实例对其新建role,这个role的权限就是可以对这些实例操作的role , actions -->安全 --> attach/replace IAM role,create new role ,create role ,在进入的界面中选择 EC2,next,在进入的页面中的搜索中输入 ec2 来寻找可以赋予ec2管理权限的 fullaccess,next ,后面都是命名即可。然后将这个role指定给实例
      EC2实例,EBS及EFS存储_第100张图片
      EC2实例,EBS及EFS存储_第101张图片
      EC2实例,EBS及EFS存储_第102张图片
      EC2实例,EBS及EFS存储_第103张图片
      EC2实例,EBS及EFS存储_第104张图片

    • 登录到赋予ec2权限的实例,首先输入 aws configure 在第三行输入它所在的区域,进行简单的配置。将stop状态的实例id(选中该实例查看详细信息里就可以找到)复制 。 aws ec2 describe-instances --instance-id 实例id可以查看该实例的事实变量。aws ec2 modify-instance-placement --instance-id 实例id --group-name spread的置放群组名 此时就可以将原本处于partition的实例改变到spread处。去实例去查询,可以看到其置放群组确实发生改变。
      在这里插入图片描述
      EC2实例,EBS及EFS存储_第105张图片
      在这里插入图片描述
      EC2实例,EBS及EFS存储_第106张图片

11 S3、EBS、EFS对比

EC2实例,EBS及EFS存储_第107张图片
EC2实例,EBS及EFS存储_第108张图片
EC2实例,EBS及EFS存储_第109张图片

你可能感兴趣的:(AWS,aws,云计算,运维,服务器)