+86 135 410 16684Mon. - Fri. 10:00-22:00

System Operations on AWS – Managing Storage (Windows)教程

System Operations on AWS - Managing Storage (Windows)教程

System Operations on AWS – Managing Storage (Windows)教程

582266-20160305150511940-1426375270

创建一个名叫Processor的EC2实例,登陆到CommandHost实例,通过AWS CLI对Processor实例的EBS卷做snapshot,设置周期性snapshot的计划任务,

登陆到Processor实例,通过AWS CLI上传并管理日志文件到S3存储桶

1.1 创建一个S3的桶

582266-20160305152052112-386965626

582266-20160305152409049-1744316886

582266-20160305152630221-726675445

1.2 创建一个IAM策略

582266-20160305152829330-1347664828

582266-20160305152857580-500846010

582266-20160305152921971-1882886675

582266-20160305153247534-1195009011

582266-20160305153423034-787681634

1.3 创建一个IAM角色

582266-20160305153601049-1873292675

582266-20160305153629127-1593943591

582266-20160305153702268-1329135928

582266-20160305153858659-332175704

582266-20160305154029549-1005083575

582266-20160305154116080-193259442

1.4 创建一个安全组

582266-20160305154408455-2109263921

1.5 创建一个EC2实例

582266-20160305154546799-277067671

582266-20160305154636424-425984282

582266-20160305154726627-2143724249

582266-20160305154849659-1208919314

582266-20160305154920190-212873308

582266-20160305155025737-714641217

582266-20160305155149580-856570782

582266-20160305155252471-1588243114

2.1 连接到CommandHost实例

582266-20160305155642143-1673996212

582266-20160305155511987-1830158971

2.2 创建一个初始化snapshot

2.2.1 获得Processor实例的描述

1
aws ec2 describe-instances --filter 'Name=tag:Name,Values=Processor'

2.2.2 只显示该实例EBS卷的Id

1
aws ec2 describe-instances --filter 'Name=tag:Name,Values=Processor' --query 'Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.{VolumeId:VolumeId}'

582266-20160305160429955-1638661231

2.2.3 只显示该实例InstanceId

1
aws ec2 describe-instances --filters 'Name=tag:Name,Values=Processor' --query 'Reservations[0].Instances[0].InstanceId'

582266-20160305160636002-1662675453

2.2.4 停止该实例

1
aws ec2 stop-instances --instance-ids i-3bc0b3fc

2.2.5 检查该实例停止状态

1
aws ec2 describe-instance-status --instance-id i-3bc0b3fc

582266-20160305161353159-1989438158

2.2.6 创建一个snapshot

1
aws ec2 create-snapshot --volume-id vol-09e651ff

2.2.7 检查该snapshot状态

1
aws ec2 describe-snapshots --snapshot-id snap-fa894fa9

582266-20160305161954377-1192693398

2.2.8 重新启动Processor实例

1
aws ec2 start-instances --instance-ids i-3bc0b3fc

582266-20160305162709674-893080378

2.2.9 检查该实例启动状态

1
aws ec2 describe-instance-status --instance-id i-3bc0b3fc

582266-20160305162838877-999361983

2.3 创建一个周期性snapshot的计划任务

2.3.1 检查当前Region

1
type C:\Users\Administrator\.aws\config

582266-20160305163240237-852150052

2.3.2 创建用于计划任务的脚本文件c:\temp\backup.bat,内容如下:

1
aws ec2 create-snapshot --volume-id vol-09e651ff --region us-west-2 >c:\temp\output.txt 2>&1

2.3.3 创建执行计划任务的用户

1
net user backupuser passw0rd! /ADD

2.3.4 给该用户赋予执行脚本的权限

1
c:\temp\ntrights +R SeBatchLogonRight -u backupuser

2.3.5 创建一个计划任务

1
schtasks /create /sc MINUTE /mo 1 /tn "Volume Backup Task" /ru backupuser /rp passw0rd! /tr c:\temp\backup.bat

582266-20160305164720393-1176088255

2.3.6 等待几分钟,检查新的snapshots是否被创建

1
aws ec2 describe-snapshots --filters "Name=volume-id,Values=vol-09e651ff"

2.4 保留最后两个snapshots

2.4.1 删除之前创建的计划任务

1
schtasks /Delete /tn "Volume Backup Task"

2.4.2 检查当前所有snapshots的数量

1
aws ec2 describe-snapshots --filters "Name=volume-id,Values=vol-09e651ff" --query 'Snapshots[*].SnapshotId'

2.4.3 执行snapshotter.ps1

1
c:\temp\snapshotter.ps1 us-west-2

2.4.4 再次检查当前snapshots的数量

1
aws ec2 describe-snapshots --filters "Name=volume-id,Values=vol-09e651ff" --query 'Snapshots[*].SnapshotId'

3.1 移动日志文件到S3

3.1.1 登录到Processor实例

582266-20160305171519737-54272120

3.1.2 配置AWS CLI

1
2
3
4
5
PS C:\Users\Administrator> aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: us-west-2
Default output format [None]:

3.1.3 下载loggen.ps1

1
(New-Object System.Net.WebClient).DownloadFile("https://d2lrzjb0vjvpn5.cloudfront.net/sys-ops/v2.4/lab-3-storage-windows/static/loggen.ps1", "c:\temp\loggen.ps1")

3.2.1 运行loggen.ps1

1
c:\temp\loggen.ps1

3.2.2 打开一个新的PowerShell窗口,并切换到c:\temp

1
cd \temp

3.2.3 移动一个log文件到之前创建的S3存储桶中

1
aws s3 mv timestamp.log "s3://s3-bucket-edward/logfiles/timestamp-$(Get-Date -Format 'M-d-yyyy-h:m:s')"

582266-20160305173735534-2121281845

3.2.4 再次执行该命令

1
aws s3 mv timestamp.log "s3://s3-bucket-edward/logfiles/timestamp-$(Get-Date -Format 'M-d-yyyy-h:m:s')"

3.2.5 列出该S3存储桶里的内容

1
aws s3 ls s3://s3-bucket-edward

582266-20160305173638205-1023997022

3.2.6 列出所有以/logfiles/打头的对象

1
aws s3 ls s3://s3-bucket-edward/logfiles/

582266-20160305173603799-767633178

3.2.7 移动文件到/logfiles/archive/位置

1
aws s3 mv s3://s3-bucket-edward/logfiles/<file-name> s3://s3-bucket-edward/logfiles/archive/<file-name>

3.2.8 检查是否移动到该位置

1
aws s3 ls s3://s3-bucket-edward/logfiles/

4 同步文件(从Processor实例到S3存储桶)

4.1 下载sample文件,并解压缩

1
(New-Object System.Net.WebClient).DownloadFile("https://d2lrzjb0vjvpn5.cloudfront.net/sys-ops/v2.4/lab-3-storage-windows/static/files.zip", "c:\temp\files.zip")

4.2 在该存储桶上开启版本控制

1
aws s3api put-bucket-versioning --bucket s3-bucket-edward --versioning-configuration Status=Enabled

4.3 同步文件到S3存储桶

1
aws s3 sync files s3://s3-bucket-edward/files/

4.4 删除file1.txt

1
del files\file1.txt

4.5 同步文件,删除掉源目录中没有的文件

1
aws s3 sync files s3://s3-bucket-edward/files/ --delete

4.6 确认文件已从S3存储桶中删除

1
aws s3 ls s3://s3-bucket-edward/files/

4.7 列出S3存储桶中file1.txt的各个版本

1
aws s3api list-object-versions --bucket s3-bucket-edward --prefix files/file1.txt

4.8 还原上个版本中的file1.txt到本地系统

1
aws s3api get-object --bucket s3-bucket-edward --key files/file1.txt --version-id <version-id> files/file1.txt

4.9 确认文件已还原到本地

1
dir files

4.10 重新同步文件到S3存储桶

1
aws s3 sync files s3://s3-bucket-edward/files/

4.11 确认该文件已经被还原到S3存储桶

1
aws s3 ls s3://s3-bucket-edward/files/