[玩转系统] 适用于 PowerShell 的 AWS 工具
作者:精品下载站 日期:2024-12-14 13:25:05 浏览:15 分类:玩电脑
适用于 PowerShell 的 AWS 工具
本文将连接名为“AWS”和“PowerShell”的两个点。在五到十分钟内,您将确切地了解如何使用 PowerShell 连接到 AWS 并管理服务。
主题是:
- 如何安装 AWS PowerShell 模块
- 如何验证您与 AWS 的 PowerShell 会话
- 配置 AWS PowerShell 脚本的目标区域
- 为 AWS 运行一些示例 PowerShell 脚本
我们走吧!
安装 AWS PowerShell 模块
AWS PowerShell 模块可从此处作为独立下载:https://aws.amazon.com/powershell/。由于下载内容包括整个 AWS API 包,其中 AWS Tools for PowerShell 只是其中的子组件,因此我不建议安装此包:
AWS Tools for PowerShell 更简单的安装方法是直接从 PowerShell Gallery 获取它:
Install-Module AWSPowerShell
这是一个相当大的软件包,因此请留出足够的时间进行安装。
安装后,您可以检查该模块在本地是否可用:
PS C:\Skrubbeltrang > Get-Module -ListAvailable *AWS*
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Binary 3.3.522.0 AWSPowerShell {Clear-AWSHistory, Set-AWSHistoryConfiguration, Initialize-AWSDefaultConfiguration, Clear-AWSDefaultConfiguration...}
要继续使用 AWS 模块,您可以使用以下命令导入它:
Import-Module AWSPowerShell
您现在已准备好开始在 PowerShell 中执行 AWS 命令。
使用 PowerShell 连接到 AWS
要以编程方式访问 AWS,您需要使用访问密钥进行身份验证。AWS 访问密钥由两部分组成:访问密钥 ID 和秘密访问关键。您可以按照以下步骤在 AWS 控制台中生成它们:
首先登录 IAM 控制台并选择我的安全凭证:
展开访问密钥并生成新的访问密钥:
确保获取 AWS 访问密钥的两个部分:访问密钥 ID 和秘密访问密钥。关闭对话框后您将无法再次访问它!
您现在可以使用访问密钥 ID 和秘密访问密钥通过 Set-AWSCredential 命令在本地计算机上建立配置文件:
Set-AWSCredential -AccessKey AKIAITRASVDO2JZFXHJA -SecretKey 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 -StoreAS default
提示!如果您存储名称为“default”的配置文件,并且未指定其他配置文件,您的 AWS PowerShell 会话将自动使用此配置文件。
设置配置文件后,您可以使用 Get-AWSCredential 命令查看它:
PS C:\Skrubbeltrang> Get-AWSCredential -ListProfileDetail
ProfileName StoreTypeName ProfileLocation
----------- ------------- ---------------
default NetSDKCredentialsFile
现在,所有 AWS 命令都将使用默认凭证进行身份验证,除非您使用 ProfileName 参数指定显式配置文件。
您可以使用 Set-AWSCredential 命令在当前会话中激活另一个配置文件,但对于大多数简单的设置,隐式使用默认配置文件就可以正常工作。
配置文件凭证存储在 AppData\Local\AWSToolkit\RegisteredAccounts.json 中。这些凭据受 Windows 数据保护 API (DPAPI) 保护,这意味着它们受 Windows 用户凭据的保护并锁定到当前计算机(Windows 用户配置文件所在的计算机)。这有两个重要的后果 - 理解并记住这一点可以在安排 AWS 任务时减少大量故障排除:
- 您必须使用运行它的同一 Windows 帐户生成 AWS 配置文件(要将作业安排为服务,您必须以调度服务器上的服务帐户身份登录才能生成 AWS 配置文件)
- 您无法将凭据复制到新计算机(要将脚本移动到新计算机,您必须在新计算机上生成新配置文件)
配置您的目标区域
我们开始编写脚本之前的最后一步是配置正确的目标区域。
AWS Tools for PowerShell 必须知道要定位的区域,以避免出现以下错误消息:
Get-EC2Instance : No region specified or obtained from persisted/shell defaults.
At line:1 char:1
+ Get-EC2Instance
+ ~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Amazon.PowerShe...2InstanceCmdlet:GetEC2InstanceCmdlet)
[Get-EC2Instance], InvalidOperationException
+ FullyQualifiedErrorId : InvalidOperationException,Amazon.PowerShell.Cmdlets.EC2.GetEC2InstanceCmdlet
可以使用 Region 参数为各个命令设置会话的目标区域。
提示!如果您在同一区域中设置了大部分资源,则可以使用 Set-DefaultRegion 命令设置默认区域。
该区域必须设置为第二列中的值之一:
AWS API 区域
US East (Ohio)美国东部2
US East (N. Virginia)美国东部1
US West (N. California)美国西1号
US West (Oregon)美国西2号
Asia Pacific (Hong Kong)ap-东-1
Asia Pacific (Mumbai)ap-南-1
Asia Pacific (Seoul)ap-东北-2
Asia Pacific (Singapore)ap-东南-1
Asia Pacific (Sydney)ap-东南-2
Asia Pacific (Tokyo)ap-东北-1
Canada (Central)ca-中央-1
China (Beijing)cn-north-1
China (Ningxia)cn-西北-1
EU (Frankfurt)欧盟中央-1
EU (Ireland)欧盟-西-1
EU (London)欧盟-西-2
EU (Paris)欧盟-西-3
EU (Stockholm)欧盟-north-1
South America (São Paulo)萨东-1
AWS GovCloud (US-East)us-gov-east-1
AWS GovCloud (US)us-gov-west-1
要将默认区域设置为法兰克福,请使用以下命令:
Set-DefaultAWSRegion eu-central-1
示例 AWS PowerShell 脚本
准备好适用于 PowerShell 的 AWS 工具、成功连接到 AWS 并配置默认区域后,让我们开始一些实际工作。
以下脚本假定您已完成前面部分中的步骤。
使用 PowerShell 列出虚拟机
Get-EC2Instance 是获取有关 EC2 实例的一些信息的命令。每个 EC2 实例对象都有一个 Instances 属性,其中包含有关虚拟机的各种详细信息:
PS C:\Skrubbeltrang> Get-EC2Instance | % { $_.Instances }
InstanceId InstanceType Platform PrivateIpAddress PublicIpAddress SecurityGroups SubnetId VpcId
---------- ------------ -------- ---------------- --------------- -------------- -------- -----
i-0890b237aef43fe98 t2.medium Windows 172.31.24.41 {launch-wizard-5} subnet-658e141e vpc-dd677ab4
i-01093ec32631a7be4 t2.micro Windows 172.31.24.43 {Lab, RDP + Debug} subnet-658e141e vpc-dd677ab4
i-04cb999d8be5e7009 t2.medium Windows 172.31.24.45 {Lab, RDP + Debug} subnet-658e141e vpc-dd677ab4
i-0b5d9c29a93907b19 t2.medium Windows 172.31.24.47 {Lab, RDP + Debug} subnet-658e141e vpc-dd677ab4
您可能会注意到缺少一条重要信息。要获取嵌入在名称标签中的 EC2 实例名称,请使用以下代码行:
Get-EC2Instance | Select-Object -ExpandProperty Instances | ForEach-Object {
$Name = (Get-EC2Instance $_.InstanceID | Select-Object -ExpandProperty Instances | Select-Object Tag).Tag
Write-Host $_.InstanceID `t $Name.Value
}
这些行将生成类似于以下内容的输出,您可以在其中看到名称标签引用的 InstanceID:
i-0890b237aef43fe98 ManagementServer
i-01093ec32631a7be4 Window 2008 R2
i-04cb999d8be5e7009 TokenSnatcher_Test
i-0b5d9c29a93907b19 E365M_DC
使用 PowerShell 启动和停止虚拟机
要启动您的 EC2 实例之一,请使用 Start-EC2Instance 命令并提供 EC2 实例的 InstanceID:
Start-EC2Instance 'i-0b5d9c29a93907b19'
要停止同一实例,请使用 Stop-EC2Instance 命令:
Stop-EC2Instance 'i-0b5d9c29a93907b19'
提示!在您的 AWS 资源上智能地使用标签,以便支持使用 PowerShell 脚本轻松定位对象。
使用 PowerShell 更改 EC2 实例类型
要更改虚拟机的硬件大小,您必须更改 EC2 实例的 InstanceType 属性。
这可以通过以下命令来完成:
Edit-EC2InstanceAttribute -InstanceId "i-0b5d9c29a93907b19" -Attribute "instanceType" -Value t2.large
您可以在此处找到可用实例类型的列表。
使用 PowerShell 监控和分析 AWS 性能和利用率指标
您的 AWS 基础设施的性能会被持续记录,并且数据点可通过 CloudWatch 服务获得。绩效指标具有以下保留性:
- 1 分钟数据点可保留 15 天
- 5 分钟数据点可保留 63 天
- 1 小时数据点可保留 455 天
要从 CloudWatch 检索数据点,请使用命令 Get-CWMetricStatistics。它有相当多的参数,说明服务、指标、实例、时间范围、采样间隔、统计信息类型等。
以下脚本将向您显示上周给定 EC2 实例的 CPU 最大利用率和平均利用率,采样间隔为一小时:
$EndDate = Get-Date
$StartDate = $EndDate.AddDays(-7)
$Data = Get-CWMetricStatistics -Namespace "AWS/EC2" -MetricName "CPUUtilization" -Dimension @{"Name"="InstanceId";"Value"="i-0b5d9c29a93907b19"} -UtcStartTime $StartDate -UtcEndTime $EndDate -Period 3600 -Statistic @("Maximum","Average")
$Data.Datapoints | Sort-Object TimeStamp | ft TimeStamp,Maximum,Average
输出可能类似于以下内容:
Timestamp Maximum Average
--------- ------- -------
6/18/2019 9:25:00 PM 25.5833333333339 6.16080740020377
6/18/2019 10:25:00 PM 20.7499999999997 6.10591329381619
6/18/2019 11:25:00 PM 19.9166666666664 6.13058102559353
6/19/2019 12:25:00 AM 21.3333333333336 6.17326186286314
6/19/2019 1:25:00 AM 20.916666666667 6.24051318267419
6/19/2019 2:25:00 AM 21.2711864406783 6.28474653453121
6/19/2019 3:25:00 AM 21.3114754098361 6.20924137877804
6/19/2019 4:25:00 AM 34.2500000000003 7.36355198975024
6/19/2019 5:25:00 AM 15.8333333333333 5.50554050507857
6/19/2019 6:25:00 AM 15.9166666666685 5.61130445185392
6/19/2019 7:25:00 AM 15.7500000000012 5.59249444290078
6/19/2019 8:25:00 AM 15.9322033898299 5.5448249513754
6/19/2019 9:25:00 AM 16.1666666666648 5.58090750517117
6/19/2019 10:25:00 AM 15.8333333333333 5.60937220215495
6/19/2019 11:25:00 AM 16.2711864406755 5.63883138834862
6/19/2019 12:25:00 PM 15.7377049180334 5.67969883609644
6/19/2019 1:25:00 PM 16.0833333333327 5.66284731869962
6/19/2019 2:25:00 PM 16.0833333333327 5.72660577012132
6/19/2019 3:25:00 PM 16.4166666666673 5.90379812293539
6/19/2019 4:25:00 PM 16.3559322033892 5.85187860825541
6/19/2019 5:25:00 PM 16.3559322033892 5.87568884875428
6/19/2019 6:25:00 PM 16.1475409836072 5.91534994288534
6/19/2019 7:25:00 PM 16.4999999999994 6.00194768608566
6/19/2019 8:25:00 PM 15.8196721311469 5.72859706399924
6/19/2019 9:25:00 PM 16.0000000000006 5.64684750393632
6/19/2019 10:25:00 PM 16.0000000000006 5.66860933592664
6/19/2019 11:25:00 PM 16.0833333333327 5.63785503689294
6/20/2019 12:25:00 AM 16.6949152542379 5.84837802167267
6/20/2019 1:25:00 AM 16.0833333333327 5.82561166682107
6/20/2019 2:25:00 AM 16.25 5.86659527337838
6/20/2019 3:25:00 AM 16.7796610169485 6.0002469821864
6/20/2019 4:25:00 AM 38.135593220339 7.15940268901859
6/20/2019 5:25:00 AM 16.25 5.92659959556663
6/20/2019 6:25:00 AM 16.0655737704906 5.95945015590751
...
使用 PowerShell 从 CloudWatch 获取和处理性能数据可以帮助您获得标准控制台无法提供的见解。
概括
我希望你能感觉到这些点已经联系在一起,或者至少变得更近了一些。使用 PowerShell 管理 AWS 可以为您节省大量时间(和金钱)。
使用 PowerShell 实现 AWS 自动化可以帮助您标准化新 AWS 资源的配置、在已知空闲期间关闭服务器、分析性能以确定是否需要扩大或缩小规模等等。
充分掌握适用于 PowerShell 的 AWS 工具后,除了缺乏想象力之外,没有什么会阻碍您!
猜你还喜欢
- 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 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[短剧] 2025年05月31日 精选+付费短剧推荐58部
[软件合集] 25年5月31日 精选软件66个
[电影] 黄沙漫天(2025) 4K.EDRMAX.杜比全景声 / 4K杜比视界/杜比全景声
[风口福利] 短视频红利新风口!炬焰创作者平台重磅激励来袭
[韩剧] 宝物岛/宝藏岛/金银岛(2025)【全16集】【朴炯植/悬疑】
[电影] 愤怒的牦牛 (2025) 国语中字 4k
[短剧合集] 2025年05月30日 精选+付费短剧推荐56部
[软件合集] 25年5月30日 精选软件26个
[软件合集] 25年5月29日 精选软件18个
[短剧合集] 2025年05月28日 精选+付费短剧推荐38部
[剧集] [央视][笑傲江湖][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
[美图] 2W美女个美女小姐姐,饱眼福
[电视剧] [突围] [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