Amazon Web Services

Los servicios de infraestructura informática en la nube de Amazon Web Services son los pioneros y punto de referencia de todos los demás. Nació junto con el marketplace de Amazon, para el cual internamente tuvieron que desarrollar esta plataforma, y poder dar así servicio al gran marketplace en que se convirtió.

Cuando lo hubieron desarrollado, decidieron que estos mismos servicios que utilizaban para el markeplace, podían ofrecerlos a todo el mundo. Así nació Amazon Web Services en 2006 con su Simple Queue Service. Iniciando así una andadura de servicios autoadministrados de computación en la nube.

Aquí puedes encontrar casos de estudio, ejemplos y otros detalles relacionados con AWS que me he ido encontrando en el trabajo en varios proyectos. Puedes encontrar detalles como por ejemplo el alta de servidores en EC2, auto-escalados con OpsWorks, balanceados de carga con ELBs, y un largo etcétera.

AWS Cloud9, un entorno de desarrollo completo en la nube

2020-09-05 - Categorías: Amazon Web Services / General / GNU/Linux
AWS Cloud9

Hoy traigo esta herramienta de AWS que me ha impresionado después de un tiempo probándola. Cloud9 es un entorno de desarrollo integrado, un IDE, que funciona sobre la web en un navegador. No necesitas instalarte nada en tu ordenador. Cloud9 usa el editor de código fuente Ace adquirido por Amazon Web Services en 2016, que está escrito en JavaScript, y sólo necesita acceso SSH al servidor donde quieras trabajar.

Es decir, con este entorno de desarrollo podemos programar directamente en un navegador. No tenemos que instalarnos localmente ningún IDE, ni bajar los códigos fuentes de la nube, base de datos, etc.. Todo, absolutamente todo el entorno de desarrollo puede correr sobre servidores en una nube, con lo que esto conlleva.

Continuar leyendo..

CloudFront: cómo empezar a configurar el CDN de AWS

2020-07-07 - Categorías: Amazon Web Services / General / GNU/Linux

Me ha escrito una persona al blog preguntando sobre CloudFront 👍 así que aquí estoy de nuevo compartiendo mi granito de arena en todo esto de la informática. Expongo aquí algunos problemas, y soluciones, que he tenido al trabajar con CloudFront tiempo atrás. Es decir, esto es un howto para montar el CDN de AWS, llamado CloudFront.

CloudFront no es una simple red de distribución de contenidos, sino que hace muchas más cosas aparte de cachear y distribuir contenidos. Pero vayamos al grano..

* Si estás aquí deduzco que estás optimizando, te puede interesar también este post relacionado con las optimizaciones de aplicaciones web 😉

Continuar leyendo..

AWS & GNU/Linux: optimizando aplicaciones web

2020-01-28 - Categorías: Amazon Web Services / Drupal / GNU/Linux / Magento / PHP / Prestashop / Symfony / WordPress
GNU/Linux: optimizando servidores
GNU/Linux: optimizando servidores

Aquí estoy de nuevo dejando mi granito de arena en todo esto de la informática. Hoy traigo un howto para la optimización de servidores web. Simplemente, son unas propuestas de configuraciones totalmente estándar y disponibles en las documentaciones oficiales. Pero que mejoran mucho el rendimiento de aplicaciones web, hechas en lenguajes como HTML, CSS, Javascript, PHP, Java, Python, SQL, DQL..

Este post es para optimizar aplicaciones web del tipo WordPress, Prestashop, Magento, Drupal, Symfony.. etcétera. Es una visión general de cómo funcionan las cosas a bajo nivel. Digo a bajo nivel, porque están muy de moda las arquitecturas server-less, o los servidores auto-administrados, aunque también necesiten su optimización. Pero aquí nos remangaremos la camisa, y nos embarraremos hasta el cuello mientras que vamos investigando, aprendiendo y aplicando, para cada proyecto en concreto. Este es un post para los que nos gusta trabajar los servidores, para los que nos gusta ponernos manos a la obra, para experimentar nosotros mismos con los proyectos, rascando cada milisegundo para conseguir que todo vaya lo más rápido posible..

Continuar leyendo..

Cómo automatizar el despliegue de una aplicación web en Symfony 4

2018-11-25 - Categorías: Amazon Web Services / GNU/Linux / PHP / Symfony
Launch lanzamiento

¡Hola de nuevo! Llevo unos días muy ajetreado y no he tenido tiempo de escribir nada en el blog, así que aquí estoy compartiendo de nuevo un pequeño HOWTO que me está ayudando mucho en el día a día. Se trata de un pequeño script en Shell Script que automatiza el despliegue en servidor de una aplicación web hecha con Symfony 4.

En Symfony 4 ha cambiado toda la estructura de directorios, así que para tenerlo todo bien controlado y evitar fallos intermitentes, esta es una de la cosas a automatizar. No es plan que cada vez que queramos hacer un despliegue en producción o en el área de pruebas tengamos que entrar al servidor, descargar la última versión, refrescar archivos temporales, etc..

Continuar leyendo..

AWS: sirviendo un píxel de conversión con el CDN de CloudFront

2017-12-18 - Categorías: Amazon Web Services / General
Cloudfront logo

Una de las tareas más interesantes para saber si las cosas sirven para algo en tu negocio de Internet, consiste en seguir a las visitas. Es decir, consiste en el seguimiento de la conversión, mediante lo que se llaman píxeles de conversión. Es decir, si queremos saber si un canal de entrada a tu web convierte o no, si los anuncios que ponemos en otras webs, si los enlaces de redes sociales, emails, etc.. sirven de algo. Para esto debemos de llevar un seguimiento de dicha entrada a tu web.

Un píxel de conversión es un código invisible para el visitante, que nos da la posibilidad de saber de dónde vienen las visitas a tu web.

Muchas veces nos puede bastar con herramientas como Google Analytics, Piwik, o similar. Pero a veces necesitamos dar un paso más, creando nuestros propios píxeles de conversión. Así no estaremos de nuevo limitados a lo que te permiten las herramientas.

Escenario

Piensa que puedes recibir muchas visitas a los píxeles, miles o millones de visitas por minuto si estas en plena campaña publicitaria por Internet. Tanto que si los píxeles están en tu servidor, puedes llegar a provocarte un ataque de denegación de servicio (DDoS) de tantas visitas en muy poco tiempo. Así que si te configuras un CDN de CloudFront para los píxeles, liberarás totalmente tus servidores. Sería una lástima invertir mucho en publicidad y que luego no puedas marcar correctamente a todos los visitantes.

Siguiendo con lo anterior, imaginemos que queremos dos píxeles para dos situaciones:

  • En la visualización de un anuncio.
  • Al hacer click en dicho anuncio.

Comportamiento

  • En la visualización: cuando tenemos un píxel de visualización, simplemente tenemos que visualizar el píxel en un iframe desde la web o cargarlo mediante Javascript en un div/span.. así marcaremos al visitante con una cookie.
  • Al hacer click: cuando tenemos un píxel de click, tenemos que recibir el click, poner una cookie al visitante, y redirigir al usuario a la página de destino.

Ambos píxeles se basan en el uso de cookies. Por ejemplo, imaginemos que le ponemos estas dos cookies:

  • En la visualización, una cookie con nombre cookie.unblog.visualizacion de valor y fecha de caducidad como consideremos.
  • Al hacer click, otra cookie con nombre cookie.unblog.click de valor y fecha de caducidad como consideremos también.

En el momento en que lleguen a www.tutienda.com es trivial consultar si el visitante tienen alguna de las dos cookies anteriores. Así podremos desencadenar eventos como por ejemplo:

  • La compra X es de un visitante que tenía la cookie cookie.unblog.visualizacion con valor Y.
  • Mostrar mensajes relacionados con el anuncio al visitante en nuestro portal, quizá después de 30 días de haber visto el anuncio en otra web.
  • Etcétera.

Montando el sistema de píxeles en AWS CloudFront

La estrategia para montar todo esto es la siguiente:

  1. Recibir las visitas pasando por el CloudFront.
  2. Establecer un origen de datos de CloudFront en un sistema de ficheros de S3.
  3. Estableces unas rutas que redirijan ciertos directorios al origen de datos con los ficheros de S3. Por ejemplo, podemos recibir en S3 todo lo recibido bajo la ruta www.tutienda.com/pixeles/*
  4. Construir los píxeles en Javascript en S3. Por ejemplo, para este ejemplo podríamos crear en S3 los dos píxeles siguientes:

www.tutienda.com/pixeles/unblog.visualizacion
www.tutienda.com/pixeles/unblog.click

Para el paso 1 simplemente tenemos que poner delante de todas las visitas una distribución de CloudFront. Esto es contenido para otro post, así que doy por sentado que ya tienes una distribución de CloudFront funcionando. Añadimos el origen de datos que va a tener los píxeles indicados en el paso 2..

En el paso 3 creamos el comportamiento para recibir las visitas del directorio indicado en el S3 que almacena los píxeles..

Nos tiene que quedar algo parecido a esto..

Con este comportamiento podemos configurarle el nivel de cacheado en CDN que queramos. Con esto descargamos totalmente los servidores de las visitas a los píxeles. Esta es la parte crítica para mejorar nuestro sistema, ya que podemos hablar de una cantidad de visitas muy grande.

Ya sólo nos queda crear los píxeles en S3 siguiendo las rutas que vamos a recibir. En este caso tendríamos que crear los píxeles en los ficheros:

/pixeles/unblog.visualizacion
/pixeles/unblog.click

Para cómo crear el contenido de los píxeles de conversión me remito a este otro post sobre cómo hacer un píxel de conversión.

Espero que sirva. ¡Un saludo!


Estudiando logs de CloudFront con GoAccess

2017-10-13 - Categorías: Amazon Web Services / General / GNU/Linux
Vista de GoAccess

Quizá tienes que estudiar los registros de visitas de un proyecto que está en una nube, detrás de un CloudFront de Amazon Web Services. En este proyecto tenemos guardados los registros de las peticiones web que tenemos a los servidores. A veces es interesante revisarlos a este nivel.

Es decir, que tenemos registros de las visitas, anonimizados, por ejemplo con Google Analytics. Pero pasan muchas más cosas por debajo de Google Analytics que sólo quedan reflejados en los registros de los servidores. Así que resulta que queremos saber absolutamente cuáles han sido todos los registros. Queremos saber qué IPs son las que más nos visitan. Qué consultas al servidor son las que están provocando errores de servidor, los 500, incluso antes de que lleguen los robots que nos indexan. Qué IPs son de robots que nos están crawleando, o indexando, y un largo etcétera. Probablemente aquí veamos las IPs de los robots de Google, Bing, Yahoo que nos visitan en busca de información de la web..

Continuar leyendo..

Servidor GNU/Linux bloqueado, no responde, no actualiza, no da servicio

2017-10-05 - Categorías: Amazon Web Services / General / GNU/Linux
GNULinux

Si has puesto un servidor Ubuntu/Linux lanzándole actualizaciones automáticas puede que hayas llegado a encontrarlo bloqueado. El servidor ha dejado de actualizarse y no hay manera de encontrar el problema. Cuesta mucho entrar al servidor. Un reinicio, paramos servicios, podemos hacer un par de cosas recién conectados, pero vuelve a bloquearse.. Volvemos a reiniciar para volver a entrar corriendo a ver qué pasa.. la gente corre.. ¡las mujeres y los niños primero! 😀

Esto pueden ser los síntomas de un servidor lleno. Lleno el disco duro, la memoria RAM, los i-nodos.. ha empezado a reventar por todos lados y necesitamos volverlo a la normalidad. Toca pues hacer un par de cosas..

Continuar leyendo..

AWS CloudFront: balanceando las visitas entre varios servidores

2017-05-29 - Categorías: Amazon Web Services
Cloudfront logo

Hoy traigo un pequeño HOWTO de cómo balancear las visitas de un sitio web entre varios servidores, eligiendo exactamente qué visitas van a qué servidores. Se trata unas pocas directrices para configurar CloudFront y así redirigir las peticiones web.

Con esto puedes controlar qué subdirectorios, o que zonas de tu aplicación web se gestionan desde qué servidores. Balancear en función de la carga se puede hacer con un ELB (Elastic Load Balancer), pero estas configuraciones a nivel de CloudFront balancean las peticiones de forma permanente. Por ejemplo:

Continuar leyendo..

SEO técnico, ponle nota a tu web

2017-04-10 - Categorías: Amazon Web Services / General / GNU/Linux / Magento / PHP / Prestashop / SEO / Symfony / WordPress
Alexa up

Montar una web con lo imprescindible, ponerle el contenido y diseño, y olvidarnos de ella.. sería como comprarnos un coche y ya no preocuparnos nunca por pasarle una revisión. Sería como si nos diera igual si hay una bajada de potencia del motor, que las ruedas no estuvieran bien hinchadas. Quizá una bujía deja de dar los chispazos al 100%..

Y no sólo están los problemas de mal-funcionamiento, sino que quizá también hay algunas mejoras extras. No todo viene de casa, y puedes hacer que el coche vaya mejor. ¿Porqué no entonces dedicarle ese tiempo a nuestra web para revisar esas cosas? Es más, ¿porqué no poner a un mecánico que sepa lo que está haciendo? Está claro que nos podemos quedar tal cual, nuestro coche andará. Pero queremos que no le falte esa alegría, que responda sin pereza. Resumiendo, queremos que la maquinaria esté bien engrasada, sacando el 100% de su rendimiento. Entonces necesitaremos a un especialista que toque, pero no de oídas, sino que sepa lo que está tocando.

Continuar leyendo..

Programar copias de seguridad diarias con Webmin+Virtualmin

2017-03-30 - Categorías: Amazon Web Services / General / GNU/Linux

Una de las tareas de servidor más comunes, o lo debería ser, es la copia de seguridad de los archivos. Si no queremos tener más problemas que los necesarios nos conviene tener una copia. Así que aquí estoy de nuevo escribiendo sobre Virtualmin, este gran proyecto Open Source que nos brinda una brillante interfaz de usuario web. Traigo un pequeño HOWTO para programar las copias de seguridad con este software.

Continuar leyendo..

AWS OpsWorks: automatizando la creación de servidores

2016-10-14 - Categorías: Amazon Web Services / General / GNU/Linux / Magento / Symfony
OpsWorks Logo

Las nubes por definición son sistemas informáticos que crecen o decrecen según la necesidad. Son conjuntos de servidores/servicios que se adaptan a la demanda. Con todo esto, llegamos a una de las cosas más interesantes de AWS, el auto-escalado o la tolerancia a fallos, además de la personalización de los servidores. Podemos controlar la carga de los servidores que haya. Además automatizar el arranque y parada a ciertas horas de algunos de los servidores. O podemos duplicar los sistemas para evitar los ‘single point of failure como una casa’.

En OpsWorks tenemos herramientas muy interesantes relacionadas con esto. Algo rústicas, quizá clásicas dirían algunos. Pero gracias a ello, sin límites en la flexibilidad para configurar. Y si lo llevamos al extremo, este mismo sistema nos puede servir para automatizar la creación de nuestros servidores con herramientas como Chef y Kitchen. Todo esto y mucho más es lo que se puede hacer con el clásico OpsWorks.

Primero tendremos que ver qué son las AMIs. Cómo crear una manualmente o automáticamente. Y finalmente veremos cómo se usan, para hacernos una buena idea de qué podemos hacer en OpsWorks, y si es o no lo que necesitamos. Quizá es interesante ir a Docker con el EC2 Container Service o a CloudFormation, pero esto son otros temas..

No voy a entrar al detalle de cómo hacer cada cosa, no terminaría nunca. Así que si buscas una guía general para enfrentar después cada detalle poco a poco, este es tu post.

Continuar leyendo..

AWS: una buena infraestructura no es suficiente, pero sí necesaria

2016-10-03 - Categorías: Amazon Web Services / General / SEO
Logo de Amazon Web Services

Ya puedes tener la estrategia de marketing mejor del mundo, la mejor campaña publicitaria, los mejores anuncios. Unas publicaciones excelentes en blogs, una gran inversión en SEM, o un SEO de contenidos inmejorable. Que si la infraestructura informática subyacente no acompaña de poco servirá. Aquí es donde entra el estar o no en la nube. Y nunca mejor dicho, poner tu aplicación web por las nubes.

Continuar leyendo..

© 2020 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.