在EC2内可为自己的EBS磁盘扩容,而不需要通过AWS Console网页界面控制台。前提是:
- 本机是Cloud9云端IDC开发环境,内置有关权限和role
- 本EC2已经安装AWSCLI并且配置了AKSK,且AKSK对应的IAM User是具有本Region EC2服务修改配置的权限
- 本EC2挂载了EC2 Profile对应了一个IAM Role,这个IAM Role具有操作EC2服务修改配置的权限
在满足这些前提的情况下,在EC2上执行如下命令:
pip3 install --user --upgrade boto3
export instance_id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
python3 -c "import boto3
import os
from botocore.exceptions import ClientError
ec2 = boto3.client('ec2')
volume_info = ec2.describe_volumes(
Filters=[
{
'Name': 'attachment.instance-id',
'Values': [
os.getenv('instance_id')
]
}
]
)
volume_id = volume_info['Volumes'][0]['VolumeId']
try:
resize = ec2.modify_volume(
VolumeId=volume_id,
Size=80
)
print(resize)
except ClientError as e:
if e.response['Error']['Code'] == 'InvalidParameterValue':
print('ERROR MESSAGE: {}'.format(e))"
if [ $? -eq 0 ]; then
sudo reboot
fi
按回车键确认并重启。重启后可使用 df -h
命令即可看到硬盘完成扩容。