aws(学习笔记第十课) 对AWS的EBS如何备份(snapshot)以及使用snapshot恢复数据,AWS实例存储
aws(学习笔记第十课)
- 对
AWS的EBS
如何备份(snapshot
)以及使用snapshot
,AWS
实例存储
学习内容:
- 对
AWS的EBS
如何备份 AWS
实例存储EBS
和实例存储的不足
1. 对AWS的EBS
如何备份(snapshot)以及使用snapshot恢复数据
- 使用
EBS
的快照功能
对EBS
生成快照,能够对数据进行备份。需要知道volume id
,之后使用volume id
对该volume
进行拍摄快照(snapshot)。下图是整个EBS
练习的步骤,其中:- 步骤1到4是第九课的练习内容
- 步骤5是这次的练习内容。
- 进行备份练习
- 查询建立的
volume
注意,在这里需要指定aws ec2 --region ap-northeast-1 describe-volumes --filters "Name=size,Values=5" --query "Volumes[].VolumeId" --output text
region
- 建立
snapshot
快照aws --region ap-northeast-1 ec2 create-snapshot --volume-id vol-026a77a7e0b5a86ae --query "SnapshotId" --output text
这样就建立好了当前的snapshot
。
在快照里面,touch
了一个测试文件。[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
命令mkdir /mnt/volume mount /dev/xvdf /mnt/volume
- 之后查看
snapshot
上的文件
发现文件都是存在,都已经恢复了。
注意,删除环境的时候,EBS
的卷,已经mount
的部分,需要执行umount
之后,再进行EC2
停止。
- 查询建立的
2. AWS
实例存储
- 实例存储和
EBS
的区别
实例存储和EBS
相反,它不是独立EC2
用户虚拟服务器的,它依存于EC2
。
- 使用
Cloudformation
创建实例存储Cloudformation
代码{"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"
就是第二块disk
的mount point
名字/media/ephemeral0
。
- 在
EC2
上查看卷volume
的状况
可以看到EBS
的卷volume
这里,并没有多出来定义卷volume
,因为定义的/dev/xvdb
这里的实例存储就单单是一个实例存储,并不是独立的卷volume
,所以不会出现在这里。
3. EBS
和实例存储的不足
EBS
和实例存储
EBS
与EC2
独立存在,EC2
被删除了之后,仍然可以存在,但是不足之处是不能由多个EC2
同时使用。不能同时进行文件共享。
实例存储
不能够独立与EC2
存在,EC2
被删除了之后,就会消失,不是独立存在的卷volume
。
那么问题来了,如何利用块存储,进行EC2
之间的文件共享,让EC2
等实例件共享文件呢,下次继续练习amazon Elastic File System
,即EFS
。