Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduccion a elastic beanstalk aws roadshow bogota mexico

  • Login to see the comments

  • Be the first to like this

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

×