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

相关推荐
weixin_307779131 小时前
Azure上基于OpenAI GPT-4模型验证行政区域数据的设计方案
数据仓库·python·云计算·aws
CSDN_PBB3 小时前
[STM32 - 野火] - - - 固件库学习笔记 - - - 十五.设置FLASH的读写保护及解除
笔记·stm32·学习
鸡啄米的时光机7 小时前
vscode的一些实用操作
vscode·学习
Kai HVZ7 小时前
《深度学习》——调整学习率和保存使用最优模型
人工智能·深度学习·学习
守护者1708 小时前
JAVA学习-练习试用Java实现“使用Apache Ignite对大数据进行内存计算和快速筛查”
java·学习
夜流冰8 小时前
编程参考 - C语言可变参数
笔记
格雷亚赛克斯8 小时前
Qt笔记31-69
数据库·笔记·qt
Long_poem9 小时前
【自学笔记】版本控制与持续集成基础知识点总览-持续更新
笔记·ci/cd
Stream٩( 'ω' )و9 小时前
109~133笔记
笔记
weixin_5025398510 小时前
rust学习笔记2-rust的包管理工具Cargo使用
笔记·学习·rust