System Operations on AWS – 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实例的描述
| 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}' | 
2.2.3 只显示该实例InstanceId
| 1 | aws ec2 describe-instances --filters 'Name=tag:Name,Values=Processor'--query 'Reservations[0].Instances[0].InstanceId' | 
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 | 
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 | 
2.2.8 重新启动Processor实例
| 1 | aws ec2 start-instances --instance-ids i-3bc0b3fc | 
2.2.9 检查该实例启动状态
| 1 | aws ec2 describe-instance-status --instance-id i-3bc0b3fc | 
2.3 创建一个周期性snapshot的计划任务
2.3.1 检查当前Region
| 1 | type C:\Users\Administrator\.aws\config | 
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 | 
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实例
3.1.2 配置AWS CLI
| 1 2 3 4 5 | PS C:\Users\Administrator> aws configureAWS Access Key ID [None]:AWS Secret Access Key [None]:Default region name [None]: us-west-2Default 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')" | 
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 | 
3.2.6 列出所有以/logfiles/打头的对象
| 1 | aws s3 ls s3://s3-bucket-edward/logfiles/ | 
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/ | 

 QQ咨询
QQ咨询 
		




































