13

ドキュメントとソース コードから、ルート デバイスのサイズを定義する方法がわかりません。

サイズを宣言できる BlockDeviceMappings セクションを使用して、N 個の追加のブロック デバイスを指定できます。ただし、ルート ボリュームのサイズを設定する方法はありません。そのため、デフォルト値であるサイズ 8GB のルート ボリュームを持つインスタンスが常に作成されます。

4

4 に答える 4

17

おそらく元のポスターに遅れて、今日この問題に遭遇しましたが、後で誰かがこの質問に出くわした場合に備えて、私は次のことを行いました:

import boto3
ec2 = boto3.resource('ec2',
                     region_name='eu-west-1',
                     aws_access_key_id='my-key',
                     aws_secret_access_key='my-secret')
instance = ec2.create_instances(ImageId='my-image-id',
                                BlockDeviceMappings=[{"DeviceName": "/dev/xvda","Ebs" : { "VolumeSize" : 50 }}])

上記は省略されています (他の値、InstanceType などの create_instances にさらに引数を渡す必要があります) が、基本的にルート デバイス (この場合は /dev/xvda) を目的のボリュームと共に BlockDeviceMappings 値の一部として渡します。サイズ (上記の例では 50GB)。

于 2016-02-15T13:53:41.863 に答える
8

スティーブ ジェフリーズが述べたように、DeviceName に名前を付けることが重要です。通常は AWS コンソールに表示される /dev/sda1 を使用できました。以下は、磁気を使用した実際の例です。

BlockDeviceMappings=[
    {
        'DeviceName': '/dev/sda1',
        'Ebs': {
            'VolumeSize': 30,
            'VolumeType': 'standard'
        }
    }
]
于 2016-06-17T18:22:48.837 に答える
0

以下は、ルート デバイスのサイズを設定する必要がある最小限の必須フィールドです。

import boto3
ec2_resource = boto3.resource('ec2')
    reservations = ec2_resource.create_instances(

        ImageId= "ami-xyz",
        MinCount=1,
        MaxCount=1,
        InstanceType='xyz',
        KeyName='key-pair',
        TagSpecifications=[
            {
                'ResourceType': 'instance',
                'Tags': [{
                     'Key': 'Name',
                    'Value': 'xyz-machine'
                }]
            }
        ],
        IamInstanceProfile={
        'Name':'xyz-role'
        },
        BlockDeviceMappings=[
            {
                'DeviceName': '/dev/sda1',
                'Ebs': {
                    'VolumeSize': 30,
                    'VolumeType': 'standard'
                }
            }
        ]
    )
于 2019-09-21T01:51:13.480 に答える
-1

Stackoverflow: EBS のサイズを指定して Boto で EC2 インスタンスを起動する方法を参照してください。

また、AWS Command-Line Interface (CLI)から実行する方法は次のとおりです。

aws ec2 run-instances --image-id ami-xxxxxxxx --instance-type m1.xlarge --block-device-mappings '{"DeviceName": "/dev/sda1","Ebs" : { "VolumeSize" : 50 }}'
于 2015-08-26T03:48:52.710 に答える