在Amazon Web Services的启动配置中使用用户数据创建EBS卷

54次阅读
没有评论

问题描述

在创建Amazon Web Services(AWS)的启动配置时,尝试在用户数据中编写一个shell脚本来创建EBS卷。用户认为自己的bash脚本没有问题。用户在AWS网站上查找了创建启动配置和编写用户数据的相关信息,但没有找到比自己做的更多的内容。用户使用了预先构建了AWS CLI的Amazon Linux 2 AMI作为启动配置。用户在用户数据中编写了以下代码:

#!/bin/bash
aws ec2 create-volume \
    --volume-type gp2 \
    --size 100 \
    --encrypted \
    --availability-zone us-east-1c
aws ec2 create-volume \
    --volume-type gp2 \
    --size 100 \
    --encrypted \
    --availability-zone us-east-1d

用户尝试在两个可用区创建EBS卷,但是却发现没有创建任何卷。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在解决这个问题之前,有几个可能的原因需要检查:
1. 确保EC2实例具有创建卷的权限。可以参考这里了解如何为EC2实例分配角色。
2. 检查/var/log/cloud-init-output.log/var/log/cloud-init.log中的错误信息。这些日志文件会提供更详细的信息。
3. 注意,你不能将其他可用区的卷附加到你的EC2实例上,所以不太清楚为什么你要在启动脚本中创建它们。
4. 根据评论中的建议,指定区域:aws --region us-east-1 ec2 create-volume ...

希望这些解决方案能帮到你。如果还有其他问题,请随时提问。

正文完