web-dev-qa-db-ja.com

boto3を使用してec2インスタンスを作成する方法

Pythonでboto3を使用してec2インスタンスを作成することは可能ですか?ここではBoto3文書は役に立たず、オンラインで役立つ文書を見つけることができませんでした。サンプルコード/リンクを提供してください。

15
MikA

APIは変更されましたが、ドキュメント内にあります

# Boto 3
ec2.create_instances(ImageId='<AMI-image-id>', MinCount=1, MaxCount=5)

ドキュメントへのリンク: http://boto3.readthedocs.org/en/latest/guide/migrationec2.html#launching-new-instances

27
gbs

APIドキュメントを参照して、インスタンスを作成するためのすべての利用可能なオプションがあります

http://boto3.readthedocs.org/en/latest/reference/services/ec2.html#EC2.Subnet.create_instances

6
ranjeetcao

ドキュメントで本当に探しているリンクは、ServiceResourceオブジェクトの create_instances()メソッド です。これは、次のようなEC2リソースを作成する場合に呼び出すオブジェクトのタイプです。

_s = boto3.Session(region_name="us-west-1")
ec2 = s.resource('ec2')
...
instance = ec2.create_instances(**y_kwargs)
_

これには、より詳細な例と、使用可能なパラメーターの長いリストが含まれています。

AWSコマンドラインインターフェイスを使用して、すでに実行されているAWSインスタンスのパラメーター値を取得することもできます。

_$ aws ec2 describe-instances
_

これにより、関連するパラメーターを抽出してcreate_instances()メソッドに渡すことができるJSONファイルが出力されます。 (または、botoクライアントを使用して describe_instances()メソッド を呼び出すことができます。)

(注:クライアントとリソースの違いを知りたい場合、それらは同じ目的のために異なる目的を果たします-クライアントは低レベルのインターフェースですが、リソースは高レベルのインターフェースです。)

6
charlesreid1

boto3 docs から使用したコードを実行できます。要件に応じてパラメータを追加または削除できますが、これは通常必要なものです。

import boto3

client = boto3.client('ec2', region_name='us-west-2')

response = client.run_instances(
    BlockDeviceMappings=[
        {
            'DeviceName': '/dev/xvda',
            'Ebs': {

                'DeleteOnTermination': True,
                'VolumeSize': 8,
                'VolumeType': 'gp2'
            },
        },
    ],
    ImageId='AMI-6cd6f714',
    InstanceType='t3.micro',
    MaxCount=1,
    MinCount=1,
    Monitoring={
        'Enabled': False
    },
    SecurityGroupIds=[
        'sg-1f39854x',
    ],
)
4
captainblack

Windowsコンピューターから実行している場合は、インスタンスを起動するために適切なEC2許可を使用してAWS Cliを設定する必要があります。

import boto3

ec2 = boto3.resource('ec2')

instance = ec2.create_instances(
    ImageId='AMI-5eb63a32',
    MinCount=1,
    MaxCount=1,
    InstanceType='t2.micro',
)
print(instance[0].id)
1
Sonoo Kumar