Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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
Amazon ec2 在经过身份验证的HTTP代理之后开发AWS应用程序_Amazon Ec2_Amazon Web Services_Http Proxy - Fatal编程技术网

Amazon ec2 在经过身份验证的HTTP代理之后开发AWS应用程序

Amazon ec2 在经过身份验证的HTTP代理之后开发AWS应用程序,amazon-ec2,amazon-web-services,http-proxy,Amazon Ec2,Amazon Web Services,Http Proxy,我们必须开发一个将部署在AWS EC2上的应用程序。作为夜间构建的一部分,我们希望在本地对代码进行单元测试,然后部署到AWS实例并在internet上运行功能测试 在理想的情况下,我们只需编写一个构建脚本,使用AWS SDK选择合适的AMI,启动一个实例,使用SSH登录,设置环境,将我们的程序通过FTP传输,就可以了!然而,我们在一个HTTP代理后面。由于我们不能使用SSH或FTP,我们考虑了三个基本选项 1:尝试将用户数据添加到RunInstanceRequest,这将导致实例在启动时设置环境

我们必须开发一个将部署在AWS EC2上的应用程序。作为夜间构建的一部分,我们希望在本地对代码进行单元测试,然后部署到AWS实例并在internet上运行功能测试

在理想的情况下,我们只需编写一个构建脚本,使用AWS SDK选择合适的AMI,启动一个实例,使用SSH登录,设置环境,将我们的程序通过FTP传输,就可以了!然而,我们在一个HTTP代理后面。由于我们不能使用SSH或FTP,我们考虑了三个基本选项

1:尝试将用户数据添加到RunInstanceRequest,这将导致实例在启动时设置环境、下载并运行程序(可能从AWS S3存储桶)。在Java中,这类似于:

RunInstancesRequest runInstancesRequest = new RunInstancesRequest()
    .withInstanceType(myType)
    .withImageId(id)
    .withMinCount(min)
    .withMaxCount(max)
    .withSecurityGroupIds(mySecurityGroup)
    .withKeyName(someKey)
    .withUserData(myScript); //add our installation script

RunInstancesResult runInstances = ec2.runInstances(runInstancesRequest);
2:在本地VM上安装我们的程序,并使用ec2导入实例工具将整个VM导入AWS,如下所述

3:上下跳跃,要求一个限制较少的网络环境

我们对(1)感到不安,因为调试安装中的任何问题都非常困难。(2) 每次部署时都会涉及整个VM的传输和转换,(3)看起来不太可能

有人知道最好的方法吗


:D

为什么不构建自己的自定义AMI,在启动时自动下载并执行远程安装脚本?您可以编写一个奇特的init.d脚本,也可以从/etc/rc.local调用一个简单的shell脚本(假设使用类似Redhat的disto)。这与RightScale的工作方式非常相似