En el servicio EC2 de Amazon podemos elegir una imagen de sistema operativo (AMI) preinstalado por Amazon o imágenes compartidas por los usuarios (public AMIs). Pero también tenemos la opción de crear una imagen nosotros mismos y subirla a su sistema. Si queremos podemos hacerla pública para ahorrarle el trabajo a otra persona que la quiera usar.
Me he entretenido un rato haciendo una de prueba. La idea de la prueba era hacer una instalación LAMP completa. He elegido hacer un AMI de Ubuntu 7.10, aunque me ha dado algunos problemas, de momento sigue siendo más fácil usar Fedora o CentOS.
Desde la página de EC2 se pueden descargar scripts para realizar esta tarea de forma automatizada, y se tarda solo unos minutos. Como era la primera vez prefería hacerlo manualmente.
Antes de comenzar con esta instalación uno debería estar ya familiarizado con el uso de las AMIs públicas de Amazon, hay un tutorial de
SobreRailes donde cuenta perfectamente como crear y acceder una instancia. Yo parto con que estos conocimientos ya los tenemos.
Os cuento los pasos que he dado:
1. Instalar JRE de SUN y configurar correctamente la variable JAVA_HOME, además son necesarios los paquetes de Xen, curl, debootstrap, ruby, gems y alien.
2. Hay que descargar de Amazon e instalar las utilidades
ec2-ami-tools y
ec2-api-tools. La primera solo se puede descargar en RPM, por lo que necesitamos instalar con Alien si estamos usando Ubuntu/Debian.
wget
http://s3.amazonaws.com/ec2-downloads/ec2-ami-tools.noarch.rpm
alien -i ec2-ami-tools.noarch.rpm
3. Hay que estar dado de alta en los servicios S3 y EC2 y descargar el Access Key ID, Secret Access Key y el certificado x.509. Configurar las variables EC2_CERT y EC2_PRIVATE_KEY nos ahorrará tener que teclearlas muchas veces.
export EC2_HOME=/home/jmsuarez/ec2/soft/ec2-api-tools-1.2-9739
export EC2_CERT=/home/jmsuarez/ec2/claves/ec2-cert.pem
export EC2_PRIVATE_KEY=/home/jmsuarez/ec2/claves/ec2-cert.pem
export PATH=$PATH:$EC2_HOME/bin
4. mkdir /mnt/image
dd if=/dev/zero of=/mnt/image/ubuntu-7.10-srv bs=1M count=2048
Crea una imagen de 2GB donde vamos a instalar el sistema operativo (podemos crearla del tamaño que queramos)
5. mke2fs -F -j /mnt/image/ubuntu-7.10-srv
Da formato a la imagen.
6. mkdir /mnt/ec2-fs
mount -o loop /mnt/image/ubuntu-7.10-srv /mnt/ec2-fs
Monta la imagen en un directorio para poder acceder a ella.
7. debootstrap gutsy /mnt/ec2-fs/
Debootstrap instala los paquetes básicos de la distribución Gutsy de Ubuntu.
8. cp /etc/apt/sources.list /mnt/ec2-fs/etc/apt/sources.list
Hay que copiar nuestro archivo de fuentes.
9. chroot /mnt/ec2-fs
Cambia la raíz del sistema a /mnt/ec2-fs
10. passwd; useradd jmsuarez; passwd jmsuarez
Configura un password para el usuario root y crea un nuevo usuario
11. apt-get update && apt-get upgrade
apt-get install openssh-server mysql-server-5.0 php5 apache2-mpm-worker rsync man
Instala el software básico de nuestro servidor LAMP
vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
Configura la red para iniciarse en DHCP
vi /etc/fstab
/dev/sda2 /mnt/ec2-fs ext3 defaults 1 2
/dev/sda3 swap swap defaults 0 0
Configura nuestros volúmenes.
12. umount /mnt/ec2-fs
Cerramos el terminal que estamos usando y desde otro desmontamos el volumen.
13. ec2-bundle-image -i /mnt/image/ubuntu-7.10-srv -u {account number}
Prepara nuestra imagen para ser subida a EC2, vuelca todos los archivos a /tmp. El account number me llevó un buen rato encontrarlo, está en la página Account Activity de S3.
14. ec2-upload-bundle –url
http://s3.amazonaws.com -b bucket -m /tmp/ubuntu-7.10-srv.manifest.xml
Sube la imagen a S3, aquí nos podemos ir a cenar y ver una peli porque a mi me tardó 3 horas. Tenemos que crear antes un bucket en S3.
15. ec2-register bucket/ubuntu-7.10-srv.manifest.xml
Registra la imagen. Devuelve el número asignado de nuestra AMI.
16. ec2-describe-images ami-xxxxxxxx
Esperamos un par de minutos a que levante el sistema. Con esta orden podemos ver su estado.
17. ec2-add-keypair jmsuarez-test2
Creamos una llaves RSA para poder administrar el servidor.
18. ec2-run-instances ami-xxxxxxxx -k jmsuarez-test2
Activamos la instancia
19. ec2-describe-instances i-xxxxxxxx
Comprobamos su estado y es en este punto donde nos devuelve la dirección IP asignada.
Enhorabuena, ya hemos acabado. A partir de aquí ya podemos acceder por SSH y continuar configurando nuestro servidor.
Con EC2 podemos tener nuestro sistema a medida y configurarlo y activarlo fácilmente desde cualquier sitio, en cuestión de minutos. Algo que nunca hemos podido hacer con los proveedores de hosting que teníamos.
You have already tagged this post. Your tags: