Implementación y gestión de websites/webapps 
México 
D.F.
Introducción a 
AWS Elastic Beansltak 
Damián Traverso – AWS Solutions Architect 
traverso@amazon.com
Agenda 
• Qué es Elastic Beanstalk? 
• Cómo funciona Elastic Beanstalk? 
• Deployment de una aplicación PHP 
• Zero Downti...
Qué es AWS Elastic Beanstalk?
Qué es AWS Elastic Beanstalk? 
• Es un servicio utilizado para la implementación y gestión de aplicaciones 
• Variedad de ...
Qué es AWS Elastic Beanstalk? 
• Con sólo subir el código, Elastic Beansltak se encarga de las siguientes tareas: 
• Provi...
Qué es AWS Elastic Beanstalk? 
• Con Elastic Beanstalk, los desarrolladores cuentan con el control absoluto sobre 
los rec...
Qué es AWS Elastic Beanstalk? 
• Algunos de los recursos AWS que pueden ser provisionados e integrados: 
• Elastic Load Ba...
Qué es AWS Elastic Beanstalk? 
• Puede ser utilizado desde: 
1. AWS Management Console 
2. EB Command Line Interface (inte...
Cómo funciona?
Cómo funciona? 
Componentes: 
1. Application 
2. Application Version 
3. Environment 
4. Environment Configuration 
5. Con...
Cómo funciona? 
• Environment Tiers: 
• Web Server Tier 
• Worker Tier 
• Environment Types: 
• Single Instance 
• Load Ba...
Web Server Environment Tier
Deployment de una 
aplicación PHP
Creación del paquete con el código fuente 
$ mkdir roadshowdemo 
$ cd roadshowdemo/ 
$ cat << EOF >> index.php 
> <?php 
>...
Zero Downtime Deployment
Zero Downtime Deployment 
• Actualización del código de la aplicación, sin interrumpir ni afectar el tráfico actual 
• Con...
Zero Downtime Deployment 
$ cat << EOF >> index.php 
> <?php 
> 
> echo "<h1>AWS Elastic Beanstalk PHP Sample Application<...
Zero Downtime Deployment 
• El swap de URLs también puede ser hecho con un registro de DNS propio del 
usuario 
• Por ejem...
Integración con RDS
Integración con RDS 
• Distintos escenarios posibles: 
1. Crear una instancia RDS para cada environment 
2. Usar instancia...
Accediendo a los parámetros del environment
Auto-Scaling
Auto-Scaling 
• Elastic Beanstalk escala automáticamente las aplicaciones 
• Es posible escoger las condiciones en las cua...
Auto-Scaling 
• Usando la herramienta Apache Benchmark, vamos a demostrar como funciona Auto- 
Scaling 
• El siguiente com...
AWS Command Line Interface
AWS Command Line Interface 
• Creamos una aplicación 
$ aws elasticbeanstalk create-application --application-name RoadSho...
AWS Command Line Interface 
• Guardamos la configuración de un ambiente existente (podemos crear una nueva) 
$ aws elastic...
Q&A
Gracias!! 
Damián Traverso – AWS Solutions Architect 
traverso@amazon.com
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexico
Próxima SlideShare
Cargando en…5
×

Introduccion a elastic beanstalk aws roadshow bogota mexico

723 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
723
En SlideShare
0
De insertados
0
Número de insertados
10
Acciones
Compartido
0
Descargas
8
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Introduccion a elastic beanstalk aws roadshow bogota mexico

  1. 1. Implementación y gestión de websites/webapps México D.F.
  2. 2. Introducción a AWS Elastic Beansltak Damián Traverso – AWS Solutions Architect traverso@amazon.com
  3. 3. Agenda • Qué es Elastic Beanstalk? • Cómo funciona Elastic Beanstalk? • Deployment de una aplicación PHP • Zero Downtime Deployment • Auto-Scaling • Q&A
  4. 4. Qué es AWS Elastic Beanstalk?
  5. 5. Qué es AWS Elastic Beanstalk? • Es un servicio utilizado para la implementación y gestión de aplicaciones • Variedad de lenguajes disponibles: • Java • .NET • Python • Ruby • PHP • Docker • node.js
  6. 6. Qué es AWS Elastic Beanstalk? • Con sólo subir el código, Elastic Beansltak se encarga de las siguientes tareas: • Provisionamiento de recursos • Instalación de paquetes necesarios del Sistema Operativo • Deployment del código fuente • Escalamiento automático (adicionar o remover recursos) • Monitoreo • Permite centralizar archivos de log en S3 y monitorear los mismos • No se cargan tarifas adicionales, sólo se paga por los recursos de AWS que sean necesarios para ejecutar sus aplicaciones
  7. 7. Qué es AWS Elastic Beanstalk? • Con Elastic Beanstalk, los desarrolladores cuentan con el control absoluto sobre los recursos de AWS que potencian la aplicación • Se pueden realizar una gran variedad de funciones, entre otras: • Seleccionar el tipo de instancia Amazon EC2 más apropiado que coincida conlos requisitos de memoria de la aplicación y la CPU. • Habilitar a instancias de Amazon EC2 para la resolución inmediata y directa de problemas • Mejorar de manera rápida la disponibildiad de la aplicación ejecutándola en más de una zona de disponibilidad • Ajustar la configuración del servidor de la aplicación (por ejemplo, la configuración de JVM) y pasar las variables de entorno
  8. 8. Qué es AWS Elastic Beanstalk? • Algunos de los recursos AWS que pueden ser provisionados e integrados: • Elastic Load Balancers • Auto-Scaling Groups • Instancias RDS • Tablas de DynamoDB • Nodos de ElastiCache • SQS (Simple Queue Service)
  9. 9. Qué es AWS Elastic Beanstalk? • Puede ser utilizado desde: 1. AWS Management Console 2. EB Command Line Interface (integración con Git) 3. AWS Command Line Interface 4. API usando las AWS SDKs • Posiblidad de automatizar todo el ciclo de desarrollo
  10. 10. Cómo funciona?
  11. 11. Cómo funciona? Componentes: 1. Application 2. Application Version 3. Environment 4. Environment Configuration 5. Configuration Template
  12. 12. Cómo funciona? • Environment Tiers: • Web Server Tier • Worker Tier • Environment Types: • Single Instance • Load Balancing, auto scaling
  13. 13. Web Server Environment Tier
  14. 14. Deployment de una aplicación PHP
  15. 15. Creación del paquete con el código fuente $ mkdir roadshowdemo $ cd roadshowdemo/ $ cat << EOF >> index.php > <?php > > echo "<h1>AWS Elastic Beanstalk PHP Sample Application</h1>n"; > > ?> > EOF $ zip ../roadshowdemo_v1.zip -r * .[^.]* adding: index.php (stored 0%)
  16. 16. Zero Downtime Deployment
  17. 17. Zero Downtime Deployment • Actualización del código de la aplicación, sin interrumpir ni afectar el tráfico actual • Consiste en crear un nuevo environment con la nueva versión, para luego realizar un “swap” de URLs • También conocido como “Blue/Green Deployment” • Muy útil para automatizar nuevos releases con herramientas de CI • Facilita rollbacks en caso de encontrar errores en la nueva versión, ya que la versión anterior todavía se encuentra disponible
  18. 18. Zero Downtime Deployment $ cat << EOF >> index.php > <?php > > echo "<h1>AWS Elastic Beanstalk PHP Sample Application</h1>n"; > > echo “<h2>This is Version 2</h2>n”; > ?> > EOF $ zip ../roadshowdemo_v2.zip -r * .[^.]* adding: index.php (stored 0%)
  19. 19. Zero Downtime Deployment • El swap de URLs también puede ser hecho con un registro de DNS propio del usuario • Por ejemplo: v1: roadshow.awsdemos.info CNAME roadshowdemo-env.elasticbeanstalk.com v2: roadshow.awsdemos.info CNAME roadshowdemo-new-env.elasticbeanstalk.com
  20. 20. Integración con RDS
  21. 21. Integración con RDS • Distintos escenarios posibles: 1. Crear una instancia RDS para cada environment 2. Usar instancias existentes de RDS 3. Usar otras bases de datos hosteadas en EC2 • Para evitar guardar las credenciales en el código, podemos pasar las mismas como paramétros a los environments • A continuación, mostraremos como usar una instancia RDS existente
  22. 22. Accediendo a los parámetros del environment
  23. 23. Auto-Scaling
  24. 24. Auto-Scaling • Elastic Beanstalk escala automáticamente las aplicaciones • Es posible escoger las condiciones en las cuales los eventos de escalado serán ejecutados. Algunos ejemplos: • Utilización de CPU • Network Out / Network In • Latencia • Métricas propias generadas por la aplicación • Control total sobre: cantidad de instancias a adicionar o remover, tiempo de espera entre eventos, umbrales, etc
  25. 25. Auto-Scaling • Usando la herramienta Apache Benchmark, vamos a demostrar como funciona Auto- Scaling • El siguiente comando generará 50.000 requests HTTP a nuestra aplicación • La aplicación tiene reglas de Auto-Scaling configuradas para: • Adicionar instancias cuando el uso de CPU sea mayor a 50% durante 1 minuto • Remover instancias cuando el uso de CPU sea menor a 20% durante 1 minuto $ ab -n 50000 -c 2 http://roadshowdemo-autoscale.elasticbeanstalk.com/index.php
  26. 26. AWS Command Line Interface
  27. 27. AWS Command Line Interface • Creamos una aplicación $ aws elasticbeanstalk create-application --application-name RoadShowCLI --description "Sample app from AWS CLI” • Creamos una primera versión de la aplicación. El paquete .zip se encuentra en S3 $ aws elasticbeanstalk create-application-version --application-name RoadShowCLI --version-label AWSCLIv1 --source-bundle S3Bucket=elasticbeanstalk-us-east-1-903745515320,S3Key=2014225usa-roadshowdemo_ asg.zip
  28. 28. AWS Command Line Interface • Guardamos la configuración de un ambiente existente (podemos crear una nueva) $ aws elasticbeanstalk create-configuration-template --application-name "RoadShowCLI" --template-name AutoScalingCPUv2 --source-configuration ApplicationName=RoadShowDemo,TemplateName="AutoScalingCPU v2” • Finalmente creamos el environment $ aws elasticbeanstalk create-environment --application-name RoadShowCLI --version-label AWSCLIv1 --environment-name roadshow-cli --cname-prefix roadshow-cli --template-name AutoScalingCPUv2
  29. 29. Q&A
  30. 30. Gracias!! Damián Traverso – AWS Solutions Architect traverso@amazon.com

×