Consejos para migrar servicios en Amazon AWS

Cuando se trabaja con infraestructuras grandes, sobre todo cuando definimos una nueva infraestructura para un servicio ya existente, llega el momento de llevar a cabo el cambio final, y empezar a utilizar todos los servicios con el nuevo entorno.

Si vuestra infraestructura nueva está en Amazon AWS, estos sencillos consejos pueden hacer que vuestra migración sea más cómoda.

Usa los pesos de Route 53

El servicio DNS de Route 53 permite asignar pesos a las distintas entradas. Esto es muy útil para poder ir cambiando el tráfico poco a poco de las IPs antiguas a las nuevas, y ver como se comporta nuestra plataforma a medida que el tráfico aumenta.

Lo único que tenemos que hacer es crear dos entradas iguales, apuntando cada una al nuevo destino, y repartir el peso total (255) entre cada entrada. A medida que lo vayamos cambiando, Amazon dirigirá más tráfico al nuevo destino hasta completar el proceso.

“Calienta” los balanceadores ELB

La infraestructura de Amazon es reactiva ante los distintos incrementos o decrementos de tráfico que se van produciendo.

En los balanceadores de carga ELB, cuando el tráfico se incrementa de golpe, es normal que las IPs de estos balanceadores cambien, y la latencia disminuya aunque el tráfico aumente.

Esto parece indicar que Amazon detecta el aumento de carga y cambia a un ELB con más capacidad que pueda garantizar una respuesta adecuada para el nuevo tráfico.

Por eso, antes de migrar, es recomendable lanzar un alto número de peticiones al balanceador (o a toda la infraestructura) usando Jmeter o un programa similar, para que el balanceador detecte el cambio de tráfico y nos asigne nuevos balanceadores de más capacidad. Así estaremos más preparados para procesar el nuevo tráfico.

Carga la cache

Si tu nueva infraestructura tiene un sistema de cache distribuida como CloudFront o Fastly, podemos adelantarnos al cambio y mejorar el rendimiento de esta (mientras reducimos la carga de la plataforma) precargando contenido en ella.

Si esperamos que la mayor parte del tráfico venga de una zona concreta, al lanzar las peticiones desde esa zona el sistema pedirá y almacenará en su cache el resultado, por lo que al realizar el cambio no será necesario hacer las peticiones de nuevo.

Deja generados los contenidos estáticos

Si nuestra infraestructura está preparada para generar contenidos estáticos (por ejemplo recortes de imágenes con Lambda contra S3), dejar ya generados aquellos contenidos que esperamos van a ser utilizados evitará una carga innecesaria en los primeros momentos del cambio de plataforma.

Prevee el escalado

Salvo que nuestra plataforma sea totalmente serverless, lo normal es que tengamos previsto que las instancias de EC2 escalen (se activen nuevas instancias ante un aumento de carga).

Este proceso (dependiendo de su configuración), puede llevar varios minutos, durante los cuales el rendimiento de la plataforma puede reducirse, o incluso detenerse si el aumento de carga es muy alto.

Por eso, para la migración de plataforma es recomendable comenzar con una o dos instancias de más, que nos permitan evitar problemas si recibimos más carga de la esperada, o si hemos dimensionado por defecto nuestros recursos.

En resumen, prepárate para lo peor e intenta dejar todo generado o preparado antes de empezar, para que el cambio sea lo menos traumático posible.

 

Darse de alta como vendedor en AWS Marketplace

Para todos los usuarios de los Servicios Web de Amazon, Amazon dispone de un mercado online donde puedes comprar todo lo relacionado con AWS. Así, puedes encontrar AMI’s que ya vengan preparadas con el software específico que necesitas, scripts de CloudFormation para crear una plataforma específica, contenedores de ECS a medida, etc.

Además, Amazon te da la opción de subir tus productos a su mercado y ganar dinero con ellos.

Si bien el proceso para darse de alta puede dilatarse en el tiempo (por las distintas verificaciones necesarias), no es realmente complicado.

1.- Creación de nuestra cuenta

El primer paso es dar de alta nuestra cuenta en el Marketplace de AWS. Aunque el acceso se realizará con nuestro usuario raiz (o con un usuario al que le hayamos dado permisos), debemos realizar el proceso de alta como si de otro servicio se tratara.

El proceso de alta lo llevaremos a cabo desde la portada principal de AWS Marketplace.

Registrarse en Amazon AWS Marketplace, paso 1

Para registrarnos, debemos pulsar el botón “Registrarme como un vendedor en el Marketplace”, estando logeados con nuestra cuenta de AWS.

El primera paso será aceptar los términos y condiciones del Market, que podremos descargar en formato PDF para un lectura más cómoda.

Registrarse en Amazon AWS Marketplace, paso 2

Si bien con activar nuestra cuenta y aceptar los términos ya es posible empezar a vender, solo nos permitirán regalar productos, ya que para poder cobrar por ellos hay que completar la información financiera.

Además, lo recomendable para inspirar confianza es rellenar también nuestro perfil, de forma que la gente que compre nuestros productos pueda ver información sobre nosotros.

Registrarse en Amazon AWS Marketplace, paso 3

En la portada nos avisarán de que ya podemos empezar a subir productos, pero solo nos permitirán ofrecer productos gratuitos, ya que no hemos indicado los datos bancarios y de impuestos.

Registrarse en Amazon AWS Marketplace, paso 4

Para poder vender productos en el AWS Marketplace, debemos ser ciudadanos o empresa de Europa o Estados Unidos, y disponer de una cuenta bancaria en algún banco de USA.

Ésta parte del proceso es la parte más larga, ya que Amazon debe verificar cada uno de los datos que indiquemos y, sobre todo si somos europeos, el proceso puede llegar a alargarse mucho.

En mi caso, todo el proceso desde el momento del alta hasta que pude subir mi primera AMI de pago, se dilató más de 15 días.

Registrarse en Amazon AWS Marketplace, paso 5

Una vez comencemos con el proceso de alta, el primer paso es rellenar el formulario de información sobre impuestos. Debemos indicar en todo momento datos veraces (ya que será comprobados)

Registrarse en Amazon AWS Marketplace, paso 6

Las primeras preguntas están orientadas a determinar qué tipo de formulario debemos rellenar (es distinto si eres ciudadano o empresa, europeo o de USA, etc.

Registrarse en Amazon AWS Marketplace, paso 7

Según las respuestas del paso anterior, nos pedirán información más detallada, de cara a realizar las facturas necesarias.

Registrarse en Amazon AWS Marketplace, paso 8

Una vez indicados nuestros datos, debemos hacer declaración firmada para el IRS (el sistema fiscal de USA)

Registrarse en Amazon AWS Marketplace, paso 9

Tras el proceso de declaración, nos pedirán que indiquemos nuestros datos fiscales para completar este primer paso.

Con la información fiscal ya completa, el siguiente paso es indicar la cuenta donde AWS nos hará el ingreso del dinero generado con la venta de productos en su market.

Registrarse en Amazon AWS Marketplace, paso 11

La cuenta bancaria que indiquemos debe ser de un banco estadounidense. Si hemos indicado que somos ciudadanos (o empresa) europeos, Amazon nos da la opción de trabajar con Hiperwallet, que puede ofrecernos una cuenta bancaria virtual en USA, con la que podremos proceder.

Registrarse en Amazon AWS Marketplace, paso 12

En cualquier caso, el proceso pasa por solicitar a Amazon que nos envíe un correo con información, donde nos mandarán un enlace para registrar directamente nuestra cuenta en Hiperwallet.

Registrarse en Amazon AWS Marketplace, paso 13

Después de indicar todos los pasos, y una vez concluido el proceso de verificación (que puede tardar bastante), ya estaremos habilitados para vender productos en el marketplace de Amazon.

 

Crear usuario para envíos de SNS en IAM

Una de las formas recomendadas para realizar envíos de notificaciones con SNS, es crear un usuario de IAM (el sistema de gestión de identidades de AWS).

Así, tendremos un usuario con sus claves de acceso, configurado solo para poder realizar el envío de notificaciones, lo que nos ofrece una mayor seguridad.

El único requisito para la creación de este usuario es tener ya creado nuestro tema SNS y apuntar su ARN. Si aún no lo habéis creado, podéis seguir la entrada “Configurar SNS para recibir notificaciones

Acceso a la consola de IAM

El primer paso es siempre acceder a la consola de AWS.

Una vez dentro, en la barra de búsqueda buscaremos “IAM” para poder acceder a la consola de identidades.

Creación de una política de IAM

Creación de un usuario de IAM para hacer envíos con SNS, paso 1

Una vez estamos en la pantalla de bienvenida de IAM, empezaremos creando una nueva Politica, pulsando en el enlace “Políticas” del menú de la izquierda.

Dado que nuestro usuario tiene que tener una política aplicada que le de permisos, vamos a empezar creando esta política, para que el proceso de creación sea más sencillo de ver.

Dentro de las políticas por defecto de IAM podemos encontrar políticas ya definidas para la mayor parte de los servicios, aunque nosotros vamos a definir una propia para restringir al máximo el acceso del usuario.

Una vez en la pantalla de políticas, pulsaremos en el botón “Crear una política”

Creación de un usuario de IAM para hacer envíos con SNS, paso 2

Al acceder a la pantalla de creación de política tendremos dos opciones:

  • Editor visual: para navegar por las políticas existentes y elegir las que deseamos.
  • JSON: para indicar directamente los permisos que queremos aplicar.

En nuestro caso, vamos a ir directamente a la pestaña JSON, ya que introduciremos los permisos de esa forma. El código que debemos indicar es el siguiente:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sns:Publish",
            "Resource": "arn:aws:sns:eu-west-1:1836171893615:myTopic"
        }
    ]
}

En la sección Resource debemos indicar el arn del tema que vamos a usar para los envíos.

Al pulsar en Revisar la politica, se verificará que el código que hemos puesto es correcto, e iremos a la pantalla de verificación.

Creación de un usuario de IAM para hacer envíos con SNS, paso 3

El último paso es indicar un nombre para la política, y una breve descripción, y pulsando en “Crear una política”, tendremos nuestra política creada.

Creación del usuario en IAM

Creación de un usuario de IAM para hacer envíos con SNS, paso 4

En el menú de la izquierda veremos las distintas opciones, y accederemos a la pestaña de usuarios pulsando sobre el enlace “Usuarios”

Dentro de la pantalla de usuarios veremos los usuarios activos (si los hubiere), y podremos crear un nuevo usuario pulsando en el botón “Añadir usuario(s)”

Dentro de la pantalla de creación de usuario, en primer lugar indicaremos el nombre que queremos que tenga, y que accederemos de forma programática a este.

Creación de un usuario de IAM para hacer envíos con SNS, paso 5

Con los datos básicos del usuario ya creados, el siguiente paso es añadir los permisos que va a tener. Como ya hemos creado una política, solo tenemos que indicar que nuestro usuario debe utilizarla, y para ello:

  • Pulsamos en el botón “Asociar directamente las politicas existentes”
  • Usamos el buscador para localizar la política que acabamos de crear.
  • Marcar la política o políticas que queramos añadir.
Creación de un usuario de IAM para hacer envíos con SNS, paso 6

Una vez hemos terminado, pulsamos en el botón etiquetas para ir a la pantalla de etiquetas.

Aquí podemos indicar las etiquetas que queramos (es opcional), para identificar las características de ese usuario.

Creación de un usuario de IAM para hacer envíos con SNS, paso 7

Una vez terminemos, pulsaremos en el botón “Siguiente: revisar” para terminar.

El último paso para crear el usuario es revisar la configuración de este y pulsar en el botón “Crear usuario”.

Si todo ha ido bien, veremos un mensaje indicando que ya hemos creado el usuario, y podremos descargar o ver las claves para conectar con ese usuario.

Creación de un usuario de IAM para hacer envíos con SNS, paso 9

Una vez hayamos terminado, ya podremos usar estos datos para hacer envíos SNS.

 

¿Qué es AWS SNS?

Dentro de la infraestructura de Servicios Web de Amazon, SNS es uno de los dos servicios que se ocupan de enviar notificaciones.

SNS son las siglas de Simple Notification Service (Servicio Simple de Notificaciones, en castellano), y es el nombre que mejor define su función: enviar notificaciones a los subscriptores de forma rápida y fiable.

¿Cómo funciona SNS?

SNS es un servicio completamente desatendido y administrado, que funciona en alta disponibilidad, y de forma segura y durable.

La principal ventaja de SNS es que no necesitamos conocer nada sobre su estructura o funcionamiento, ya que está pensado para que nuestro único trabajo sea integrar nuestra aplicación con la API de SNS, y sea SNS quien se ocupe de todo el trabajo de distribución de mensajes.

En su estructura más básica, solo necesitamos crear un Tema de notificación (un asunto sobre el que queremos mandar mensajes, como por ejemplo “Errores”, para avisar de los errores del sistema), y subscribir los puntos que recibirán la notificación. Estos puntos pueden ser de diferentes tipos:

  • HTTP
  • HTTPS
  • Email
  • Email-JSON
  • Amazon SQS
  • Applicación
  • AWS Lambda
  • SMS

¿Cuales son los costes de SNS?

SNS es un servicio pensado para el envío masivo de mensajes que, al igual que el resto de servicios de AWS, tiene un coste muy bajo, basado en el volumen de mensajes enviado.

Además, la capa gratuita de AWS para SNS incluye el primer millón de mensajes, que será más que suficiente para usos básicos del servicio.

Es importante matizar que el envío de mensajes vía SMS si que tiene un coste distinto (se cobra por cada SMS enviado), debido a las características de este tipo de servicio.

 

 

Crear una cuenta en Amazón AWS

El proceso de creación de una cuenta en Amazón AWS es muy sencillo, e incluye un sistema de verificación muy novedoso que puede darnos algún dolor de cabeza.

Para los que queráis crearos una cuenta, aquí os mostramos los pasos, que comienzan abriendo en nuestro navegador la dirección:

https://aws.amazon.com

Desde aquí, en la esquina superior derecha, veremos un botón naranja que dice “Cree una cuenta de AWS”, donde debemos pulsar.

Crear cuenta en AWS, paso 2
Paso 1 en la creación de la cuenta en AWS

Lo primero que Amazón AWS nos pide son los datos que vamos a usar para acceder a nuestra cuenta, que deben estar relacionados con una cuenta de correo válida.

Además, tendremos que indicar el nombre de la cuenta que queramos usar, que debe ser único (normalmente será nuestro nombre o el de la empresa).

Crear cuenta en AWS, paso 3
Paso 2 en la creación de la cuenta en AWS

Después de indicar los datos de la cuenta, nos pedirán nuestros datos personales, usados para contacto y facturación.

Es importante destacar que el campo dirección debe indicarse de la forma Calle, Apartado Postal, Nombre de la empresa, y en el campo inferior será donde indiquemos las características de la calle (Piso 4, puerta 2, escalera norte, etc). No tenemos muy claro los motivos para esto, siendo que además después nos piden de nuevo el código postal, pero hay que estar atentos por si pudiera dar problemas con los datos de facturación.

Recordaros que los datos han de ser reales y fiables, para evitar problemas legales.

NOTA IMPORTANTE: Tenemos que tener el número de teléfono que indiquemos a mano, para poder hacer la verificación.

Paso 3 en la creación de la cuenta en AWS

El siguiente paso es indicar una tarjeta de crédito (que tiene que ser válida y estar activa), aunque eso no implica que nos vayan a pasar cargo alguno (no lo harán si no superamos los límites de la capa gratuita de Amazón AWS). 

También debemos indicar si queremos usar nuestra dirección de contacto para la realización de la factura, o si queremos indicar datos nuevos.

Paso 4 en la creación de la cuenta en AWS

Ahora que Amazon tiene nuestros datos, van a verificar el número de teléfono mediante un sistema muy interesante.

Primero, nos mostrarán un código en la pantalla, y después nos llamarán al número de teléfono que hemos indicado, y tendremos que introducir el código con el teclado del teléfono.

Paso 5 en la creación de la cuenta en AWS

El último paso que debemos completar es indicar el tipo de soporte que queremos. Aunque puede llevar a confusión, aquí no se indica ningún plan de servicios, solo el plan de soporte (la rapidez y forma en que Amazon nos va a solucionar los posibles problemas que tengamos).

De forma general, indicaremos el Plan Gratis, ya que es suficiente para el uso normal de nuestras cuentas.

Paso 6 en la creación de la cuenta en AWS

Con esto, ya tenemos nuestra cuenta de Amazón AWS creada, y seremos redirigidos a la página de acceso, donde podremos acceder con los datos creados.

Crear cuenta en AWS, paso 8
Paso 7 en la creación de la cuenta en AWS

Una vez hayamos iniciado sesión, podremos ver en la zona de alertas que tenemos acceso a la capa gratuita de AWS.

Crear cuenta en AWS
 

¿Qué es la nube?

Aunque el concepto de nube de Internet lleva con nosotros casi 20 años, no ha sido hasta hace relativamente poco que ha empezado a llegar a todos los ámbitos, siendo ya común que los servicios de la nube se ofrezcan en entornos que no son de caracter técnico, donde antes era imposible.

Pero… ¿Qué demonios es “La Nube”?

Entendiendo el concepto Nube…

Lo que se entiende por la Nube no es más que muchos ordenadores trabajando juntos y dando servicios en Internet. Así de simple. No es un concepto nuevo (aunque técnicamente es más avanzado) ni hay nada de especial en el. La Nube solo son los ordenadores de otros.

Entrando más en detalle, el concepto nube es un paso hacia adelante para poder disponer de recursos que antes eran impensables, en unas condiciones mucho más ventajosas, y sobre todo de una forma mucho más sencilla, lo que ha facilitado su avance.

La Nube es…

  • Un coste más óptimo: Al pagar solo por lo que usas, los costes se reducen, ya que puedes ampliar o reducir los servicios que usas seǵun los necesites.
  • Dinamismo: Los recursos que usamos en la nube pueden adaptarse según nos interese, incluso de forma automática. Así, podemos adaptarnos ante mayores cargas de trabajo sin que nuestro servicio se resienta, o reducir los recursos (y el coste) en momentos de menor trabajo.
  • Facilidad: Todos los servicios de la Nube están pensados para ser usados por gente que no tiene que tener un perfil muy técnico. La mayor parte de los servicios pueden configurarse y adaptarse con un navegador web normal.
  • Seguridad: Al usarse servicios estandarizados y gestionados por proveedores especializados, su uso es más seguro. Además, la Nube permite incluso replicar nuestros servicios entre varios paises, en prevención a grandes catástrofes.

La base fundamental de la Nube es optimizar los recursos de Internet, hacerlos más fáciles, accesibles y seguros incluso para los procesos más complejos, ahorrando costes y energía en el proceso.

La Nube no es…

  • Un programa que nos venden para guardar nuestros archivos.
  • Una página web para gestionar nuestras facturas.
  • Un servidor dedicado o VPS que nos cobran por horas.

Si bien es cierto que estos servicios pueden estar alojados en la nube, cuando nos los ofrecen no nos están ofreciendo trabajar en la nube, tan solo nos ofrecen un servicio que puede, o no, estar relacionado con ella.

Cuando el concepto de Nube empezó a popularizarse, fueron muchos los proveedores que quisieron subirse al carro para ganar dinero con un concepto que todavía no se entendía bien. El término Nube se volvío uno de los términos SEO más importantes, aunque en realidad lo que ofrecían no era una nube real, si no las mismas infraestructuras que ya estaban disponibles antes. Por suerte, poco a poco los conceptos se aclaran y se vuelve más difícil vender algo que no es.

Si queréis saber más sobre la Nube, podéis pasaros por las páginas de Amazón AWS o Google Cloud, que son los principales referentes de computación en la nube.