DB & Oracle Fernando José on 03 May 2008 10:48 pm
ApEx en la nube de Amazon (APEX+EC2+S3)
Bueno me quede con la idea de montar un APEX en el internet y hoy por fin lo probé. Contraté una cuenta de Amazon Web Services, en toda esa lista de productos de AWS los que interesan para este proyecto son el EC2 ( Elastic cloud) o la nube y los servicios de almacenamiento S3 (Simple Storage Services ). Una vez que tienes las claves de acceso puedes leer este documento que explica como iniciar/parar/crear una máquina virtual en el EC2, a nivel local (en la máquina de casa) se emplea un API de gestión que utiliza java 5 y las llaves de acceso que te da Amazon.
El primer punto interesante es que uno no tiene que hacer mucho esfuerzo para crear una máquina virtua en la nube, existen máquinas virtuales listas con Fedora Core y Ubuntu. Yo escogí una maquina virtual pública que tiene Ubuntu 7.10 , en base a esta cree la imagen privada siguiendo el documento de Amazon y estuvo lista en pocos minutos.
Una vez arriba acceder a la máquina virtual desde un windows es ligeramente complicado porque uno tiene que configurar el Putty, desde Linux no es ningún problema. Una vez dentro de la maquina virtual añadiendo el repositorio de Oracle instalar una base de datos XE es tan fácil como hacer ‘apt-get install oracle-xe’. El proceso de instalación se queja de que no tiene swap pero la memoría de la máquina virtual es más que suficiente para una XE (1.7GB) y no presenta problemas después.
Una vez con la base de datos XE arriba podemos con wget obtener el software de ApEx 3.1, este paso tiene un truco. Se realiza con el comando:
wget –cookies=yes –http-user=<usuario_otn> –http-passwd=<password_otn> http://download.oracle.com/otn/java/appexpress/apex_3.1.zip
Este comando la primera vez hace la descarga de un link del jsp de autorización, pero la segunda vez que lo ejecutas ya descarga el programa porque deja guardadas las contraseñas en el cookie.
Se puede tambien con scp inyectar el archivo zip del APEX desde el ordenador de casa pero yo tengo el problema de que mi velocidad de subida va bajando paulatinamente (gracias Orange por eso me cambio de proveedor!) . Al final tomaba como 45 minutos subir el archivo, con wget lo hice en menos de 5 minutos desde la máquina virtual.
Bueno una vez que se tiene el archivo se lo extrae (unzip) y se instala utilzando sqlplus. El problema que tenemos con este paso es que las variables de entorno no estan creadas para la instalación. El paquete oracle-xe instala un usuario oracle pero no deja configurado el entorno. Puedes crear un archivo .bash_profile en el home del usuario oracle (su – oracle) que contenga esto:
#!/bin/bash
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
ORACLE_SID=XE
export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH
export PATH
Se puede cargar este archivo con el comando ‘. .bash_profile’ y probar que esten establecidas en el entorno con ‘env | grep ORACLE’ . Una vez que las variables están establecidas ya puedes seguir la guia de instalación de APEX sin problemas.
Una vez terminada la instalación de APEX no hay que olvidar actualizar las images, ya que nuestra instalaciónde APEX es un actualización de la versión 3.0 (Oracle XE viene con APEX), si no se ejecuta este comando las imagenes no se presentan.
SQL> @apxldimg /usr/lib/oracle/xe/app/oracle/product/10.2.0/
Finalmente es necesario abrir el puerto 8080 que utiliza APEX en las maquinas virtuales de la nube, el comando ‘ec2-authorize default -p 8080′ del API de Amazon hace lo suyo.
Saludos. FJA

on 09 May 2008 at 01:04 1.Ionatan said …
Hola, es una muy buena idea. Ademas amazon va a sacar otro servicio nuevo que permite persistent storage en el EC2. Son como unas instancias de EC2 que se llaman buckets, si mal no recuerdo. Se puede montar el bucket como una unidad a una instanca de EC2. Ademas se puede guardar el bucket en S3 y si la instancia se cae, volver a traerla de ahi o incluso tener varios buckets y utilizarlos como mirror o con la base de datos en RAID, con lo cual la persistencia de base de datos estaria asegurada.
La verdad que seria genial.
Podrias publicar la AMI que creaste? Creo que en la pagina de EC2 tienen un listado de AMIs y se pueden postear ahi…
on 09 May 2008 at 20:09 2.Fernando José said …
Realmente no cree ningun AMI, utilizé uno que estaba listado en los AMIs públicos de Amazon. Por el momento puedes hacer una especie de clonación de estos AMIs y guardarlos en bouquets del S3 pero si reinicias la máquina se pierde la información.
Lo que se podría hacer es instalar todo el software, volver a clonar la maquina y generar backups que luego se pasen por scp a algún otro servidor.
Realmente el problema es la falta de persistencia de la información.
on 23 May 2008 at 09:26 3.Google también imita cosas » Innova Desarrollos informáticos said …
[...] y que originalmente podemos atribuir a Amazon. Lo que me gustaría saber es si la estructura APEX que propone Fernando en su blog podrá aplicarse al App Engine de [...]