适用于初学者的AWS上的Node.js应用程序

时间:2016-03-12 19:41:22

标签: node.js amazon-web-services amazon-ec2

我几周前开始学习node.js,刚刚完成了我的第一个小项目,一个使用socket.io和express的基本在线聊天网站。我项目的结构如下所示:

ChatApp
   |
   |____backend.js                      // node server side code
   |
   |____ static
   |        |
   |        |_____ libs
   |                 |
   |                 |___ app.js        // front end logic
   |                 |
   |                 |___ jquery.min.js                       
   |____ views
            |
            |_____ index.html           // Client website

我现在的目标是学习如何使用AWS使我的应用程序可用,这样不同机器上的人就可以互相交流,而不仅仅是我本地服务器上的人。我尝试使用使用Elastic Beanstalk来部署示例存储库的this guide,但我很难看到如何将其转换为我的文件夹结构,因为他们甚至没有HTML实例

我的服务器代码如下所示:

//*****************//
// Sets up backend //
//*****************//
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var express = require('express');
server.listen(8080);
app.use(express.static(__dirname + '/views'));
app.use(express.static(__dirname + '/static'));
var users = [];

//*****************//
// Sends out html  //
//*****************//
app.get('/', function(req, res){ // Main page
    res.render('index.html');
});

//*************************//
// Handles socket requests //
//*************************//
io.on("connection", handleIO); // Called when user connects

function handleIO(socket){
    console.log('Client connected...');
    // Bunch of socket.io code I didn't think was necessary to add
}

无论如何,我想知道你们中任何一个开明的人是否可以通过部署他的第一个网站来帮助一个菜鸟。如果您可以给我一个大纲或指向我,我真的很感激,因为AWS在首次开始时可能非常令人生畏。感谢。

3 个答案:

答案 0 :(得分:1)

我想说直接进入亚马逊网络服务将是一个错误,因为AWS只是数百万个可以作为云管理员执行的任务的抽象层。

如果您没有服务器管理的基本概念或没有以类似的能力工作,那么它可能会适得其反。

如果你愿意跳跃,我建议采取以下步骤:

  1. 了解如何创建EC2实例
  2. 在EC2实例上设置/安装所需的软件
  3. 将代码转移到EC2实例
  4. 配置/运行您的应用程序。
  5. 如果它有帮助,EC2只是一个具有shell访问权限的VPC,您可以通过命令行使用它,就像通常的桌面Linux一样。

答案 1 :(得分:1)

Boxfuse允许您在项目目录中的两个步骤中轻松地将Node.js应用程序部署到AWS:

  1. npm-bundle :创建包含您的应用和所有必需节点模块的tgz(使用:npm install -g npm-bundle安装)
  2. boxfuse run -env = prod
    • 创建一个包含tgz包的内容以及Node.js运行时,Linux内核和引导程序的最小图像
    • 将图像推送到安全的Boxfuse Vault
    • 将其转换为AMI
    • 创建新域名
    • 规定弹性IP或ELB(取决于您配置的应用类型)
    • 使用正确的映射端口
    • 创建安全组
    • 启动新的EC2实例并确保其健康
    • 将弹性IP分配给实例
  3. Boxfuse基于3个原则:Immutable InfrastructureMinimal Images和蓝/绿部署,零停机时间。

    Boxfuse还提供对自动扩展,关系数据库以及VirtualBox上的快速本地开发和测试的开箱即用支持。

    我们有一个教程,您可以在5分钟内开始使用该教程:https://boxfuse.com/getstarted/nodejs

    免责声明:我是Boxfuse的创始人兼首席执行官

答案 2 :(得分:0)

从AWS文档开始,在AWS上获得一个免费帐户,让你的手变脏。让事情破坏并再次修复它们,这就是你将如何学习AWS。

关于学习材料 1. AWS DOCS 2.在youtube上重新发送视频 3.购买一个Pluralsite帐户,他们有很好的课程。

从Ec2和VPC开始