debug_mode=ON

Buscar en

 
 

Primeros pasos con Amazon EC2 (II)

Escrito por jlbelmonte hace 1 años bajo una licencia de Creative Commons Creative Commons License
2376 visitas. Etiquetas: administracion-de-sistemas, cloud-computing, cloud, amazon

Ya sabemos identificarnos, levantar una instancia, y conectarnos a ella via ssh con las claves de Amazon.

Zonas de servicio eu-west-1(europa) us-east-1(estados unidos)

Antes de seguir y para que en el camino nadie tenga problemas hablemos un poco de las zonas de servicio de Amazon, son Europa y EEUU.
El uso del servicio es exactamente igual, el pricing es el mismo (salvo en las reserved instances que no estan disponibles en europa) se pueden usar indiferentemente, mucho mejor siempre elegir pensando en la latencia del servicio. Europa en Europa y América en EEUU -si tu negocio depende de un servicio online y das servicio a diferentes paises, gasta un poco más en tener una instancia en otra zona. Tus usuarios, la velocidad y el SEO de tu página se verán beneficiados-.

De la misma manera que puedes usar cualquier zona de manera indiferente, las zonas "no se ven" entre si. Si registras un AMI en Europa y un volumen en Europa, no se puede usar el volumen desde una instancia arrancada en EEUU.

Más adelante veremos como mediante el binario ec2-migrate-manifest podremos cambiar los manifest de las AMIS para poder registrarlas en la otra zona.

Grupos de seguridad

Las instancias de Amazon vienen totalmente blindadas por defecto, para permitir comunicarnos a algun servicio por red a las máquinas se deben permitir los accesos.

Existe un grupo por defecto que tiene un nombre muy original, 'default'. Para abrir un puerto en un grupo usamos:

ec2-authorize  miGrupo -p 80

Esto permite la conectividad de las instancias del grupo 'miGrupo' por el puerto 80. ec2-authorize permite controlar la seguridad de red con algunas opciones más, como especificar protocolos, o restringir el acceso a ciertos servicios desde solo una red.

    ec2-authorize miGrupo -p 80 -s 205.192.8.45/24

Ya sabemos como configurar un grupo de seguridad al menos de manera básica. Podemos crear los que queramos y añadir las instancias a los grupos que necesitemos. Como consejo, si se me permite, es atomizar los grupos de seguridad y no tener infinidad de reglas en uno solo.

12:37:10 jlbelmonte@hal9000:~$
  ec2-add-group foo  -C /media/truecrypt1/cert-XXXXXXX.pem -K /media/truecrypt1/pk-XXXXXX.pem  -d 'grupo de prueba'
    GROUP	foo	grupo de pruba
Vuelvo a comentar el path donde tengo mis cerificados ../truecrypt1/ . Es muy aconsejable tener vuestras credenciales siempre en particiones cifradas.

Podemos asociar una instancia a un grupo cuando la arrancamos, añadiendo la opción group al ejecutar ec2-run-instances.

    ec2-run-instances ami-X24X434 --region eu-1a --group foo

Elastic IPs

Podemos solicitar ips para tener una ip fija, y poder tenerla siempre en "propiedad" aunque no esté asociada a ninguna instancia activa, de esta manera siempre tendremos la misma IP para nuestro servicio cuando lo levantemos.

Obtener una elastic ip, es fácil.

15:18:31 jlbelmonte@hal9000:~$
  ec2allocaddr --region=eu-west-1
ADDRESS	79.125.X.X

Ya tenemos una ip que podremos asociar a cualquiera de las instancias que tengamos funcionando.

¿Cuáles tenemos funcionando? De paso vamos a ver uno de los comandos describe que valen para obtener información de diferenetes cosas. por ejemplo de nuestras instancias.
15:25:42 jlbelmonte@hal9000:~$
  ec2-describe-instances  --region eu-west-1 		RESERVATION	r-XxX	0000000	GruposSeguridad INSTANCE	i-InstanceNumber	ami-XXX	available 0 m1.small timestamp   aki-XXXXX	ari-XXXX

Para asociar la ip que teniamos solicitada a una instancia nos serviremos de:

ec2-associate-address -i i-InstanceNumber 79.125.X.X

Volúmenes

La idea básica es crear un volumen, añadírselo a una instancia y esta lo verá como un disco duro. Si lo habíamos formateado o particinado anteriormente seguirá en el mismo estado, si es nuevo habrá que crear el sistema de ficheros. Lo mismo que si acabásemos de comprar un disco duro externo :)

Creemos un volumen.

15:45:14 jlbelmonte@hal9000:~$
  ec2-create-volume  -s 1 --region eu-west-1 -z eu-west-1a
VOLUME	vol-a88267c1	1		eu-west-1a	creating	2009-03-20T14:45:42+0000

La opción -s en la creación de volúmenes indica el tamaño de la unidad en GB.

comprobamos el estado de los volumenes que tenemos.

15:48:54 jlbelmonte@hal9000:~$
  ec2-describe-volumes  --region eu-west-1
VOLUME	vol-a88267c1	1		eu-west-1a	available	2009-03-20T14:45:42+0000

Para poder usarlo, necesitamos añadírselo a una instancia.

 ec2attvol vol-a88267c1 -i i-XXXX -d /dev/sdf

El sistema operativo que esté instalado en la instancia, verá la unidad como un dispositivo de almacenamiento. Ya se puede usar como si fuese un disco físico, se puede formatear, montar, copiar ...

Como una vez que una instancia se apaga se pierden todos los cambios que se hubiesen hecho sobre ella, es indispensable usar volúmenes si es que se quiere guardar algún dato. Se puede tener una ami perfectamente configurada propia -veremos como hacerlo en la tercera parte- y los volúmenes, de esa manera evitaríamos sufrir la "volatilidad" de las instancias.

Yo uso volúmenes pero ¿dónde hago las copias de seguridad?

Bien, este sea quizás uno de los puntos más atractivos de los volúmenes de Amazon. puedes crear un snapshot de un volumen en cuestion de segundos. Es mayor el tiempo de latencia desde que le das al intro, envias la orden y se te imprime en la pantalla el resultado que lo que tarda en hacer el snapshot :)

16:11:43 jlbelmonte@hal9000:~$
  ec2-create-snapshot vol-a88267c1 --region eu-west-1
SNAPSHOT	snap-30907559	vol-a88267c1	pending	2009-03-20T15:12:35+0000

Y comprobamos el estado de como está.

16:13:18 jlbelmonte@hal9000:~$
  ec2-describe-snapshots  --region eu-west-1
SNAPSHOT	snap-30907559	vol-a88267c1	completed	2009-03-20T15:12:35+0000	100%

Ya tenemos una copia de seguridad del disco entero.

Para recuperar una copia hay que generar un volumen a apartir de un snapshot. Se hace igual que la creación de un volumen normal, pero con la opción --snapshot y dándole el id del mismo.

ec2-create-volume -s 1 --region eu-west-1 -z eu-west-1a --snapshot snap-30907559

Todo lo que hemos enseñado hasta ahora a hacer mediante una línea de comandos, se puede hacer desde la consola de Amazon, pero recomiendo aprender a usar esto antes que a usar directamente la consola.

  • En la tercera parte del tutorial hablaré sobre las ec2-ami-tools, como guardarnos amis, registrarlas, desregistrarlas...
 

¡Votalo! 4 votos
¡Compártelo!

        

&nbps;

&nbps;

jlbelmonte

Sobre jlbelmonte

Antes de nada "I'm a linux fan" He estudiado ingeniería técnica en informática de sistemas. He trabajado en un par de empresas y en la universidad de zaragoza en áreas de sistemas. Actualmente ando sumergido más en la programación. Y comenzando a dedicarme laboralmente a ello. Durante el GSoC2008, he comenzado a colaborar con Debian y espereo poder hacerlo más profundamente.

 
Regístrate o haz login para participar.
¿Todavía no conoces debugmodeon?
debugmodeon es la red social para profesionales de la informática
descubre debugmodeon
 

7 comentarios en "Primeros pasos con Amazon EC2 (II) "

Spacebom
Spacebom escribió
hace 1 años

#1   

Estupendos artículos.
Creo que no existe información de esta calidad en castellano, muchas gracias.

 

jlbelmonte
jlbelmonte escribió
hace 1 años

#2   

gracias por la parte que me toca :)

en unos días estará el tercero. Luego buscaré temas en los que profundizar. Si tienes sugerencias para futuros artículos soy todo oidos, será un placer

 

dcastello
dcastello escribió
hace 1 años

#3   

Hola!
Coincido con Spacebom, no hay temas de este calibre en español.
Quizá sea interesante hacer un tutorial con un pequeño ejemplo de como tener tu web en los servicios de Amazon.
Dar respuestas a cómo y cuando escalar, cómo preparar tu site (base de datos y codigo) para que escale, etc.

Saludos!

 

jlbelmonte
jlbelmonte escribió
hace 1 años

#4   

Me lo anoto.
Escribiré como usarlo, más alla de como un hosting habitual. Por ejemplo como pasar a tener más máquinas a la vez o como cambiar una instancia por una más grande de manera transparente.

Saludos.

 

dmira
dmira escribió
hace 1 años

#5   

¿Has evaluado el impacto que puede tener en SEO google el hecho de utilizar una elastic IP de Amazon que está, por ejemplo, en Irlanda?

 

jlbelmonte
jlbelmonte escribió
hace 1 años

#6   

Hola dmira.

La verdad que alguna gente le da mucha importancia a que esté en un sitio u otro, no soy SEO y depende cuales me dirán que no tengo razón. Pero personalmente esté donde esté el servidor lo que más importa/penaliza es la latencia que puedas tener y que la carga de la página tarde más.

He hecho pruebas con una máquina de amazon en la región US y el tiempo de carga de esta página es similar a la actual estando el servidor en España.

Ya te digo, dudo que penalice el tema de la geolocalización del servidor, si tanto la latencia como el tiempo de carga son cortos.

No obstante depende de las necesidades que tengas, si tu infraestrucutra incluye frontales web específicos para cada pais, puedes tener los frontales en cada país y el backoffice, bbdd, backups... en Amazon. Siempre hay que valorar que nos aportan unas cosas y otras antes de ponerse a montar algo.

Saludos.

 

dmira
dmira escribió
hace 1 años

#7   

Hola de nuevo :)

Creo que no deberíamos elegir entre la latencia y la geolocalización de la IP, ambas tienen su peso, yo tampoco soy especialista SEO y no me atrevería a decir cual pesa más. Pero en todo caso es conveniente tener en cuenta si vas a utilizar elasticIPs de Amazon que puedes no sacar todos el partido a SEO.

Es conocida la preferencia de Google por el 'matching' de la IP del que realiza la búsqueda y la IP de los sitios que aparecerán en los resultados, hasta tal punto que marcas conocidas que utilizan un Akamai no salen como sería esperado en Google debido a que el spider de Google lanzado desde USA accede a una IP de USA precisamente porque Akamai te servirá desde dónde tenga menor latencia, y Google cree que la web no está en el país del usuario que busca...

Cierto que puedes configurar frontales, pero entonces pierdes la gracia de la baja barrera de entrada económica que supone EC2 para proyectos pequeños con vistas a crecer...

Gracias por tu comentario, si encuentro una buena solución, o sea simple y barata, la comentaré :)

 
 
 
 

© Copyright 2008-2009 debug_mode=ON | Aviso legal | Contacto | FAQ | ¿Quiénes somos? |