Amazon ec2 在经过身份验证的HTTP代理之后开发AWS应用程序
我们必须开发一个将部署在AWS EC2上的应用程序。作为夜间构建的一部分,我们希望在本地对代码进行单元测试,然后部署到AWS实例并在internet上运行功能测试 在理想的情况下,我们只需编写一个构建脚本,使用AWS SDK选择合适的AMI,启动一个实例,使用SSH登录,设置环境,将我们的程序通过FTP传输,就可以了!然而,我们在一个HTTP代理后面。由于我们不能使用SSH或FTP,我们考虑了三个基本选项 1:尝试将用户数据添加到RunInstanceRequest,这将导致实例在启动时设置环境、下载并运行程序(可能从AWS S3存储桶)。在Java中,这类似于: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,这将导致实例在启动时设置环境
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的工作方式非常相似