SlideShare una empresa de Scribd logo
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Mauro Parra-Miranda
Senior DevOps @ Limelight Health, Inc.
Deployment de NodeJS con AWS
Elastic Beanstalk
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
¿Quién soy?
• Mauro Parra-Miranda
• He trabajado con UNAM, SEP, Novell, SUSE, ex-Ximian,
Appcelerator – Co-fundador de Open Enchilada
• He contribuido en proyectos como openSUSE y Mozilla.
• Administrador de Linux en el Mainframe desde 2004 con SLES
• Experiencia con AWS desde 2006 (EC2)
• Actualmente trabajo como Senior DevOps en:
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Agenda
• ¿Qué es AWS Elastic Beanstalk?
• Consideraciones de módulos de nodejs para elastic beanstalk
• ¿Cómo crear zip files para Elastic Beanstalk?
• Deployment de un proyecto NodeJS en Elastic Beanstalk
• Configuraciones interesantes para Elastic Beanstalk
• Conclusiones
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Creando un proyecto sencillo
• Abrimos una terminal (linux / mac)
• Corremos $ node --version / npm para ver si esta instalado (en caso
de que no, apt-get install node npm --y o brew install node)
• Instalamos express application generator:
$ npm install express-generator –g (se root o usa sudo para el –g)
• Corremos el express generator:
$ express --view=pug myapp
• Configuran y corran la aplicación:
$ cd myapp && npm install && npm start
• (Revisen localhost:3000 – el port default de express)
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Notas a considerar
• Nuestro proyecto ya esta corriendo en Node v8, por lo que ya existe
un package-lock.json – Ese archive les ayuda a establecer un set
“fijo” de versiones de modulos de node que funcionan correctamente
con su app.
• Correr el npm-install nos genera un directorio de node_modules.
Normalmente ustedes no quieren usarlo en otro lado, sin embargo en
el caso de un deployment en AWS Elastic Beanstalk si lo deseas,
porque en caso de que npm este caído o exista algún paquete roto,
no quieres que en cada instancia en producción que levante por ti el
elastic beanstalk, falle.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Algunos cambios
Ya que probamos la version inicial, necesitamos:
• $ npm install dotenv –save
• $ emacs –nw app.js (si no tienen emacs, instalenlo via apt-get install o brew install)
• Anexen hasta arrriba la línea:
• Require(‘dotenv’).load()
• Editen y anexen una línea despues del var app = express();
• app.set(‘port’, process.env.PORT || 3000);
• Creen un .env
• $ emacs –nw .env
• Anexen una línea:
• PORT=8888
• Salven el archivo y corran de Nuevo:
• $ npm start
• Abran su navegador a localhost:8888
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Creando zipfiles para Elastic Beanstalk
• Remuevan package.json
• $ mv package.json my-package.json
• Empaquen todo:
• $ zip –r ../fistdeployment.zip .env *
• La razón por la que renombro el archive package.json es
para que Elastic beanstalk no corra npm install cada vez
que quiera correr una nueva instancia.
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Deployment
• Ve a http://console.aws.amazon.com/
• Logueate con tus credenciales personales
• Busca “Elastic Beanstalk”
• Select a platform – NodeJS
• Launch Now
• Create a new environment (o espera a que AWS cree el primero por ti).
• Se crea un S3 bucket para los zip files
• Se crea una entrada en la página de versiones (limitado a 1000 versiones
por proyecto – suena mucho pero en efecto se puede terminar rápido)
• Se crean una serie de máquinas para que corran tu servidor web.
• Se crea un load balancer
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Deployment – Configuración del software
• Ve a Configuration -> Software Configuration -> Container options
• Cambiemos Node version a 8.11.1
• Cambiemos el node command a
node ./bin/www
• Click en Apply
• Esperar un poco
• Clickear en la URL que te indique el Elastic beanstalk que apunta tu
loadbalancer:
http://default-environment.hgetzamh4m.us-west-2.elasticbeanstalk.com/
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Configuraciones interesantes
• ¿Qué tanto quieres escalar?
• Cambiar tipo de máquina
• Cambiar reglas para escalar
• Modificar o crear reglas especificas para que se apaguen
servicios durante la noche
• Cómo deployeas
• ¿por qué el .env file es interesante?
• Balanceo de Cargas – SSL – Certificados
• Logs
• Alarmas
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Comparaciones de costo de tu operación (Oregon)
EC2 Instance
type RAM CPU Price Per hour
m5.large 8GB RAM 2VCPU 0.096
# Servidores Horas Costo Subtotal
2 12 0.096 $ 2.30
4 4 0.096 $ 1.54
40 3 0.096 $ 11.52
4 4 0.096 $ 1.54
60 1 0.096 $ 5.76
24 $ 22.66
Costo por dia
de OPS
$ 679.68
Costo mensual
de OPS
EC2 Instance
type RAM CPU Price Per hour
m5.large 8GB RAM 2VCPU 0.096
# Servidores Horas Costo Subtotal
2
4
40
4
60
22 24 0.096 $ 50.69
Costo por dia
de OPS
$ 1,520.64
Costo mensual
de OPS
Autoscale Fixed
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Puedes contactarme en
• mauro@limelighthealth.com
• @mauropm – twitter
• https://medium.com/@mauropm

Más contenido relacionado

La actualidad más candente

AWS para torpes - Introducción a AWS
AWS para torpes - Introducción a AWSAWS para torpes - Introducción a AWS
AWS para torpes - Introducción a AWS
Alvaro García Loaisa
 
AWS IAM: Mejores prácticas - 2016 AWS Summit Buenos Aires
AWS IAM: Mejores prácticas - 2016 AWS Summit Buenos AiresAWS IAM: Mejores prácticas - 2016 AWS Summit Buenos Aires
AWS IAM: Mejores prácticas - 2016 AWS Summit Buenos Aires
Amazon Web Services LATAM
 
AWS Summit Bogotá Track Básico: Bases de datos en AWS
AWS Summit Bogotá Track Básico: Bases de datos en AWSAWS Summit Bogotá Track Básico: Bases de datos en AWS
AWS Summit Bogotá Track Básico: Bases de datos en AWS
Amazon Web Services
 
Escalando a sus primeros 10 millones de usuarios
Escalando a sus primeros 10 millones de usuarios Escalando a sus primeros 10 millones de usuarios
Escalando a sus primeros 10 millones de usuarios
Amazon Web Services LATAM
 
Internet Information Services
Internet Information ServicesInternet Information Services
Internet Information ServicesEduardo J Onofre
 
Webinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSWebinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWS
Amazon Web Services LATAM
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
Arsys
 
AWS Summit Bogotá Track Básico: Arquitectura para alta disponibilidad en AWS
AWS Summit Bogotá Track Básico: Arquitectura para alta disponibilidad en AWSAWS Summit Bogotá Track Básico: Arquitectura para alta disponibilidad en AWS
AWS Summit Bogotá Track Básico: Arquitectura para alta disponibilidad en AWS
Amazon Web Services
 
Introducción a AWS
Introducción a AWSIntroducción a AWS
EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad
Amazon Web Services LATAM
 
Evento MultiTrain nube híbrida con Microsoft Azure
Evento MultiTrain nube híbrida con Microsoft AzureEvento MultiTrain nube híbrida con Microsoft Azure
Evento MultiTrain nube híbrida con Microsoft Azure
Ignacio Parladé Osborne
 
Webinar: Comenzando con los servicios de AWS
Webinar: Comenzando con los servicios de AWSWebinar: Comenzando con los servicios de AWS
Webinar: Comenzando con los servicios de AWS
Amazon Web Services LATAM
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
Ricard Clau
 
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
Amazon Web Services LATAM
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
Eduard Tomàs
 
Backbeam
BackbeamBackbeam
Backbeam
betabeers
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
Domingo Suarez Torres
 
Migración de datos a la nube: 6 estrategias para llevar datos a AWS
Migración de datos a la nube: 6 estrategias para llevar datos a AWSMigración de datos a la nube: 6 estrategias para llevar datos a AWS
Migración de datos a la nube: 6 estrategias para llevar datos a AWS
Amazon Web Services LATAM
 

La actualidad más candente (20)

AWS para torpes - Introducción a AWS
AWS para torpes - Introducción a AWSAWS para torpes - Introducción a AWS
AWS para torpes - Introducción a AWS
 
AWS IAM: Mejores prácticas - 2016 AWS Summit Buenos Aires
AWS IAM: Mejores prácticas - 2016 AWS Summit Buenos AiresAWS IAM: Mejores prácticas - 2016 AWS Summit Buenos Aires
AWS IAM: Mejores prácticas - 2016 AWS Summit Buenos Aires
 
Practica 5 iis asir
Practica 5 iis asirPractica 5 iis asir
Practica 5 iis asir
 
AWS Summit Bogotá Track Básico: Bases de datos en AWS
AWS Summit Bogotá Track Básico: Bases de datos en AWSAWS Summit Bogotá Track Básico: Bases de datos en AWS
AWS Summit Bogotá Track Básico: Bases de datos en AWS
 
Escalando a sus primeros 10 millones de usuarios
Escalando a sus primeros 10 millones de usuarios Escalando a sus primeros 10 millones de usuarios
Escalando a sus primeros 10 millones de usuarios
 
Internet Information Services
Internet Information ServicesInternet Information Services
Internet Information Services
 
Webinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWSWebinar: Ask the Architect - Servicios de Storage de AWS
Webinar: Ask the Architect - Servicios de Storage de AWS
 
Webinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores CloudWebinar –Conectar servidores dedicados con Servidores Cloud
Webinar –Conectar servidores dedicados con Servidores Cloud
 
AWS Summit Bogotá Track Básico: Arquitectura para alta disponibilidad en AWS
AWS Summit Bogotá Track Básico: Arquitectura para alta disponibilidad en AWSAWS Summit Bogotá Track Básico: Arquitectura para alta disponibilidad en AWS
AWS Summit Bogotá Track Básico: Arquitectura para alta disponibilidad en AWS
 
Introducción a AWS
Introducción a AWSIntroducción a AWS
Introducción a AWS
 
Sql 1
Sql 1Sql 1
Sql 1
 
EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad EC2: Cómputo en la nube a profundidad
EC2: Cómputo en la nube a profundidad
 
Evento MultiTrain nube híbrida con Microsoft Azure
Evento MultiTrain nube híbrida con Microsoft AzureEvento MultiTrain nube híbrida con Microsoft Azure
Evento MultiTrain nube híbrida con Microsoft Azure
 
Webinar: Comenzando con los servicios de AWS
Webinar: Comenzando con los servicios de AWSWebinar: Comenzando con los servicios de AWS
Webinar: Comenzando con los servicios de AWS
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
AWS Summit Lima 2015: VIrtual Private Cloud y opciones de conectividad con Le...
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
Backbeam
BackbeamBackbeam
Backbeam
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
 
Migración de datos a la nube: 6 estrategias para llevar datos a AWS
Migración de datos a la nube: 6 estrategias para llevar datos a AWSMigración de datos a la nube: 6 estrategias para llevar datos a AWS
Migración de datos a la nube: 6 estrategias para llevar datos a AWS
 

Similar a AWS Summit Mexico City 2018 - Usando Elastic Beanstalk

Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexicoAmazon Web Services LATAM
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
Juan Belón Pérez
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
Juan Belón Pérez
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...Amazon Web Services
 
Clase sobre Optimización de Wordpress
Clase sobre Optimización de WordpressClase sobre Optimización de Wordpress
Clase sobre Optimización de Wordpress
Juan Ignacio Alberola
 
Escalabilidad de Websites
Escalabilidad de WebsitesEscalabilidad de Websites
Escalabilidad de Websites
Fabian Andres Ramirez Sepulveda
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
Amazon Web Services LATAM
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernas
Amazon Web Services LATAM
 
Tipos plataformas web
Tipos plataformas webTipos plataformas web
Tipos plataformas web
Astrid Valdes
 
Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWS
Amazon Web Services LATAM
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Francisco Javier Toscano Lopez
 
Plataformas de desarrollo web
Plataformas de desarrollo webPlataformas de desarrollo web
Plataformas de desarrollo web
Genesis Jurado
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
OpenExpoES
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
Eduardo Rafael Petla
 
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Amazon Web Services
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Gonzalo Chacaltana
 
Automatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudAutomatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloud
Software Guru
 
C:\Fakepath\Dm Trejo Produccion De Recursos[1]
C:\Fakepath\Dm Trejo Produccion De Recursos[1]C:\Fakepath\Dm Trejo Produccion De Recursos[1]
C:\Fakepath\Dm Trejo Produccion De Recursos[1]
Dulce trejo
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
Juan Carlos Rubio Pineda
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
wpargentina
 

Similar a AWS Summit Mexico City 2018 - Usando Elastic Beanstalk (20)

Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexico
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
AWS Presentacion Universidad de los Andes "Escalando para sus primeros 10 Mil...
 
Clase sobre Optimización de Wordpress
Clase sobre Optimización de WordpressClase sobre Optimización de Wordpress
Clase sobre Optimización de Wordpress
 
Escalabilidad de Websites
Escalabilidad de WebsitesEscalabilidad de Websites
Escalabilidad de Websites
 
Escalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuariosEscalando para sus primeros 10 millones de usuarios
Escalando para sus primeros 10 millones de usuarios
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernas
 
Tipos plataformas web
Tipos plataformas webTipos plataformas web
Tipos plataformas web
 
Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWS
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Plataformas de desarrollo web
Plataformas de desarrollo webPlataformas de desarrollo web
Plataformas de desarrollo web
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
Automatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudAutomatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloud
 
C:\Fakepath\Dm Trejo Produccion De Recursos[1]
C:\Fakepath\Dm Trejo Produccion De Recursos[1]C:\Fakepath\Dm Trejo Produccion De Recursos[1]
C:\Fakepath\Dm Trejo Produccion De Recursos[1]
 
4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML4/9 Curso JEE5, Soa, Web Services, ESB y XML
4/9 Curso JEE5, Soa, Web Services, ESB y XML
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 

Más de Mauro Parra-Miranda

Configuraciones inseguras
Configuraciones insegurasConfiguraciones inseguras
Configuraciones inseguras
Mauro Parra-Miranda
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101
Mauro Parra-Miranda
 
¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?
Mauro Parra-Miranda
 
Startuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en español
Mauro Parra-Miranda
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
Mauro Parra-Miranda
 
Fractura Sismo
Fractura SismoFractura Sismo
Fractura Sismo
Mauro Parra-Miranda
 
Del startup al negocio, the missing manual
Del startup al negocio, the missing manualDel startup al negocio, the missing manual
Del startup al negocio, the missing manual
Mauro Parra-Miranda
 
AppHack GDL 2013
AppHack GDL 2013AppHack GDL 2013
AppHack GDL 2013
Mauro Parra-Miranda
 
Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013
Mauro Parra-Miranda
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
Mauro Parra-Miranda
 
Alloy Preview
Alloy PreviewAlloy Preview
Alloy Preview
Mauro Parra-Miranda
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
Mauro Parra-Miranda
 
Mercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMercado de Móviles: Una visión global
Mercado de Móviles: Una visión global
Mauro Parra-Miranda
 
Economía de las Apps
Economía de las AppsEconomía de las Apps
Economía de las Apps
Mauro Parra-Miranda
 
Mobileads
MobileadsMobileads
Frameworks iOS
Frameworks iOSFrameworks iOS
Frameworks iOS
Mauro Parra-Miranda
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
Mauro Parra-Miranda
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
Mauro Parra-Miranda
 

Más de Mauro Parra-Miranda (20)

Configuraciones inseguras
Configuraciones insegurasConfiguraciones inseguras
Configuraciones inseguras
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101
 
¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?
 
Startuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en español
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
 
Fractura Sismo
Fractura SismoFractura Sismo
Fractura Sismo
 
Del startup al negocio, the missing manual
Del startup al negocio, the missing manualDel startup al negocio, the missing manual
Del startup al negocio, the missing manual
 
AppHack GDL 2013
AppHack GDL 2013AppHack GDL 2013
AppHack GDL 2013
 
Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Alloy Preview
Alloy PreviewAlloy Preview
Alloy Preview
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
 
Mercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMercado de Móviles: Una visión global
Mercado de Móviles: Una visión global
 
Economía de las Apps
Economía de las AppsEconomía de las Apps
Economía de las Apps
 
Mobileads
MobileadsMobileads
Mobileads
 
Frameworks iOS
Frameworks iOSFrameworks iOS
Frameworks iOS
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
 
Moviles
MovilesMoviles
Moviles
 
open build service
open build service open build service
open build service
 

Último

trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
julio05042006
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
AMADO SALVADOR
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
juanchogame18
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
tamarita881
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
evelinglilibethpeafi
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
JuanAlvarez413513
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
yuki22434
 
TEMA 2-CARPAS SOLARES PARA PRODUCCION DE HORTALIZAS.ppt
TEMA 2-CARPAS SOLARES PARA PRODUCCION DE HORTALIZAS.pptTEMA 2-CARPAS SOLARES PARA PRODUCCION DE HORTALIZAS.ppt
TEMA 2-CARPAS SOLARES PARA PRODUCCION DE HORTALIZAS.ppt
SandroNava1
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
AlejandraCasallas7
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
durangense277
 

Último (20)

trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
herramientas de sitio web 3.0 2024
herramientas de sitio web 3.0  2024herramientas de sitio web 3.0  2024
herramientas de sitio web 3.0 2024
 
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialCatalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor Oficial
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Presentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The CleanPresentacion de Estado del Arte del The Clean
Presentacion de Estado del Arte del The Clean
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
SISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsxSISTESIS RETO4 Grupo4 co-creadores .ppsx
SISTESIS RETO4 Grupo4 co-creadores .ppsx
 
modelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptxmodelosdeteclados-230114024527-aa2c9553.pptx
modelosdeteclados-230114024527-aa2c9553.pptx
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
absorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratoriosabsorcion de gases y practicas de laboratorios
absorcion de gases y practicas de laboratorios
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1algebra de boole teoria.pdf texto guia.1
algebra de boole teoria.pdf texto guia.1
 
TEMA 2-CARPAS SOLARES PARA PRODUCCION DE HORTALIZAS.ppt
TEMA 2-CARPAS SOLARES PARA PRODUCCION DE HORTALIZAS.pptTEMA 2-CARPAS SOLARES PARA PRODUCCION DE HORTALIZAS.ppt
TEMA 2-CARPAS SOLARES PARA PRODUCCION DE HORTALIZAS.ppt
 
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdfDesarrollo de Habilidades de Pensamiento.docx (3).pdf
Desarrollo de Habilidades de Pensamiento.docx (3).pdf
 
Ventajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloroVentajas y desventajas de la desinfección con cloro
Ventajas y desventajas de la desinfección con cloro
 

AWS Summit Mexico City 2018 - Usando Elastic Beanstalk

  • 1. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Mauro Parra-Miranda Senior DevOps @ Limelight Health, Inc. Deployment de NodeJS con AWS Elastic Beanstalk
  • 2. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. ¿Quién soy? • Mauro Parra-Miranda • He trabajado con UNAM, SEP, Novell, SUSE, ex-Ximian, Appcelerator – Co-fundador de Open Enchilada • He contribuido en proyectos como openSUSE y Mozilla. • Administrador de Linux en el Mainframe desde 2004 con SLES • Experiencia con AWS desde 2006 (EC2) • Actualmente trabajo como Senior DevOps en:
  • 3. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Agenda • ¿Qué es AWS Elastic Beanstalk? • Consideraciones de módulos de nodejs para elastic beanstalk • ¿Cómo crear zip files para Elastic Beanstalk? • Deployment de un proyecto NodeJS en Elastic Beanstalk • Configuraciones interesantes para Elastic Beanstalk • Conclusiones
  • 4. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 5. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Creando un proyecto sencillo • Abrimos una terminal (linux / mac) • Corremos $ node --version / npm para ver si esta instalado (en caso de que no, apt-get install node npm --y o brew install node) • Instalamos express application generator: $ npm install express-generator –g (se root o usa sudo para el –g) • Corremos el express generator: $ express --view=pug myapp • Configuran y corran la aplicación: $ cd myapp && npm install && npm start • (Revisen localhost:3000 – el port default de express)
  • 6. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Notas a considerar • Nuestro proyecto ya esta corriendo en Node v8, por lo que ya existe un package-lock.json – Ese archive les ayuda a establecer un set “fijo” de versiones de modulos de node que funcionan correctamente con su app. • Correr el npm-install nos genera un directorio de node_modules. Normalmente ustedes no quieren usarlo en otro lado, sin embargo en el caso de un deployment en AWS Elastic Beanstalk si lo deseas, porque en caso de que npm este caído o exista algún paquete roto, no quieres que en cada instancia en producción que levante por ti el elastic beanstalk, falle.
  • 7. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Algunos cambios Ya que probamos la version inicial, necesitamos: • $ npm install dotenv –save • $ emacs –nw app.js (si no tienen emacs, instalenlo via apt-get install o brew install) • Anexen hasta arrriba la línea: • Require(‘dotenv’).load() • Editen y anexen una línea despues del var app = express(); • app.set(‘port’, process.env.PORT || 3000); • Creen un .env • $ emacs –nw .env • Anexen una línea: • PORT=8888 • Salven el archivo y corran de Nuevo: • $ npm start • Abran su navegador a localhost:8888
  • 8. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Creando zipfiles para Elastic Beanstalk • Remuevan package.json • $ mv package.json my-package.json • Empaquen todo: • $ zip –r ../fistdeployment.zip .env * • La razón por la que renombro el archive package.json es para que Elastic beanstalk no corra npm install cada vez que quiera correr una nueva instancia.
  • 9. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Deployment • Ve a http://console.aws.amazon.com/ • Logueate con tus credenciales personales • Busca “Elastic Beanstalk” • Select a platform – NodeJS • Launch Now • Create a new environment (o espera a que AWS cree el primero por ti). • Se crea un S3 bucket para los zip files • Se crea una entrada en la página de versiones (limitado a 1000 versiones por proyecto – suena mucho pero en efecto se puede terminar rápido) • Se crean una serie de máquinas para que corran tu servidor web. • Se crea un load balancer
  • 10. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Deployment – Configuración del software • Ve a Configuration -> Software Configuration -> Container options • Cambiemos Node version a 8.11.1 • Cambiemos el node command a node ./bin/www • Click en Apply • Esperar un poco • Clickear en la URL que te indique el Elastic beanstalk que apunta tu loadbalancer: http://default-environment.hgetzamh4m.us-west-2.elasticbeanstalk.com/
  • 11. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Configuraciones interesantes • ¿Qué tanto quieres escalar? • Cambiar tipo de máquina • Cambiar reglas para escalar • Modificar o crear reglas especificas para que se apaguen servicios durante la noche • Cómo deployeas • ¿por qué el .env file es interesante? • Balanceo de Cargas – SSL – Certificados • Logs • Alarmas
  • 12. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Comparaciones de costo de tu operación (Oregon) EC2 Instance type RAM CPU Price Per hour m5.large 8GB RAM 2VCPU 0.096 # Servidores Horas Costo Subtotal 2 12 0.096 $ 2.30 4 4 0.096 $ 1.54 40 3 0.096 $ 11.52 4 4 0.096 $ 1.54 60 1 0.096 $ 5.76 24 $ 22.66 Costo por dia de OPS $ 679.68 Costo mensual de OPS EC2 Instance type RAM CPU Price Per hour m5.large 8GB RAM 2VCPU 0.096 # Servidores Horas Costo Subtotal 2 4 40 4 60 22 24 0.096 $ 50.69 Costo por dia de OPS $ 1,520.64 Costo mensual de OPS Autoscale Fixed
  • 13. © 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved. Puedes contactarme en • mauro@limelighthealth.com • @mauropm – twitter • https://medium.com/@mauropm