Primeros pasos en Amazon Web Services

Ha pasado un año desde que me dí de alta en Amazon y a los pocos minutos lo cancelaba todo por parecerme demasiado complicado. Durante el último año he pasado unas cuantas horas gestionando (de aquella manera) servidores dedicados, y he aprendido que hacerlo bien sí es complicado, pero al mismo tiempo le he perdido un poco el miedo, lo que ha ocasionado que en un ataque de prepotencia pensase que tal vez ahora todo me parecería más fácil, y vaya si lo ha sido. Tanto que ahora casi me avergüenzo de no haber conseguido seguir adelante aquella vez. Para los que aún no lo sepan, Amazon Web Services o AWS es un conjunto de plataformas dedicadas a alquilar los data centers de Amazon a desarrolladores por medio de una política en la que pagas según usas. Al mismo tiempo el objetivo es el de poder acceder por un bajo coste a la nube y disponer de recursos suficientes como para mantener servicios web cuya demanda pueda llegar a comprometer hasta el hosting más chulo. Amazon Elastic Compute Cloud (EC2), Amazon Simple Storage Service (S3), Amazon CloudFront, Amazon SimpleDB y Amazon Simple Queue Service (Amazon SQS) son las piezas de este puzzle, y aquí voy tratar de explicar los pasos que he dado para contratar y empezar a usar EC2, que no es más que un servicio escalable en cuanto a capacidad en el que ejecutas una o varias máquinas virtuales (Amazon Machine Instance o AMI) según necesites.

1. Darse de alta

Que duda cabe que el primer paso es registrarse por medio del formulario de Amazon, donde además indicaremos nuestro número de VISA y dirección de facturación. aws_formalta Tras esto y en unos segundos han llegado tres mails en los que se me daba la bienvenida y me facilitaba un link a una página con información sobre mis claves (access key ID, clave de acceso secreta y un certificado X.509, que aún no entiendo bien para qué lo necesito pero que parece muy pero que muy importante). En el siguiente mail un nuevo link, esta vez a una página que permite visualizar el estado de mis cuentas, cuanto estoy consumiendo y por lo tanto cuanto voy a tener que pagar al finalizar el mes.

2. Acceder a la consola de administración (AWS Management Console)

Entrando en http://aws.amazon.com y clicando sobre "Your Accout >> AWS Management Console >> Go to Amazon EC2 Console >>" se accede al espacio desde donde se controla todo.

3. Crear el primer servidor virtual

aws1

Los servidores virtuales son conocidos aquí como instancias de Amazon EC2. Creamos nuestra primera instancia pulsando sobre "Launch Instances" Se puede instalar una instancia con imágenes (AMI) propias, creadas por la comunidad o proporcionadas por Amazon. He tirado por la vía fácil y seleccionado una de Amazon llamada "LAMP Web Starter", y que está compuesta de: Fedora Core 8, 32-bit architecture, PHP 5.0.4, Apache 2.0.54, and MySQL 4.1.20. aws2 Antes de proceder con la instalación pide que se indique una nueva clave, y que descargue el par de clave publica/privada. Nunca antes había reunido tantas claves para un mismo servicio. aws3

4. Configurar el Firewall

En el siguiente paso se define la configuración del Firewall indicando un nombre para el grupo de seguridad, una descripción del mismo y los puertos a dejar abiertos. Inicialmente son tres los que vienen marcados (SSH, HTTP y MySQL). Dejo todos ellos habilitados, ya que al menos a mi se me presentan como indispensables. aws4

5. Lanzar la máquina virtual

Indicando el número de instancias que se quiere de ella (en mi caso con saber hacer funcionar una de momento me vale), el tipo de máquina (Small o High-CPU medium) la clave a usar y los grupos de seguridad permitidos. aws5 No tengo claro si es importante seleccionar ambos grupos de seguridad (el que he definido y el que viene como "default") o si es mejor usar solo uno de ellos, pero algo me dice que lo sabré justo después de que me pase algo muy malo.

6. Fin de la instalación de la máquina virtual

Tal y como muestra la siguiente pantalla ya está lista la primera máquina virtual. aws6

7. De vuelta a la consola de administración (AWS Management Console)

Tras una breve celebración, acudo al panel de administración y puedo apreciar la nueva instancia, que ya se encuentra activa. aws7 Clicando sobre ella puede verse información detallada, donde se indica entre otras cosas la DNS Pública, que servirá para conectar tanto desde el navegador como por SSH.

8. Accediendo al servidor vía SSH

Hay que abrir un cliente de SSH (PuTTY, terminal...). Si se va a usar PuTTY antes hay que convertir la clave con PuTTYgen (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) que se ha generado en el paso 4 para poderla usar aquí. Una vez convertido y obtenido el archivo en formato .ppk abrimos PuTTY y en el apartado "SSH >> AUTH" se carga. En la pestaña "Session" se indica el campo Host Name la DNS pública que hablábamos y a conectar, como root. Si la conexión se hace por terminal, así:

ssh -i archivoclave.pem root@dnspublica

Una vez dentro podemos acceder al index.php, que se encuentra en el path /home/webuser/helloworld/htdocs/ Listos. A partir de aquí terminar de configurar y personalizar el servidor y a empezar con las primeras pruebas. ¿Cómo? ¿Qué me falta una captura? ah sí, ahí va... aws_helloworld Ya veis, con la fácil que es y me he tirado un año pensándomelo.

11-02-2009


Comentarios:

30-01-2010 | SaveR Hacerse una unidad de red con el contendo del EC2 es fácil y muy práctico:

$sshfs -o IdentityFile=pathtoPEM root@remotehost:/ /localFolder

Donde "pathtoPEM" es la ruta al archivo PEM, "remotehost" la IP o la DNS que asigna Amazon a la instancia EC2 y "localfolder" la carpeta local donde montaremos la unidad.

03-03-2010 | Angel Hola, he seguido paso a paso tus detalladas instrucciones y, usando Putty, al acceder me pide que me logee y no doy con la contraseña de root.

He buscado ayuda en muchas páginas pero no hay manera. Creo que voy a abandonar.

¿Me puedes echar una mano? gracias

04-03-2010 | SaveR @Angel, la contraseña de root no la has de escribir, tan solo has de convertir el archivo de claves que descargaste en el paso Nº3 con la herramienta PuTTYgen. Obtendrás un archivo con extensión ppk que tendrás que guardar en Putty dentro del apartado "SSH >> AUTH".

Ánimo, que has llegado hasta el último paso!

04-03-2010 | Angel Gracias SaveR. El caso es que ya he convertido el archivo de claves en el apartado que comentas. Me conecta con mi IP, pero me pide de nuevo mi contraseña. No lo entiendo mucho...¿conoces algún manual en español para principiantes?

07-03-2010 | SaveR @angel he encontrado esta URL que espero que pueda ayudarte http://developer.amazonwebservices.com/connect/message.jspa?messageID=125093

24-05-2010 | Jorge @angel puede que ya sea tarde pero apenas estoy checando yo tambien esto, y lo que hice fue bajar el PuTTYgen le di conversions y seleccione import key, de ahi le di un key passphrase cualquiera y lo confirme, posteriormente le di en save private key, y listo has los pasos marcados arriba de ponerlo en ssh auth y en session ingresalo asi root@dnspublica, donde en dnspublica es el que te dio

08-07-2010 | motta Felicitaciones por tu blog. He apuntado un par de artículos que me han salvado la vida. Mil gracias desde Palma de Mallorca.

http://www.amidaweb.com/

28-12-2010 | esrojx Tengo un dominio al cual tengo que asignarle los dns de mi instancia en amazon para que levante, cules son estos dns en referencia, si alguine pudiera ayudar

20-10-2011 | Marco Tulio Astudillo Hola, buen blog. Ustedes saben como es el procedimiento para vincular un nombre de dominio a una maquina alojada en AWS??

05-04-2012 | bbolson Os paso un documento un poco mas actualizado y con muchas imagenes.

http://www.bandin.info/2012/04/manual-de-uso-de-amazon-ec2-creando-maquina-virtuales-gratis

Saludos

27-03-2013 | Exequiel hola que tal, estoy desde hace algun tiempo con un tema que me viene comiendo la cabeza. Como puedo conectarme a mi mysql desde la consola de window

18-05-2013 | mario m. abro el puerto 8501 pero no me logro conectar lo marca como cerrado sabes si hay alguna restriccion en especial de amazon

19-10-2013 | jquiu tengo una instacia con amazon y quisiera enlazarla a un dominio que debo hacer ?? .. me pueden dar alguna luz

17-12-2013 | Cronk Hola:

Estoy desarrollando una web en php y quisiera publicar los productos de mi web a través del API de amazon para php... mi pregunta es: hay que hacer todos estos pasos que se explican acá o solo solo con el API se pueden publicar los productos?

Si pudieran darme un ejemplo se los agradecería

saludos

Pues yo pienso que:


Suscribirse