Programar horarios de encendido y apagado en AWS EC2 — Parte 2


5 min de lectura
Programar horarios de encendido y apagado en AWS EC2 — Parte 2

En la publicación anterior se compartió la forma en que se puede programar el horario de encendido y apagado usando AWS OpsWorks.

Y ahora siguiendo la lista de opciones que se menciono antes, se va a usar AWS Command Line Interface (CLI).

AWS EC2

AWS Command Line Interface (CLI):

Para los que no están familiarizados con esto, se puede resumir en que es un herramienta con la que podemos administrar todos los servicios de AWS desde la linea de comandos.

Pero a que me refiero con que puedo administrar los servicios de AWS ? … Por ejemplo, si se quiere copiar archivos de nuestra PC o Servidor al servicio AWS S3, podemos usar lo siguiente:

aws s3 cp ./mi.archivo s3://mi-bucket/

Y si queremos copiar desde AWS s3 a nuestra PC o Servidor?, bueno, para eso se usa lo siguiente:

aws s3 cp s3://mi-bucket/mi.archivo .

Ahora ya tenemos claro que se puede usar los servicios de AWS desde la linea de comandos.

Nota: Se debe configurar un perfil de AWS en nuestra PC o Servidor con un usuario IAM, en el caso de usar una instancia EC2 se puede configurar un Rol y así evitar crear un usuario IAM.

Parte 1: Preparar el Servidor o PC

En esta primera parte vamos a preparar el Servidor o PC para que se pueda conectar a los Servicios de AWS. Se va a trabajar en una instancia t2.micro.

a. Usuario IAM:

  • En el panel principal de AWS buscar IAM e ingresar.
  • En la siguiente vista se debe dar click en Add user.
  • Luego se debe agregar el nombre del usuario y seleccionar Programmatic access (Limitar solo al uso de SDK y no poder usar la consola web de AWS).
  • Se debe agregar una “Política”, para este ejemplo seleccionemos “AmazonEC2FullAccess” (Con esto podremos tener permiso a todas las características disponibles de EC2 a traves de AWS Cli). Por ultimo en esta sección click en Review.
  • La siguiente vista es un resumen de lo que hicimos y configuramos hasta el momento. Finalmente se debe crear el usuario con “Create user”
  • En la ultima vista se debe prestar mucha atención a la sección de Access key ID y Secret access key, esos dos valores son las credenciales que necesitamos para poder interactuar con AWS Cli desde nuestro Servidor o PC.


Nota: Nunca compartir los Access keys creados con nadie y solo asignar los permisos necesarios.

b. AWS Cli Servidor:

  • Primero debemos instalar AWS Cli con el siguiente comando
pip install awscli
  • Luego, debemos de configurar el perfil de AWS con el usuario que creamos usando AWS IAM.
aws configure --profile nombredeperfil

a. Access Key, este dato se genero al momento de crear el usuario.

b. Secret Access, este dato se genero al momento de crear el usuario.

c. Default Region, la región de AWS en la que trabajamos.

d. Default Output format: json, text o table.

Nota: Los códigos de las regiones de AWS se encuentran en esta página web.

  • Por ultimo podemos observar el perfil configurado en la siguiente ruta con el siguiente comando
cat .aws/config


c. Ejemplos AWS Cli — EC2:

¿Qué podemos hacer con AWS Cli y EC2?

  • Obtener datos de las Instancias (IP privada o publica, estados, etc).
  • Interactuar con las Instancias (Agregar SG, estados, crear AMIs, etc).
  • Interactuar con los elementos de las Instancias (EBS, IPs, SG, etc).
  • Etc.

Si quiere obtener la IP Privada de una instancia que tiene el Tag “Name” con el Valor “servidor-web-1″ podemos usar el siguiente comando:

aws ec2 describe-instances --region us-east-1 --filters Name=tag:Name,Values=servidor-web-1 Name=instance-state-name,Values=running --query 'Reservations[].Instances[].[PrivateIpAddress]'

Region: La región de AWS que usamos, si es la región que se configuro por defecto no es necesario especificar ese valor.

Filters: Valores que usamos para filtrar los elementos que necesitamos.

Query: Filtros que se aplican a los resultados, en este caso queremos filtrar la IP Privada de la Instancia con PrivateIpAddress.

Parte 2: Apagar Instancia

Ya sabemos como usar AWS CLI, por ahora unos comando con S3 y filtrar la IP privada de las instancias.

Para apagar una instancia se necesita el siguiente comando:

aws ec2 stop-instances --instance-ids id-de-la-instancia
  • ¿Dónde esta el ID de mi instancia?

Se debe de ingresar a la consola web de administración de AWS, en la sección de EC2. Luego, seleccionar la instancia y notaran que en la parte inferior encontraran el ID en dos secciones Instance e Instance ID:


  • Ya tenemos el comando a ejecutar, ya tenemos el ID de la instancia. Ahora debemos usar ambos para apagar la instancia.
aws ec2 stop-instances --instance-ids i-0486a138528ddbb59 
  • Una vez que ejecutemos ese comando se obtiene el siguiente resultado:


¿Profile?, se especifica este parametro solo si al momento de configurar el perfil se opto por especificar uno. Si no se uso el valor — profile al configurar el perfil, se crea uno por defecto (Default) y en todos los comandos de AWS CLI no sera necesario especificar el parametro Profile

Parte 3: Encender Instancia

Y en la ultima parte de este básico pero útil tutorial, si queremos encender la instancia, el comando a ejecutar ?

aws ec2 start-instances --instance-ids id-de-la-instancia

Ya tenemos el ID y ahora el comando es simple para nosotros, el ejemplo completo es:

aws ec2 start-instances --instance-ids i-0486a138528ddbb59


¿Pending?, al momento de encender, reiniciar o crear una instancia no se inicia instantáneamente. Debemos de recordar que al final es una maquina virtual que debe iniciar todos los servicios necesario para funcionar y si tenemos otros servicios (BD, Web, FS, etc) puede tardar un poco mas. Para ver el estado o conocer el estado de la instancia se puede AWS CLI o la consola web de AWS.

Finalmente, gracias por leer este tutorial. Se subirá el video del primer tutorial y el segundo en unas semanas. Adicionalmente se agregaran otros videos.

Gracias.

Artículos Relacionados

Streaming Monitoring
3 min de lectura
Minecraft Perú …… Sysadmin?
2 min de lectura
Video Servidor web NGINX Centos 6
1 min de lectura

SUBIR