[玩转系统] 如何使用 PowerShell 管理和自动化 AWS EC2 快照
作者:精品下载站 日期:2024-12-14 20:49:51 浏览:14 分类:玩电脑
如何使用 PowerShell 管理和自动化 AWS EC2 快照
Amazon Elastic Block Store (EBS) 是一项为 Amazon EC2 实例提供存储的服务。 EC2 实例上的每个卷都在 EBS 上运行。当您依赖服务来运行重要的基础设施时,明智的做法是确保数据得到备份。在这篇博文中,了解如何使用 PowerShell 脚本语言管理和自动化 EC2 快照。
附加到 EC2 实例的每个 EBS 卷都可以通过 EBS 快照进行备份。每个快照可以通过以下两种方式之一创建:完整或增量快照。嗯,从技术上讲,两者都是,但是……跟我一起讨论这个吧。
当为 EC2 实例创建第一个快照备份时,它会创建整个卷的备份。后续创建快照时,仅保存自上次快照以来发生变化的块级存储级别的数据。然而,与典型的增量时间点备份不同,由于快照可以链接,因此当恢复快照时,该卷的所有数据都会恢复,使其类似于完整备份。
快照可以异步发生,这意味着快照可以并行创建过程。启动后,快照进入待处理阶段,直到所有必要的块都复制到存储所有 EBS 快照的 Amazon S3。
使用 PowerShell 创建 AWS EC2 快照
AWS 允许您通过几种不同的方式来管理 EBS 快照。如果您愿意,您可以直接使用 AWS 管理控制台、AWS CLI、PowerShell 或 API。在本文中,我们将使用 PowerShell,因为 AWSPowerShell 模块非常支持使用 PowerShell 命令管理 EBS 快照。
先决条件
在我们深入讨论之前,我假设您必须从本教程中获得最大收益,因此有一些先决条件。你会需要:
- AWS 账户
- 具有附加卷的 EC2 实例
- 使用 root 用户或具有 CreateSnapshot 权限的 IAM 用户进行身份验证 (arn:aws:ec2:region::snapshot/*)
一旦您满足了所有这些先决条件,我们就可以开始了!
查找现有 EC2 快照
我们要做的首要任务之一是发现是否已经有任何现有的快照。为了弄清楚这一点,我们使用 Get-EC2Snapshot
命令。该命令将搜索已创建的任何快照并将其输出到 PowerShell 控制台。
PS C:\> Get-EC2Snapshot
DataEncryptionKeyId :
Description : Business/Industry Summary (Windows)
Encrypted : False
KmsKeyId :
OwnerAlias : amazon
OwnerId : 947081328633
Progress : 100%
SnapshotId : snap-8af818e3
StartTime : 11/19/2008 6:15:17 AM
State : completed
StateMessage :
Tags : {}
VolumeId : vol-e1ac4888
VolumeSize : 15
<SNIP>
您会注意到,出现的 AWS EC2 快照并不是您的 EC2 实例的快照。这些都是已与您共享的快照,可供您恢复到 EC2 实例。要发现来自 EC2 实例的所有快照,请将 OwnerId
参数与 self
值结合使用。
PS> Get-EC2Snapshot -OwnerId self
创建新的 EBS 快照
假设您已经创建了 EC2 实例,现在可以创建快照。您可以使用 New-EC2Snapshot
命令创建新快照,但首先,您需要收集要创建快照的每个卷的卷 ID。为此,我们首先需要找到该卷附加到的 EC2 实例 ID。
PS> (Get-EC2Instance).instances
PS> $instanceId = (Get-EC2Instance).instances.InstanceId
一旦您知道了 EC2 实例 ID,您就需要使用它来查找卷。要查找附加到 EC2 实例的所有卷,您将使用 Get-EC2Volume
命令并将输出过滤为仅包含具有我们要查找的附加实例 ID 的卷。
PS> $volumes = Get-EC2Volume | Where-Object { $_.attachments.InstanceId -eq $instanceId }
Attachments : {i-083007f62ff750d7a}
AvailabilityZone : us-east-1b
CreateTime : 3/1/2019 7:06:57 AM
Encrypted : False
Iops : 100
KmsKeyId :
Size : 8
SnapshotId : snap-0ff5b79fdf9b021e8
State : in-use
Tags : {}
VolumeId : vol-0bf53c62534f99eee
VolumeType : gp2
现在我们已经有了卷,AWS 建议关闭实例或至少卸载卷。我们将继续关闭该实例。
PS> Stop-EC2Instance -InstanceId $instanceId
现在,我们可以循环遍历每个卷,并将该卷的 ID 传递给 New-EC2Snapshot
命令上的 VolumeId
参数。一旦发生这种情况,您会注意到快照将进入待处理状态。
foreach ($volume in $volumes) {
New-EC2Snapshot -VolumeId $volume.VolumeId
}
DataEncryptionKeyId :
Description :
Encrypted : False
KmsKeyId :
OwnerAlias :
OwnerId : 013223035658
Progress :
SnapshotId : snap-027a3550dde80eb3b
StartTime : 3/1/2019 7:19:13 AM
State : pending
StateMessage :
Tags : {}
VolumeId : vol-0bf53c62534f99eee
VolumeSize : 8
您可以通过再次运行 Get-EC2Snapshot
并确认状态现在已完成来确认快照已完成。
分配标签
如果您有大量快照需要管理,则很难将它们全部整理好。要对快照进行排序并对每个发现进行分类,您还可以为其分配标签。标签是 EC2 中无处不在的一部分,可用于您的 EBS 快照。
您可以在创建快照时或之后分配标签。要在创建快照时分配标签,请使用 New-EC2Snapshot
上的 TagSpecification
参数。
例如,也许我想标记我在进行生产更改之前刚刚拍摄的 AWS EC2 快照。我想创建一个名为 Stage 的标签,并将其指定为 Dev。为此,我可以创建一个 TagSpecification 对象,将一个或多个 Tag 对象分配给 Tags 属性,然后定义此标签将附加到的资源类型。
$tag = New-Object Amazon.EC2.Model.Tag
$tag.Key = 'Stage'
$tag.Value = 'Dev'
$tagSpec = New-Object Amazon.EC2.Model.TagSpecification
$tagSpec.Tags = $tag
$tagSpec.ResourceType = 'snapshot'
创建 TagSpecification 对象后,我可以将其传递给 New-EC2Snapshot
。
PS> New-EC2Snapshot -VolumeId <VolumeId> -TagSpecification $tagSpec
从快照创建新的 AMI
快照的另一个很酷的功能是您可以从快照创建全新的映像 (AMI)。如果您拥有仅限 Linux EC2 实例的根卷快照,您可以轻松地从该卷快照创建全新的 AMI。假设我想从刚刚创建的快照创建一个新图像。我可以使用 New-EC2Image
命令来做到这一点。
我首先需要捕获快照 ID。
PS> $snapshotId = Get-EC2Snapshot -OwnerId self | where {$_.Tags.where({$_.Key -eq 'Stage' -and $_.Value -eq 'Dev'})} | Select-Object -ExpandProperty SnapshotId
接下来,我可以将该 ID 作为哈希表传递给 New-EC2Image
上的 BlockDeviceMapping
参数。
PS> $block = @{SnapshotId=$snapshotId}
PS> Register-EC2Image -Name 'my_image' -BlockDeviceMapping @{DeviceName="/dev/sda1";Ebs=$block;VirtualName='ephemeral0'} -RootDeviceName '/dev/sda1'
删除 AWS EC2 快照
如果我们完成了快照,我们现在可以删除它们。这样做很容易。只需将 Get-EC2Snapshot
返回的实例通过管道传输到 Remove-EC2Snapshot
。但是,如果正在使用 AMI,您可能会遇到此错误。
PS> Get-EC2Snapshot -OwnerId self | Remove-EC2Snapshot
Confirm
Are you sure you want to perform this action?
Performing the operation "Remove-EC2Snapshot (DeleteSnapshot)" on target "snap-066ccd492f85192be".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): a
Remove-EC2Snapshot : The snapshot snap-066ccd492f85192be is currently in use by ami-0b353cbd967f6658f
At line:1 char:33
+ Get-EC2Snapshot -OwnerId self | Remove-EC2Snapshot
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Amazon.PowerShe...2SnapshotCmdlet:RemoveEC2SnapshotCmdlet) [Remove-EC2Snapshot], InvalidOperationExce
ption
+ FullyQualifiedErrorId : Amazon.EC2.AmazonEC2Exception,Amazon.PowerShell.Cmdlets.EC2.RemoveEC2SnapshotCmdlet
在这种情况下,AMI 已注册,您必须首先使用 Unregister-EC2Image
命令取消注册。
PS> $myImage = Get-EC2Image -Owner self
PS> Unregister-EC2Image -ImageId $myImage.ImageId
PS> Get-EC2Snapshot -OwnerId self | Remove-EC2Snapshot
概括
PowerShell 允许您管理 EBS 快照的各个方面。如果我们此处介绍的场景不适合您需要执行的操作,我建议通过运行 Get-Command -Noun *ec2snapshot* -Module AWSPowerShell 来查看所有可用的 EC2 快照命令。这将使您更好地了解 PowerShell 和 EC2 (EBS) 快照的可能性。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag