Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java在EC2中启动虚拟机_Java_Amazon Web Services_Amazon Ec2_Virtual Machine - Fatal编程技术网

如何使用Java在EC2中启动虚拟机

如何使用Java在EC2中启动虚拟机,java,amazon-web-services,amazon-ec2,virtual-machine,Java,Amazon Web Services,Amazon Ec2,Virtual Machine,我对AWS一无所知。我被赋予了一项正式任务,探索AWSAPI for java,以便我们可以在EC2上启动一个虚拟机。我查阅了官方文件,但没有什么疑问: 我需要在EC2上部署java代码吗 Java代码可以创建并启动虚拟服务器吗?或者我们只能通过代码启动虚拟服务器,并且需要通过EC2仪表板创建虚拟机 首先感谢您,因为您对AWS非常不熟悉,请仔细阅读他们的文档。我知道有很多,但以下链接应直接适用于您的情况: 要回答您的问题,您需要启动一个虚拟机。在AWS中,这些被称为“实例”。要使用API启

我对AWS一无所知。我被赋予了一项正式任务,探索AWSAPI for java,以便我们可以在EC2上启动一个虚拟机。我查阅了官方文件,但没有什么疑问:

  • 我需要在EC2上部署java代码吗
  • Java代码可以创建并启动虚拟服务器吗?或者我们只能通过代码启动虚拟服务器,并且需要通过EC2仪表板创建虚拟机

  • 首先感谢您,因为您对AWS非常不熟悉,请仔细阅读他们的文档。我知道有很多,但以下链接应直接适用于您的情况:



    要回答您的问题,您需要启动一个虚拟机。在AWS中,这些被称为“实例”。要使用API启动实例,您可以在本地执行进行API调用的代码,只要您具有有效的凭据等,代码就可以工作。您的代码不需要在EC2内部运行

    以下代码将为您运行一个EC2实例,只要您具有有效的凭据,并且java项目中包含AWS-SDK

    RunInstancesRequest runInstancesRequest =
       new RunInstancesRequest();
    
    runInstancesRequest.withImageId("ami-4b814f22") // This is a base image, for example a ubuntu or linux instance
                       .withInstanceType("m1.small") // The size of the instance, these cost more the more powerful they are
                       .withMinCount(1) // Minimum amount of instances you want to launch
                       .withMaxCount(1); // Maximum amount of instances you want to launch
    

    根据我的理解,上面的代码将运行已经创建的实例。我们如何创建实例?ImageId和InstanceType是否具有固定值?API调用名为RunInstanceRequest,但这将生成一个新实例。我同意美国焊接学会(AWS)的措词不好且前后不一致。要创建一个服务器,您需要一个根卷,其中包含一个操作系统和一些基本内容,这就是AMI的用武之地。AWS有很多默认值。例如,Ubuntu 16.04、Amazon Linux、Red hat实例,您可以选择(Google代表实际Id)。也有社区创建的公共AMI,但我建议你坚持使用亚马逊的。当您在实际控制台中完成启动实例过程时,这将变得清晰。谢谢。这是有道理的。我执行上述代码,但在EC2控制台中看不到任何正在运行的实例。请查看我发送的文档,您需要包含Java AWS客户端向AWS发送经过身份验证的请求的凭据。完成此操作后,请查看api调用的响应,出现了什么问题?