26/09, 2019

Que es Amazon Web Services

  • Plataforma de computo en la nube on-demand
    • Escalable
    • Más de 100 servicios
    • Computo: Computadores virtuales, EC2, lightsail, Lambda, etc
    • Almacenamiento: Discos duros para computadoras virtuales, bases de datos publicas, EBS, S3, EFS
    • Bases de datos: manejo de bases de datos rápida tipo MySQL, PostgreSQL, por ejemplo Amazon Aurora, Amazon RDB, Amazon DynamoDB
    • Redes: Genearación de paginas web, incluyendo hosting, nombres de páginas web como Amazon Route 53 para comprar dominios
    • Servicios de aplicaciones: E-mail, Mensajes de texto, etc

Ecosistema de AWS

Dev Ops

Computo

  • Computo
    • EC2: Elastic Computing Cloud, Computador Virtual, hoy crearemos uno

Creando mi primer EC2

Creando mi primer EC2 (continuación)

Creando mi primer EC2 (continuación)

Elegir un AMI para mi EC2

  • Amazon Machine Images (AMI)
    • Una instancia EC2 es un computador vacío
    • Imagenes AMI vienen con sistemas operativos preinstalados, algunos programas
    • Podemos generar una AMI y luego guardarla para un futuro
    • Podemos buscar en las AMI comunitarias según programas que uno quiera
    • Para R estan las instancias de Louis Aslett

Seleccionar tipo de instancia

  • Seleccionaremos la t2.micro para evitar costos, podemos cambiarlo en cualquier momento

Comparasión de Instancias EC2

Comparasión de Instancias EC2 (Continuación)

Almacenamiento

  • S3: Amazon Simple Storage System, es como un disco duro externo funciona por su cuenta, no como parte de una instancia, puede ser accedido publicamente
  • EBS: Amazon Elastic Block Store, disco duro para instancias, pueden ser de estado sólido o de disco, no puede ser accedido mas que por una instancia, el más rápido
  • EFS: Amazon Elastic File System, combinacion de S3 y EBS

Paso 4 Agregar un disco duro a mi EC2

  • 30 GB Gratis primer año de cuenta AWS
  • Iremos directamente al paso 6 después de eso

Paso 6: Grupo de seguridad

  • Debemos agregar una regla de puerto 80 para poder acceder a el servidor desde nuestro navegador de internet
  • Este paso es necesario solo si usaremos programas tipo Server
    • Rstudioserver: Desde ahí podemos usar R desde el navegador
    • Shinyserver: Para desplegar aplicaciones shiny

Paso 6: Grupo de seguridad

Listo para el lanzamiento

Listo para el lanzamiento

  • Hay que bajarlo y guardarlo

Conectarse a la instancia

  • Boton derecho sobre instancia y conectarse

Conectarse a la instancia (Continuación)

  • Copiar url e ingresar

Conectarse a la instancia (Continuación)

  • Usuario: rstudio
  • Clave: id de instancia

Usemos la instancia un poco

Ejemplo de bootstrap

library(doParallel)
library(tidyverse)
library(broom)

data("mtcars")

ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point()

trials <- 10000
ptime <- system.time({
  r <- foreach(i=1:trials, .combine=rbind, .packages = c("broom")) %do% {
    Samp <- sample(nrow(mtcars), nrow(mtcars), replace = TRUE)
    result1 <- lm(mtcars[Samp,"mpg"]~mtcars[Samp,"wt"])
    glance(result1)}
})

hist(r$r.squared)

Cambiando tipo de instancia

  • Podemos generar un script y luego cuando estamos listos agrandamos la instancia
  • Hay que detener la instancia
  • Hay que chequear compatibilidad

Paralelisar el bootstap

Importante

  • Si dejaste de ocupar tu instancia tienes que destruirla para que no te cobren por la hora

EC2 Cuando es mejor que un computador físico

  • No puedo pagar un servidor
  • Solo necesito ocuparlo poco tiempo
  • Solo un porcentaje del tiempo será de alto cómputo
  • Necesidades flexibles, a veces machine learning, a veces aplicaciones, a veces necesito GPU, a veces RAM, etc.
    • EG Necesito gran ancho de banda para bajar datos
    • Luego necesito muchos cores para procesar información
    • Finalmente busco una con buena GPU para hacer machine learning de los datos generados

EC2 vs Servidor físisco