Aplicación Node.js en AWS para principiantes

Comencé a aprender node.js hace un par de semanas y acabo de terminar mi primer proyecto pequeño, un sitio web básico de chat en vivo con socket.io y express. La estructura de mi proyecto se ve así:

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

Mi objective ahora es aprender a usar AWS para hacer que mi aplicación esté disponible para que las personas en diferentes máquinas puedan comunicarse entre sí, no solo yo en mi servidor local. Intenté seguir esta guía que usa Elastic Beanstalk para implementar un repository de muestra, pero me cuesta mucho ver cómo traducirlo a la estructura de mi carpeta, ya que ni siquiera tienen un HTML, por ejemplo.

Mi código de servidor se ve así:

 //*****************// // 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 } 

De todos modos, me preguntaba si alguno de ustedes, amigos ilustrados, podría ayudar a un noob a implementar su primer sitio web. Si pudiera darme un resumen general o señalarme uno, realmente lo apreciaría, ya que AWS puede ser bastante intimidante al comenzar. Gracias.

Diría que saltar directamente a los servicios web de Amazon sería un error, ya que AWS es solo una capa de abstracción en millones de tareas que puede realizar como administrador de la nube.

Si no tiene los conceptos básicos de la administración del servidor o no ha trabajado en una capacidad similar, puede resultar contraproducente.

Aún si estás dispuesto a dar el salto, aquí están los pasos que recomendaría:

  1. Aprende a crear una instancia de EC2
  2. Instale / instale el software requerido en su instancia de EC2
  3. Transfiere tu código a la instancia de EC2
  4. Configure / ejecute su aplicación.

Si ayuda, EC2 es solo un VPC con acceso de shell y puede usarlo a través de la línea de comandos como lo haría normalmente en un escritorio de Linux.

Boxfuse le permite implementar su aplicación Node.js en AWS sin esfuerzo, literalmente, en dos pasos desde el directorio de su proyecto:

  1. npm-bundle : crea un tgz que incluye su aplicación y todos los módulos de nodo necesarios (instale usando: npm install -g npm-bundle )
  2. boxfuse run -env = prod :
    • Crea una imagen mínima que contiene los contenidos del paquete tgz, así como el tiempo de ejecución Node.js, el kernel de Linux y un cargador de arranque.
    • Empuja esa imagen en la caja fuerte de Boxfuse
    • Lo convierte en un AMI
    • Crea un nuevo nombre de dominio.
    • Proporciona una IP elástica o un ELB (según el tipo de aplicación que haya configurado)
    • Crea un grupo de seguridad con los puertos correctos asignados
    • Lanza una nueva instancia de EC2 y asegura que está saludable
    • Asignar el IP elástico a la instancia.

Boxfuse se basa en 3 principios: Infraestructura inmutable , Imágenes mínimas y despliegues en azul / verde con cero tiempo de inactividad.

Boxfuse también incluye compatibilidad inmediata con el escalado automático, las bases de datos relacionales y el rápido desarrollo y pruebas locales en VirtualBox.

Tenemos un tutorial que puede seguir para comenzar en 5 minutos: https://boxfuse.com/getstarted/nodejs

Descargo de responsabilidad: soy el fundador y CEO de Boxfuse

Comience con los documentos de AWS y obtenga una cuenta gratuita en AWS, ensucie su mano. Haga que las cosas rompan las cosas y, de nuevo, repárelas, así es como aprenderá AWS.

Con respecto al material de estudio 1. AWS DOCS 2. REinventar videos en youtube 3. Compre una cuenta en Pluralsite que tienen muy buen curso sobre estos.

Comience con Ec2 y VPC