Amazon web services 如何使用boto3在集群中启动EC2实例

Amazon web services 如何使用boto3在集群中启动EC2实例,amazon-web-services,amazon-ec2,boto3,amazon-ecs,Amazon Web Services,Amazon Ec2,Boto3,Amazon Ecs,我想在集群内的实例上启动任务定义(不是在默认实例中)。比如: 创建集群 使用docker映像创建任务定义(我有一个docker映像 已推送到ecs) 在集群中运行任务定义 我想向ec2实例添加一个密钥对,以便进行ssh访问 我曾尝试从boto3(ec2,ecs)使用这些函数 创建集群 运行任务 注册\u容器\u实例 注册\任务\定义 运行\u实例 我设法用运行了一个实例,它运行得非常好,但我想在集群中运行一个实例。这是我的密码: def run_instances():

我想在集群内的实例上启动任务定义(不是在默认实例中)。比如:

  • 创建集群
  • 使用docker映像创建任务定义(我有一个docker映像 已推送到ecs)
  • 在集群中运行任务定义
  • 我想向ec2实例添加一个密钥对,以便进行ssh访问
  • 我曾尝试从boto3(ec2,ecs)使用这些函数

    • 创建集群
    • 运行任务
    • 注册\u容器\u实例
    • 注册\任务\定义
    • 运行\u实例
    我设法用运行了一个实例,它运行得非常好,但我想在集群中运行一个实例。这是我的密码:

        def run_instances():
            response = ec2.run_instances(
                BlockDeviceMappings=[
                {
                    'DeviceName': '/dev/xvda',
                    'Ebs': {
                         'DeleteOnTermination': True,
                         'VolumeSize': 8,
                         'VolumeType': 'gp2'
                    },
                },
            ],
            ImageId='ami-06df494fbd695b854',
            InstanceType='m3.medium',
            MaxCount=1,
            MinCount=1,
            Monitoring={
                'Enabled': False
            })
            return response
    
    ec2控制台上有一个正在运行的实例,但它没有出现在ecs控制台的任何集群中(我用一个ecs优化的ami和一个常规ami进行了尝试)

    我还尝试按照以下步骤在集群中启动并运行系统,但没有成功:

    你能帮我找出我错过了什么吗?除了调用这些SDK函数,还需要进行其他设置吗


    谢谢大家!

    您需要运行一个使用
    ECS优化AMI
    的实例,因为这些AMI上预装了ECS代理,否则您需要自己安装ECS代理并烘焙一个自定义AMI

    默认情况下,您的ECS优化实例会启动到您的默认集群中,但您可以在
    run\u instances
    函数的
    UserData
    属性中指定备用集群名称

    #!/bin/bash
    echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config
    

    可用的ECS AMI列表可用

    您在寻找什么?Ec2还是ECS?-为了启动ec2实例使用,我设法用它运行实例,它运行得非常好,但我想在集群中运行一个实例。请查看我的更新问题,带有code.Awsome。工作起来很有魅力。注意:我必须将AmazonEC2ContainerServiceforEC2Role策略的角色附加到正在运行的实例,如前所述。以下是如何做到这一点: