这个让我感到有点困惑,所以我觉得这里可能值得发帖。
我正在尝试定制Amazon EC2实例的常规快照,以便进行备份。值得庆幸的是,一些非常聪明的人已经编写了一个相当不错的shell脚本来执行此操作:https://github.com/colinbjohnson/aws-missing-tools/tree/master/ec2-automate-backup
这背后的想法是,它使用Amazon AWS CLI工具调用Amazon并触发给定卷的快照。从理论上讲,这很有效,但是我遇到了一个奇怪的问题。
上面的脚本进行以下调用:
aws ec2 describe-volumes
这应该返回亚马逊卷的列表。但是,它失败并出现以下错误:
HTTPSConnectionPool(host='ec2.us-west2a.amazonaws.com', port=443): Max retries exceeded with url: / (Cuased by <class 'socket.gaierror'>: [Errno -2] Name or service not known)
我理解为什么会抛出这个错误:ec2.us-west2a.amazonaws.com端点不是有效的端点。它应该是ec2.us-west2.amazonaws.com(没有“west2”之后的“a”)。尽管在shell脚本中闲逛,我仍然不能为我的生活找出aws ec2 describe-volumes调用实际上从哪里获取端点。如果我运行命令:
ec2-describe-volumes
我得到了一个有效的卷列表,包括我正在尝试备份的卷。在我的〜/ .profile中,我已经正确设置了我的EC2_URL,EC2_REGION环境变量,并确保重新加载它们,但仍然遇到上述错误。
有谁能告诉我“aws ec2 describe-volumes”实际上是在哪里获取端点?
答案 0 :(得分:1)
鉴于上面的列表显示了区域名称,您可以使用--region参数覆盖脚本自动查找区域信息的位置。例如: &#34; aws ec2 create-snapshot --volume-id vol-xxxxxxxx --region us-west-2&#34;
我在尝试创建快照时遇到了同样的问题(正如您在上面看到的那样),一旦我从之前发布的列表中获得了区域名称,这样就可以了。
祝你好运!
答案 1 :(得分:0)
这是ec2.us-west-2.amazonaws.com
。
http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region