System Operations on AWS - Lab 3W - Managing Storage (Windows)

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

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

1.1 创建一个S3的桶

1.2 创建一个IAM策略

1.3 创建一个IAM角色

1.4 创建一个安全组

1.5 创建一个EC2实例

2.1 连接到CommandHost实例

2.2 创建一个初始化snapshot

2.2.1 获得Processor实例的描述

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

2.2.2 只显示该实例EBS卷的Id

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

2.2.3 只显示该实例InstanceId

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

2.2.4 停止该实例

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

2.2.5 检查该实例停止状态

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

2.2.6 创建一个snapshot

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

2.2.7 检查该snapshot状态

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

2.2.8 重新启动Processor实例

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

2.2.9 检查该实例启动状态

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

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

2.3.1 检查当前Region

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

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

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

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

net user backupuser passw0rd! /ADD

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

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

2.3.5 创建一个计划任务

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

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

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

2.4 保留最后两个snapshots

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

schtasks /Delete /tn "Volume Backup Task"

2.4.2 检查当前所有snapshots的数量

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

2.4.3 执行snapshotter.ps1

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

2.4.4 再次检查当前snapshots的数量

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

3.1 移动日志文件到S3

3.1.1 登录到Processor实例

3.1.2 配置AWS CLI

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

(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

c:\temp\loggen.ps1

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

cd \temp

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

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

3.2.4 再次执行该命令

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

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

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

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

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

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

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

3.2.8 检查是否移动到该位置

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

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

4.1 下载sample文件,并解压缩

(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 在该存储桶上开启版本控制

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

4.3 同步文件到S3存储桶

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

4.4 删除file1.txt

del files\file1.txt

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

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

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

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

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

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

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

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

4.9 确认文件已还原到本地

dir files

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

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

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

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

 

posted @ 2016-03-05 17:44  Edward Guan  阅读(506)  评论(0编辑  收藏  举报