aws(学习笔记第九课)
- 使用
AWS
的网络存储EBS
学习内容:
- 使用
AWS
的网络存储EBS
1.使用AWS
的网络存储EBS
EBS
是什么
EBS
是aws Elastic Block Store
的缩写,就是AWS
的弹性数据块存储。EBS
有如下特点。- 它不属于
EC2
的一部分,独立存在。 - 可以独立存在或者同一时间挂载到一个
EC2
实例上。
注意,同一时间不能挂在到两个以及两个以上的EC2
- 可以像普通的磁盘一样使用。
- 它不属于
- 练习使用
EBS
-
创建一个
EBS
,之后用EC2
进行挂载。json{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "(EBS)", "Parameters": { "KeyName": { "Description": "Key Pair name", "Type": "AWS::EC2::KeyPair::KeyName", "Default": "my-cli-key" }, "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" }, "AttachVolume": { "Description": "Should the volume be attached?", "Type": "String", "Default": "yes", "AllowedValues": ["yes", "no"] } }, "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"} } }, "Conditions": { "Attached": {"Fn::Equals": [{"Ref": "AttachVolume"}, "yes"]} }, "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 }] } }, "IamRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": ["ec2.amazonaws.com"] }, "Action": ["sts:AssumeRole"] } ] }, "Path": "/", "Policies": [ { "PolicyName": "ec2", "PolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Effect" : "Allow", "Action" : ["ec2:DescribeVolumes", "ec2:CreateSnapshot", "ec2:DescribeSnapshots", "ec2:DeleteSnapshot"], "Resource": "*" }] } } ] } }, "IamInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [{"Ref": "IamRole"}] } }, "Server": { "Type": "AWS::EC2::Instance", "Properties": { "IamInstanceProfile": {"Ref": "IamInstanceProfile"}, "ImageId": {"Fn::FindInMap": ["EC2RegionMap", {"Ref": "AWS::Region"}, "AmazonLinuxAMIHVMEBSBacked64bit"]}, "InstanceType": "t2.micro", "KeyName": {"Ref": "KeyName"}, "SecurityGroupIds": [{"Ref": "SecurityGroup"}], "SubnetId": {"Ref": "Subnet"} } }, "Volume": { "Type": "AWS::EC2::Volume", "Properties": { "AvailabilityZone": {"Fn::GetAtt": ["Server", "AvailabilityZone"]}, "Size": "5", "VolumeType": "gp2" } }, "VolumeAttachment": { "Type": "AWS::EC2::VolumeAttachment", "Condition": "Attached", "Properties": { "Device": "/dev/xvdf", "InstanceId": {"Ref": "Server"}, "VolumeId": {"Ref": "Volume"} } } }, "Outputs": { "PublicName": { "Value": {"Fn::GetAtt": ["Server", "PublicDnsName"]}, "Description": "Public name (connect via SSH as user ec2-user)" }, "VolumeId": { "Value": {"Ref": "Volume"}, "Description": "Volume id" } } }
-
创建结果
-
在
EBS
上创建文件系统
这里,还没有对EBS
创建文件系统,接下来创建文件系统-
创建文件系统
shellsudo mkfs -t ext4 /dev/xvdf
-
创建
mount point
进行挂载shellmkdir /mnt/volume mount /dev/xvdf /mnt/volume/
-
确认
mount
情况
-
touch文件在新的文件系统上
-
-
尝试卸掉挂载
-
EBS
最大的优点是独立于EC2
,可以尝试将它umont
。shellsudo umount /mnt/volume
更新
cloudformation
,将AttachVolume
修改为No
。 -
可以查看更改集
-
卸载之后,查看结果
shellfdisk -l
-
更改
AttachVolume
,进行重新的Attach
-
查看
Attach
之后的结果
-
重新进行
mount
shellmount /dev/xvdf /mnt/volume/ cd /mnt/volume/ cat ebs.txt
-
-