首页 > 解决方案 > 如何处理我的 t3a 实例上的存储?

问题描述

我对 aws 很陌生,boto3而且我不了解 ec2 实例上的存储方面。

假设我有一个t3a使用 python 以编程方式创建的实例,如下所示:

instance = ec2.create_instances(
        ImageId=AMIS[instance_region],
        MinCount=1,
        MaxCount=1,
        Placement={
            'AvailabilityZone':'%sa'%instance_region
        },
        InstanceType=instance_type,
        KeyName='ec2-keypair-api',
        NetworkInterfaces=[{'DeviceIndex': 0, 'AssociatePublicIpAddress': True, 'Groups': [SECURITY_GROUPS[instance_region]]}]
    )

我的实例中有默认存储吗?我需要附加 EBS 卷吗?如果是这样,考虑到上述情况如何做?

任何帮助将不胜感激。

标签: pythonamazon-ec2boto3

解决方案


当你尝试你的代码时发生了什么?它是否创建了实例?您将能够在 ec2 仪表板上看到您的实例及其配置。

并非所有实例都使用相同的存储类型,但 t3a 是 EBS,可以使用以下内容在 create_instances 方法中进行配置:

BlockDeviceMappings=[
    {
        'DeviceName': 'string',
        'VirtualName': 'string',
        'Ebs': {
            'DeleteOnTermination': True|False,
            'Iops': 123,
            'SnapshotId': 'string',
            'VolumeSize': 123,
            'VolumeType': 'standard'|'io1'|'io2'|'gp2'|'sc1'|'st1'|'gp3',
            'KmsKeyId': 'string',
            'Throughput': 123,
            'OutpostArn': 'string',
            'Encrypted': True|False
        },
        'NoDevice': 'string'
    },
]

如果您通过控制台手动创建 t3a 实例,您将看到使用的默认值。我已经有一段时间没有这样做了,但是您会看到可以在 boto3 代码中使用哪些参数。

有关更多详细信息,请参阅文档:https ://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html


推荐阅读