2016-04-06 6 views
0

Meine ec2-Instanz ist der Server für eine Ruby-Anwendung. Ich möchte eine andere Instanz erstellen und es als ein Speicher + einfaches Rechenzentrum (zum Beispiel Dateien komprimieren), dann an den Amazon S3 Server senden wollen.Wie kommuniziert man zwischen zwei ec2 Instanzen? (Ich bin ein Ruby-Benutzer)

Ich habe keine andere Instanz erstellt, weil es ein bisschen schwierig für mich ist, herauszufinden, wo ich anfangen soll. Muss ich den Server-Dienst installieren oder muss ich Ruby auch dort installieren?

Und wie kann ich eine Postanforderung an den neuen Instanzserver stellen? Momentan wird die Wave-Blob-Datei über "params [: data]" empfangen und an den S3-Server gesendet (write method). Das Folgende ist ein Teil des Codes.

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

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

Ich möchte wirklich das Konzept lernen und eingehend verstehen. Zögern Sie nicht, eine Idee zu teilen, wo Sie anfangen sollen. :)

Beste

Antwort

0

Muss ich Server-Dienst installieren oder muss ich auch dort Rubin installieren?

Diese Frage ist extrem breit. Natürlich können Sie nicht einfach einen neuen Server erstellen und erwarten, dass er über alle Dienste verfügt, die Sie ausführen möchten, es sei denn, Sie erstellen den Server aus einem Snapshot eines bereits funktionierenden Servers. Wenn Sie einfach einen neuen Linux-Server von einem Standard-Linux-AMI erstellen, müssen Sie die Software installieren, die Sie auf diesem Server ausführen möchten.

Im Allgemeinen müsste auf Ihrem zweiten Server ein Dienst ausgeführt werden, der auf einen bestimmten Port hört, den Ihre Anwendung auf dem ersten Server aufrufen kann. Dies könnte ein REST-Dienst sein, der auf einem Standard-HTTP/HTTPS-Port abhört, oder es könnte eine Vielzahl anderer Diensttypen sein.

Auch gibt es nichts wirklich AWS spezifisch, es ist nur Standard-Linux-Server Zeug. Die einzigen AWS-spezifischen Elemente wären das Öffnen der Sicherheitsgruppen, um die Netzwerkkommunikation zwischen den beiden Servern zu ermöglichen, aber Sie sind noch nicht einmal an diesen Punkt gelangt.

Und wie kann ich eine Postanforderung an den neuen Instanzserver stellen?

Ich verstehe diesen Teil Ihrer Frage nicht. Wollen Sie damit sagen, dass die POST-Anfrage eines Browsers direkt an den zweiten Server gerichtet werden soll? Weitere Details zu Ihrer Anwendungsarchitektur sind erforderlich, um zu verstehen, was Sie hier fragen, und ehrlich gesagt sollten Sie das wahrscheinlich als zweite Frage veröffentlichen, wahrscheinlich nachdem Sie ein besseres Verständnis davon haben, was Sie erreichen möchten.

+0

Hallo Mark! Dein Standpunkt ist genau richtig. Meine App auf dem ersten Server zeichnet Sprachdatendateien auf und speichert sie alle 1 Minute auf dem S3-Server mit Ajax-Postanforderung. Also, wie kann ich einen Dienst einrichten, der auf meinem zweiten Server läuft, um auf einen bestimmten Port zu hören? (Lassen Sie uns sagen, meine App elastische IP ist 52.27.103.211 und zweiten Server öffentliche IP-Adresse ist 52.37.117.220)? (: Ich würde gerne den ersten Teil der Frage vollständig wissen. –

+0

"Wie kann ich einen Dienst einrichten, der auf meinem zweiten Server läuft, um auf einen bestimmten Port zu hören" Es tut mir leid, aber diese Frage ist zu weit. Es ist wie "wie mache ich Server-Programmierung ". Es gibt Tausende von möglichen Antworten auf diese Frage. Sie müssen eine Programmiersprache und eine Methode der Datenübertragung wählen und dann zurückkommen und eine bestimmte Frage stellen, wenn Sie immer noch nicht verstehen, wie Sie vorgehen. –

Verwandte Themen