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

相关推荐
摇滚侠1 分钟前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 JDBC 事务管理 阅读笔记 33
spring boot·笔记·后端
小雪崩34 分钟前
嵌入式学习 day39:TCP并发服务器模型
linux·服务器·c语言·网络·学习·tcp/ip
知识分享小能手1 小时前
深度学习学习教程,从入门到精通,概率与信息论 — 知识点详解(3)
人工智能·深度学习·学习·数据挖掘·概率论
Wendy不吃榴莲1 小时前
# AI短剧教程 - 《后西游记》开播后,AI影视为什么更考验“连续讲故事”?
人工智能·笔记·学习·ai·视频
Agudamu11611 小时前
B站学习视频怎么变笔记:用 Ai好记 + Obsidian 搭建个人知识库的完整教程
人工智能·笔记·学习·音视频
kkkkkkkkkk_Z2 小时前
学嵌入式和Linux应用编程|学习日记:计算机网络基础
linux·学习·计算机网络
麦田里的粮仓2 小时前
图形设计工具箱(免费开源)
学习
每天题库2 小时前
交安C证报考条件有哪些?公路水运安全员C证报名时间及考试科目
学习·安全·考试·题库·考证
lifallen2 小时前
长任务怎样选择遗忘:clearing、compaction 与 memory
人工智能·学习·ai·ai编程
高亦真2 小时前
今天是学习嵌入式的第35天
linux·学习·算法