標籤:
建立一個EC2執行個體,對EBS卷做SnapShot,設定周期性備份,上傳並管理記錄檔到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 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
(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/
System Operations on AWS - Lab 3W - Managing Storage (Windows)