2016-04-10 15 views
-2

私はNode.jsの新機能を使っていますが、Amazon Web Services(AWS)を使用してバックグラウンドでNode.jsを使用するWebサイトを実際にホストしたいと考えています。 NodeとSocket.ioとExpress.jsを使用しています。クライアント側のコードを持つhtmlファイルがあります。ここでNode.jsを特定のWebサイトにリッスンしてAWSを使用する方法を教えてください。

は、各ファイルの一部です:

server.js:

var express = require("express"); 
var app = express(); 
var http = require("http").Server(app); 
var io = require("socket.io")(http); 

io.on("connection", function(socket) { 
    console.log("-- User Connected"); 
}); 

//express home page 
app.get("/", function(req, res) { 
    res.sendFile(__dirname + "/index.html"); 
}); 

//express listen on 8080 
http.listen(8080, function() { 
    console.log("Running...\nListening on port 8080"); 
}); 

のindex.html(ジャストクライアント側のJavaScript)

<script src = "/socket.io/socket.io.js"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 

<script> 
    $(document).ready(function() { 
     var socket = io.connect(); 
     socket.on("connect", function() { 
      console.log("connected"); 
     }); 
    }); 
</script> 

すべてが素晴らしい作品が、私はでしたこれをAWSバケットにどのようにアップロードして実行するのかと不思議です。私はすでにAWSバケットに完全な.htmlファイルをアップロードしてホストをセットアップしていますので、起動して正常に動作します。しかし、server.jsファイルをアップロードして実行するにはどうすればいいですか?クライアント側のコード(io.connect()パラメータを変更する)とserver.jsコード(.listen()を何かに変更する)の両方で何が変更されるのですか?

ご協力いただきありがとうございます。

答えて

1

バケットは、AWSのシンプルなストレージの機能です。静的ファイルのみをサポートしています。自分で書いたサーバーサイドプログラムを実行することはできません。

そのためには、EC2などの別の製品が必要です。

1

Amazon EC2インスタンスでLinuxを実行できます。 Guide to get started with Amazon EC2

手順1:プロジェクトを簡単に複製できるように、プロジェクトのGithub/Bitbucketリポジトリを作成します。 GitHubのプライベートレポはBitbucketで支払われますが、いくつかの条件では無料です。

ステップ2:サーバーにSSHをインストールします。プロジェクトをクローンします。必要なパッケージをインストールします。これで、EC2インスタンス上でノードサーバーをローカルホスト上で実行するように実行できます。

ステップ3:AWSのようなパブリックDNS何かを提供します:経由ec2-**-**-**-**.compute-1.amazonaws.com今すぐアクセスノードサーバec2-52-86-163-5.compute-1.amazonaws.com:3000/

ステップ4:あなたはあなたが唯一のS3を使用することができますforever

+0

感謝を読んでください、私はあなたが私はそれを動作させるためにかかわらず、コードに変更すべきかを知っていますか...それを試してみましょうか? –

+0

いいえ、EC2での作業は、ローカルホストのレプリカの作成と同じです。無限にアプリケーションを実行するには、永遠のようなものが必要です。 –

0

のようなものを必要とする継続的にノードのアプリを実行するにはthis exampleに記載されているような静的なウェブサイトをホスティングするためのものです。

Node.jsアプリケーションをAWSでホストする場合は、Deploying Node.js Applications to AWS Elastic Beanstalkで説明されているように、Elastic Beanstalkを使用することをお勧めします。 EC2上でNode.jsアプリケーションをホストするのと比較しての主な違いは、Beanstalkはランタイム環境を提供するサービスであることです。つまり、オペレーティングシステムを自分で設定および管理する必要はありません。アプリケーションをパッケージ化してBeanstalkにアップロードするだけです。したがって、コードを実行するために必要なAWSリソースを使用して、起動環境が作成され、設定されます。

詳細については、What Is AWS Elastic Beanstalk?

関連する問題