aws(学习笔记第十课) 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数据,AWS实例存储

aws(学习笔记第十课)

  • AWS的EBS如何备份(snapshot)以及使用snapshotAWS实例存储

学习内容:

  • AWS的EBS如何备份
  • AWS实例存储
  • EBS和实例存储的不足

1. 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数据

  1. 使用EBS的快照功能
    EBS生成快照,能够对数据进行备份。需要知道volume id,之后使用volume id对该volume进行拍摄快照(snapshot)。下图是整个EBS练习的步骤,其中:
    • 步骤1到4是第九课的练习内容
    • 步骤5是这次的练习内容。
  2. 进行备份练习
    • 查询建立的volume

      shell 复制代码
      aws ec2 --region ap-northeast-1 describe-volumes --filters "Name=size,Values=5" --query "Volumes[].VolumeId" --output text

      注意,在这里需要指定region

    • 建立snapshot快照

      shell 复制代码
      aws --region ap-northeast-1 ec2 create-snapshot --volume-id vol-026a77a7e0b5a86ae --query "SnapshotId" --output text


      这样就建立好了当前的snapshot
      在快照里面,touch了一个测试文件。

      shell 复制代码
      [root@ip-172-31-1-17 volume]# cat hello.txt
      hello,snapshot;
      [root@ip-172-31-1-17 volume]#
    • 利用snapshot进行还原
      恢复数据,必须在EC2创建的时候,利用snapshot创建一个新的EBS卷。

    • 进入新创建的EC2查看基于snapshot创建的volume

    • 对新的volume进行mount
      注意,这里已经进行了文件系统的创建,不需要在执行mkfs命令

      shell 复制代码
      mkdir /mnt/volume
      mount /dev/xvdf /mnt/volume
    • 之后查看snapshot上的文件
      发现文件都是存在,都已经恢复了。
      注意,删除环境的时候,EBS的卷,已经mount的部分,需要执行umount之后,再进行EC2停止。

2. AWS实例存储

  1. 实例存储和EBS的区别
    实例存储和EBS相反,它不是独立EC2用户虚拟服务器的,它依存于EC2
  2. 使用Cloudformation创建实例存储
    • Cloudformation代码

      json 复制代码
      {
      	"AWSTemplateFormatVersion": "2010-09-09",
      	"Description": "(Instance Store)",
      	"Parameters": {
      		"KeyName": {
      			"Description": "Key Pair name",
      			"Type": "AWS::EC2::KeyPair::KeyName",
      			"Default": "mykey"
      		},
      		"VPC": {
      			"Description": "Just select the one and only default VPC",
      			"Type": "AWS::EC2::VPC::Id"
      		},
      		"Subnet": {
      			"Description": "Just select one of the available subnets",
      			"Type": "AWS::EC2::Subnet::Id"
      		}
      	},
      	"Mappings": {
      		"EC2RegionMap": {
      			"ap-northeast-1": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-cbf90ecb"},
      			"ap-southeast-1": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-68d8e93a"},
      			"ap-southeast-2": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-fd9cecc7"},
      			"eu-central-1": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-a8221fb5"},
      			"eu-west-1": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-a10897d6"},
      			"sa-east-1": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-b52890a8"},
      			"us-east-1": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-1ecae776"},
      			"us-west-1": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-d114f295"},
      			"us-west-2": {"AmazonLinuxAMIHVMEBSBacked64bit": "ami-e7527ed7"}
      		}
      	},
      	"Resources": {
      		"SecurityGroup": {
      			"Type": "AWS::EC2::SecurityGroup",
      			"Properties": {
      				"GroupDescription": "My security group",
      				"VpcId": {"Ref": "VPC"},
      				"SecurityGroupIngress": [{
      					"CidrIp": "0.0.0.0/0",
      					"FromPort": 22,
      					"IpProtocol": "tcp",
      					"ToPort": 22
      				}]
      			}
      		},
      		"Server": {
      			"Type": "AWS::EC2::Instance",
      			"Properties": {
      				"ImageId": {"Fn::FindInMap": ["EC2RegionMap", {"Ref": "AWS::Region"}, "AmazonLinuxAMIHVMEBSBacked64bit"]},
      				"InstanceType": "m3.medium",
      				"KeyName": {"Ref": "KeyName"},
      				"SecurityGroupIds": [{"Ref": "SecurityGroup"}],
      				"SubnetId": {"Ref": "Subnet"},
      				"BlockDeviceMappings": [{
      					"DeviceName": "/dev/xvda",
      					"Ebs": {
      						"VolumeSize": "8",
      						"VolumeType": "gp2"
      					}
      				}, {
      					"DeviceName": "/dev/xvdb",
      					"VirtualName": "ephemeral0"
      				}]
      			}
      		}
      	},
      	"Outputs": {
      		"PublicName": {
      			"Value": {"Fn::GetAtt": ["Server", "PublicDnsName"]},
      			"Description": "Public name (connect via SSH as user ec2-user)"
      		}
      	}
      }
    • 代码分析,两块实例存储的磁盘(disk

    • EC2上执行fdisk -l查看磁盘状况

      注意,Cloudformation中的"VirtualName": "ephemeral0"就是第二块diskmount point名字/media/ephemeral0

    • EC2上查看卷volume的状况
      可以看到EBS的卷volume这里,并没有多出来定义卷volume,因为定义的/dev/xvdb这里的实例存储就单单是一个实例存储,并不是独立的卷volume,所以不会出现在这里。

3. EBS和实例存储的不足

  • EBS和实例存储
    EBSEC2独立存在,EC2被删除了之后,仍然可以存在,但是不足之处是不能由多个EC2同时使用。不能同时进行文件共享。
    实例存储不能够独立与EC2存在,EC2被删除了之后,就会消失,不是独立存在的卷volume

那么问题来了,如何利用块存储,进行EC2之间的文件共享,让EC2等实例件共享文件呢,下次继续练习amazon Elastic File System,即EFS

相关推荐
无敌最俊朗@10 分钟前
unity3d————屏幕坐标,GUI坐标,世界坐标的基础注意点
开发语言·学习·unity·c#·游戏引擎
新手小白勇闯新世界29 分钟前
论文阅读-用于图像识别的深度残差学习
论文阅读·人工智能·深度学习·学习·计算机视觉
麻衣带我去上学38 分钟前
Spring源码学习(五):Spring AOP
java·学习·spring
chan_lay1 小时前
图论导引 - 目录、引言、第一章 - 11/05
笔记·图论
Mephisto.java1 小时前
【大数据学习 | kafka】producer之拦截器,序列化器与分区器
大数据·学习·kafka
AI视觉网奇1 小时前
nvlink 训练笔记
pytorch·笔记·深度学习
亦枫Leonlew1 小时前
三维测量与建模笔记 - 3.1 相机标定基本概念
笔记·三维重建·1024程序员节·射影几何
瑞金彭于晏2 小时前
手表定律是什么?超详细+举例子+通俗易懂版!
笔记
爱做ppt的阿伟3 小时前
11.5学习swing
学习
Python大数据分析@4 小时前
学习python中的pandas有没有好的教程推荐?
python·学习·pandas