2016-04-06 29 views
0

我的ec2实例是一个ruby应用程序的服务器。我想创建另一个实例并将其作为存储+简单计算中心(例如压缩文件),然后发送到Amazon S3服务器。如何在两个ec2实例之间进行通信? (我是一个红宝石用户)

我还没有创建另一个实例,因为对于我来说有点难以确定从哪里开始。我必须安装服务器服务还是必须在那里安装Ruby?

而且,我该如何向新实例服务器发出发布请求?现在,wave blob文件通过“params [:data]”接收并发送到S3服务器(写入方法)。以下是代码的一部分。

obj = S3_BUCKET.objects[params[:fname]] 
     obj.write(
     file: params[:data], 
     acl: :public_read 
     ) 

     render :json => { 
          :file_content => "ex1", 
          :body => "ex2" 
      } 

我真的很想学习这个概念并深入理解。随意分享关于从哪里开始的任何想法。 :)

最佳

回答

0

我必须安装服务器服务还是做我也有安装Ruby 呢?

这个问题非常广泛。当然,你不能只创建一个新的服务器,并希望它拥有你想运行的所有服务,除非你从已经工作的服务器的快照创建服务器。如果你只是从标准的Linux AMI创建一个新的Linux服务器,那么你将不得不安装你想在该服务器上运行的任何软件。

通常,您需要在第二台服务器上运行服务,侦听特定的端口,以确保您的应用程序可以在第一台服务器上调用。这可能是一个在标准HTTP/HTTPS端口上侦听的REST服务,或者可能是各种其他服务类型。

也没有什么真正的AWS具体关于此,它只是标准的Linux服务器的东西。唯一的AWS特定项目将打开安全组以允许两台服务器之间的网络通信,但您还没有达到那一点。

而且,我该如何向新实例服务器发出发布请求?

我不明白你的问题的这一部分。你是说你想让浏览器的POST请求直接指向第二台服务器而不是第一台?为了理解你在这里提出的问题,需要更多关于你的应用程序体系结构的细节信息,并且说实话,你应该把它作为第二个问题发布,可能在你更好地理解你想完成的任务之后。

+0

嗨马克!你的观点完全正确。我的第一台服务器上的应用程序记录了语音数据文件,并每隔1分钟将其存储到S3服务器并发送Ajax请求。那么,我如何设置在我的第二台服务器上运行的服务来侦听特定端口? (比方说,我的应用程序弹性ip是52.27.103.211,第二个服务器的公有ip是52.37.117.220)? (:我很想知道问题的第一部分完全 –

+0

“我如何设置服务运行在我的第二台服务器上侦听特定的端口”我很抱歉,但这个问题太广泛,这就像问“如何我做了服务器编程“,这个问题有几千种可能的答案,你需要选择一种编程语言和一种数据传输方法,然后回来问一个具体的问题,如果你还不知道如何继续下去。 –

相关问题