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

相关推荐
大丈夫立于天地间24 分钟前
ISIS基础知识
网络·网络协议·学习·智能路由器·信息与通信
doubt。32 分钟前
【BUUCTF】[RCTF2015]EasySQL1
网络·数据库·笔记·mysql·安全·web安全
Chambor_mak1 小时前
stm32单片机个人学习笔记14(USART串口数据包)
stm32·单片机·学习
Zelotz1 小时前
线段树与矩阵
笔记
汇能感知2 小时前
光谱相机在智能冰箱的应用原理与优势
经验分享·笔记·科技
PaLu-LI2 小时前
ORB-SLAM2源码学习:Initializer.cc⑧: Initializer::CheckRT检验三角化结果
c++·人工智能·opencv·学习·ubuntu·计算机视觉
yuanbenshidiaos2 小时前
【大数据】机器学习----------计算机学习理论
大数据·学习·机器学习
汤姆和佩琦2 小时前
2025-1-20-sklearn学习(42) 使用scikit-learn计算 钿车罗帕,相逢处,自有暗尘随马。
人工智能·python·学习·机器学习·scikit-learn·sklearn
Tech智汇站3 小时前
Quick Startup,快捷处理自启程序的工具,加快电脑开机速度!
经验分享·科技·学习·学习方法·改行学it
qq_312738453 小时前
jvm学习总结
jvm·学习