Importar repositorio Git SSH a BitBucket.

Después de pasar mucho tiempo manteniendo mis propios servidores GIT apareció por arte de magia BitBucket.

BitBucket es un servidor de repositorios gratuito ( dependiendo del plan ) que maneja git y subversion de manera privada y pública, que además tiene muchas herramientas super útiles para el desarrollo, como wikis y bugtracking.

LO ÚNICO QUE LE FALTA es como acceder directamente para hacer la migración desde SSH, para bien esto es super sencillo.

Se asume que:

  1. Ya posees un servidor git a través de ssh de algún proveedor o propio.
  2. Lo tienes en tu computador.
  3. Posees una cuenta en BitBucket.

Agregar el MX record de Google apps en Route 53 de Amazon Web Services ( AWS )

Esto es super útil y sencillo pero hay que saber hacerlo.

Se asume que :

  1. Ya tienes el dominio con el cual quieres utilizar tus correos con Route 53.
Ahora lo que se tiene que hacer es agregar los MX RECORDS a tu HOSTED ZONE.
  1. Ingresa a https://console.aws.amazon.com/route53/
  2. Selecciona tu HOSTED ZONE y ve a su RECORD SET.
  3. Click en CREATE RECORD SET
  4. En type elegimos MX RECORD y ponemos la información de google como en la imagen que aparece a continuación.
  5. Y … a esperar no más…. se puede demorar algunas horas en actualizar el MX record.

Conectar a EC2 a través de FileZilla

FileZilla es uno de mis clientes FTP / SSH preferidos para transferencia de archivos y las instancias de amazon son perfectas para mi para  realizar servidores de prueba o de producción.

Asumiremos lo siguiente:

  1. Instancia de EC2 ya creada.
  2. Existen permisos de acceso SSH a la instancia. ( Puerto 22 abierto por defecto ).
  3. Archivo PEM creado para acceder a nuestra máquina. ( En mi caso un linux / ubuntu)
  4. FileZilla Instalado :).
La verdad es super sencillo, solo debemos decirle a FileZilla el archivo PEM que nosotros utilizamos para que lo use como una opción de conexión. Para lograrlo:
Editar -> Opciones -> SFTP
Opciones de FileZilla - SFTP
Configuración SFTP para agregar PEM File.
Al Seleccionar nuestro archivo PEM nos dice que no está en un formato válido para FileZilla. Simplemente aceptamos y utilizamos el nuevo archivo.
Ahora a la configuración de la conexión.
Al agregar sitio, le pedimos que sea de tipo interactivo y le damos nuestro usuario, en mi caso «ubuntu» que es el usuario por defecto de la máquina.
Configuración Interactiva EC2
Configuración Interactiva EC2
Ahora simplemente al conectar no deberíamos tener ningún problema :D.

Actualizar WordPress va directo al FTP

Si tienes los permisos de la carpeta wp-content bien puestos, y aún se redirecciona a la página de FTP, es devido a la diferencia entre el usuario que actualmente esta usando el sistema con el que ejecuta. Para solucionar esto simplemente podemos forzar a que se haga la actualización de manera directa agregando la siguiente … Leer más

HOWTO Custom AMI en Elastic Bean Stalk de AWS ( Amazon Web Services )

Elastic Bean Stalk se ha convertido en una de mis herramientas favoritas. El fácil deploy de mis aplicaciones utilizando git, la maquina con php5 y la conexión al RDS han hecho que me vuelva comodo en la forma como manejo las versiones y las máquinas para mi software. Además hay que tomar en cuenta que las instancias micro son libres de pago.

La AMI ( Amazon Machine Image ) en la que se lanzan todas las instancias de la aplicación subida por ElasticBeanStalk es una distribución propia de Amazon con un Vanilla Kernel. Esta versión utiliza yum para la instalación de paquetes.

La razón de utilizar una maquina CUSTOM / PROPIA es debido a que la maquina por defecto no tenga todo lo que necesitas. En mi caso particular necesitaba una librería de php-pear para mi aplicación escrita en php.

En mi caso, la idea es extender una imagen linux ( existen distintas versiones incluyendo windows ). Las AMIs en las que me puedo basar dependiendo de la arquitectura son las siguientes:

  1. 32: ami-15812b7c – amazon/PHPBeanstalk32-2012.08.09T20.48.38.0000
  2. 64: ami-ff812b96 – amazon/PHPBeanstalk64-2012.08.09T20.51.54.0000

Y los pasos a seguir son los siguientes:

  1. Crear una instancia en EC2 basada en una de estas imágenes.
  2. Modificar Nuestra nueva Imagen y crear una AMI a partir de ella.
  3. Establecer que nuestra aplicación en BeanStalk utilice nuestra nueva AMI ( Custom AMI )
OJO : Estoy asumiendo que ya tienen una aplicación andando en ElasticBeanStalk, si no la tienen es posible que necesiten una para corroborar este tutorial.

Crear la Instancia de EC2

  1. Accedemos a nuestro panel de control para EC2 dentro del dashboard de AWS.
  2. Ingresamos al link que corresponde a la lista de AMIS.
  3. Seleccionamos mostrar todas las AMIs de AMAZON ( ver dibujo ).
  4. Buscamos la AMI en la que nos basaremos. En mi caso : ami-ff812b96 ( 64Bits ).
  5. Seleccionamos el AMI e iniciamos la instancia ( LAUNCH AMI )
AMIs en el panel de control de EC2
AMIs en el panel de control de EC2
LAUNCH the AMI instance
Muestra como iniciar la Instancia seleccionada y como buscarla
Dependiendo de la forma que hayas seleccionado para conectarte, simplemente conéctate a la instancia recién creada y agrega todas las librerías o aplicaciones que necesites tener instaladas.

Crear el AMI

Ahora, al tener nuestra instancia ya modificada, el crear una AMI a partir de ella es super sencillo.
  1. Selecciona con el boton derecho tu Instancia.
  2. Haz click en «Create Image ( EBS AMI )». 
  3. Sigue el wizard.
Create Image from Instance EC2
Como crear una imagen a partir de una instancia en EC2
Ahora al acceder a nuestras AMIs podemos encontrar nuestra nueva imagen. Por ahora solo necesitaremos su ID.
My Ami ID and Info
El ID de mi nueva imagen y su información

Establecer el Custom AMI en ElasticBeanStalk

Ahora esto debería ser la parte más sencilla.
  1. Ingresamos al panel de ElasticBeanStalk.
  2. Seleccionamos el enviroment en donde queremos usar nuestra custom AMI.
  3. Seleccionamos «Edit Configuration».
  4. En Custom AMI ID ponen el ID de su imagen.
  5. y … LISTO !.
Custom AMI ID
Custom AMI ID en Elastic Bean Stalk
Créanme … es más sencillo cuando es explicado ….