当前位置: 首页 > article >正文

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
      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实例存储

  1. 实例存储和EBS的区别
    实例存储和EBS相反,它不是独立EC2用户虚拟服务器的,它依存于EC2
    在这里插入图片描述
  2. 使用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"就是第二块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

在这里插入图片描述


http://www.kler.cn/a/379693.html

相关文章:

  • Java 中 HashMap集合使用
  • C# 中 发送HTTP请求 实现Ajax功能
  • uniapp 使用vue/pwa
  • 云原生+AI核心技术&最佳实践
  • 使用onnxruntime c++ API实现yolov5m视频检测
  • Python并发编程库:Asyncio的异步编程实战
  • 深度学习-如何计算神经网络的输出?
  • 重学SpringBoot3-整合 Elasticsearch 8.x (二)使用Repository
  • 为什么说模拟电路的难点就在开通过程和关断过程?难在什么地方?
  • 【数学二】线性代数-矩阵-初等变换、初等矩阵
  • 数据结构模拟题[十一]
  • 【使用 Python 和 ADB 检查 Android 设备的 Wi-Fi 状态】
  • python实现钉钉群机器人消息通知(消息卡片)
  • kafka消费端常见故障及处理方法
  • MySQL 高性能优化规范建议
  • 浅谈RPC的实现原理与RPC实战
  • HTTP、WebSocket、gRPC 或 WebRTC:各种协议的区别
  • 【LwIP源码学习5】网口接收数据处理过程
  • 【Python+Pycharm】2024-Python安装配置教程
  • STM32:IIC详解
  • opencv学习笔记(6):图像预处理(直方图、图像去噪)
  • Git 常用命令与开发流程总结
  • 【优选算法】——二分查找!
  • C++转python语法训练 算法模板02
  • Arduino平台软硬件原理及使用——热释电传感器的使用
  • gRPC-集成Springboot