GESTIÓN DE INSTANCIAS LINUX EN AMAZON EC2 DESDE LA LÍNEA DE
COMANDOS
REQUISITOS: JAVA
Las herramientas en línea de comandos de Amazon EC2 requieren la versión Java 5 o posterior, o bien, una instalación de JRE o JDK.
Descargar en:
http://java.sun.com/j2se/1.5.0/
REQUISITOS: JAVA
También requieren la variable de entorno (JAVA_HOME) para localizar JRE.
$ export JAVA_HOME=C:\Archivos de programa\Java\jre1.6.0_07
C:\> set JAVA_HOME=/usr/java/jdk1.6.0_07
HERRAMIENTAS: DESCARGAR
Las herramientas en línea de comandos están disponibles como un archivo ZIP en el Centro de Recursos de Amazon EC2.
Descargar en: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88
HERRAMIENTAS: EC2_HOME
Las herramientas en línea de comandos dependen de una variable de entorno (EC2_HOME) para localizar las bibliotecas de apoyo.
Indicar la ruta del directorio de las herramientas. Este directorio se denomina EC2-api-tools-AB-nnnn (A,B y n corresponden a la versión) y contiene subdirectorios bin y lib.
$ export EC2_HOME=<path-to-tools>C:\> set EC2_HOME=<path-to-tools>
HERRAMIENTAS: PATH
Por comodidad es aconsejable añadir las herramientas de Amazon al Path:
$ export PATH=$PATH:$EC2_HOME/bin
C:\> set PATH=%PATH%;%EC2_HOME%\bin
HERRAMIENTAS: CERTIFICADOS
Las herramientas en línea de comandos necesitan tener acceso a la clave privada y a un certificado X.509 generados tras registrarse en Amazon EC2.
Establecer la variable de entorno EC2_PRIVATE_KEY con la referencia al archivo de clave privada y la variable EC2_CERT al certificado X.509
$ export EC2_PRIVATE_KEY=/ec2/pk-HKZYKTAIG2ECM.pem$ export EC2_CERT=/ec2/cert-HKZYKTAIG2ECMXYIBH3.pem
C:\> set EC2_PRIVATE_KEY=c:\ec2\pk-HKZYKTAIG2ECM.pemC:\> set EC2_CERT=c:\ec2\cert-HKZYKTAIG2ECMXYIBH3.pem
HERRAMIENTAS: LOCALIZACIÓN
Por defecto, las herramientas de Amazon EC2 ubican las instancias en la zona este de los Estados Unidos (us-east-1). Si se quieren localizar en Europa Occidental así que hay que modificar el valor de la variable EC2_URL:
$ export EC2_URL=https://ec2.eu-west-1.amazonaws.com
C:\> set EC2_URL=https://ec2.eu-west-1.amazonaws.com
HERRAMIENTAS: PUERTOS
La primera vez que se configura Amazon el grupo de seguridad tiene sus puertos cerrados.
Abrir el puerto 22 (SSH):
PROMPT> ec2-authorize default -p 22
Repetir este comando para puertos como HTTP (80), Tomcat (8080), MySQL (3306)…
HERRAMIENTAS: PAR DE CLAVES
Cuando se pone en marcha una instancia de una AMI, en lugar de contraseña, se necesita un par de claves pública/privada para acceder a la instancia.
Generar un par de claves:
PROMPT> ec2-add-keypair gsg-keypair
HERRAMIENTAS: PAR DE CLAVES
KEYPAIR gsg-keypair 1f:51:ae:28:bf:89:e9:d8:1f:25:5d:37:2d:7d:b8:ca:9f:f5:f1:6fBEGIN RSA PRIVATE KEYMIIEoQIBAAKCAQBuLFg5ujHrtm1jnutSuoO8Xe56LlT+HM8v/xkaa39EstHungXQ29VTc8rc1bW0lkdi23OH5eqkMHGhvEwqa0HWASUMll4o3o/IX+5AU52EQfanIn3ZQ8lFW7Edp5a3q4DhjGlUKToHVbicL5E+g45zfB95wIyyrdLNLDL4+TcnT7c62/aH01ohYaf/VCbRhtLlBfqGoQc7+sAc8vmKkesnF7CgC0iZzzNAapayz1+JcVTwwEid6j9JqNXbBc+Z2YwMi+T0Fv/P/hwkX/ypeDQbsz7LcY1HqXiHKYNWNvXgwwO+oiChjxvEkSdsTTIfnK4VSCvU9BxJZKjTSu3i7vhvx6RzdSedXEMNTZWN4qlIx3kR5aHcukCgYA9T+Zrvm1FP8TTvW/6bdPi23ExzxZn7KOdrfclYRph1LHMpAONv/x2xALIf91UB+v5o2ERKKdwz0ZL9SWq6VTdhr/5G994CK72fy5WhyERbDjUIdHaK3M849JJEND RSA PRIVATE KEY
Guardar el contenido en negrita en:
/ec2/id_rsa-gsg-keypairc:\ec2\id_rsa-gsg-keypair
INSTANCIAS: RUN
Para levantar una nueva instancia de un AMI concreta (ami-a3e8ad92 en el ejemplo) usar el comando ec2-run-instances:
PROMPT> ec2-run-instances ami-a3e8ad92 -k gsg-keypair
RESERVATION r-f25e6f9a 999988887777 defaultINSTANCE i-85b435ee ami-e4f9cc90 pending gsg-keypair 0m1.large 2010-03-30T08:01:36+0000eu-west-1a aki-94c527fd ari-96c527 monitoring-disabled ebs
INSTANCIAS: STOP y START
Una instancia parada permitirá al usuario conservarla sin generar costes mientras se mantenga detenida.
Detener una instancia:
PROMPT> ec2-stop-instances i-85b435ee
IMAGE i-85b435ee running stopping
Para ponerla de nuevo en marcha:
PROMPT> ec2-start-instances i-85b435ee
IMAGE i-85b435ee stopped pending
INSTANCIAS: TERMINATE
Cuando ya no se requiere la utilización de una instancia puede borrarse:
PROMPT> ec2-terminate-instances i-85b435ee
IMAGE i-85b435ee running shutting-down
INSTANCIAS: DESCRIBE
Listar las instancias actualmente levantadas:
PROMPT> ec2-describe-instancesRESERVATION r-d79b00a0 272662437231 default
INSTANCE i-73c7b214 ami-fff1d77b ec1-46-72-247-230.eu-west-1.compute.amazonaws.com
ip-20-116-201-291.eu-west-2.compute.internal running gsg-keypair 0 m2.large 2010-21-07T1:21:37+0000
eu-west-2b aki-6d011929 ari-37011943 monitoring-enabled
46.72.247.230 20.116.201.291 ebs
BLOCKDEVICE /dev/sda2 vol-b14bb2db 2010-07-27T21:49:32.000Z
BLOCKDEVICE /dev/sda1 vol-b44bb2dd 2010-07-27T21:54:32.000Z
VOLÚMENES: CREATE y ATTACH
Si se desea añadir un disco duro a la instancia se necesita un volumen de datos EBS asociado a ella: PROMPT> ec2-create-volume size 100 -z eu-west-1a
VOLUME vol-c7f95aae 1000 eu-west-1b creating 2010-03-30T13:54:37+0000
También hay que vincular el volumen con la instancia en el dispositivo deseado (/dev/sda2):PROMPT> ec2-attach-volume -d /dev/sda2 -i i-85b435ee vol-c7f95aae
VOLÚMENES: DETACH
En ocasiones un volumen desea desconectarse de una instancia manteniéndose su informacion, por ejemplo, para adjuntarla a otra:
PROMPT> ec2-detach-volume -d /dev/sda2 -i i-85b435ee vol-c7f95aae -f
VOLÚMENES: DELETE
Al igual que con las instancias, se puede borrar volúmenes que no se necesiten:
PROMPT> ec2-delete-volume vol-4282672b
VOLUME vol-4282672b
VOLÚMENES: DESCRIBE
Listar los volúmenes existententes:
PROMPT> ec2-describe-volumesVOLUME vol-2017b337 10 eu-west-1b in-use 2011-03-13T08:08:11+0000
ATTACHMENT vol-2017b337 i-1b5b328d /dev/sda7 attached 2011-03-13T08:17:22+0000
VOLUME vol-8be332e3 1000 eu-west-1b in-use 2010-12-27T12:08:38+0000
ATTACHMENT vol-8be332e3 i-e5257072 /dev/sda2 attached 2011-03-15T10:08:37+0000
AMI: CREATE
Si se ha diseñado una máquina que será replicada en un futuro se puede guardar su configuración guardando un AMI con sus datos:
PROMPT> ec2-create-image -n "My AMI" i-eb977f82
IMAGE ami-8675309
La instancia base se detendrá para la creación del nuevo AMI
AMI: DESCRIBE
También se pueden listar las AMI disponibles
Listar AMI propias:
ec2-describe-images –o self
Listar AMI públicas de Amazon:
ec2-describe-images –o amazon
CONECTAR CON PUTTY
Para conectar con una instancia Unix/Linux de Amazon se requiere un par de claves SSH. Si se está en Windows también hace falta un cliente SSH como PuTTY.
PuTTY no soporta nativamente el formato de la clave privada generada por Amazon EC2.
CONECTAR CON PUTTY
Convertir con PuTTYgen las claves a su formato interno cargando id_rsa-gsg-keypair.
Guardar el archivo ppk
CONECTAR CON PUTTY
Ejecutar PuTTY
Connection/SSH/Auth
Browse para elegir el
archivo ppk de la clave privada para PuTTY
CONECTAR CON PUTTY
En Session, introducir root@ip_address
MONTAR LOS VOLÚMENES
Una vez conectado, si ha añadido un nuevo volumen a la instancia hay que formatearlo (/dev/sda2):
$ yes | mkfs -t ext3 /dev/sda2
Y posteriormente montarlo en un directorio:
$ mkdir /carpeta$ mount /dev/sda2 /carpeta
CONSOLA
Y si no… siempre nos quedará la consola web :)
FIN