Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

467
Views
Detener mediante programación AWS EC2 en caso de inactividad

¿Podemos detener una instancia EC2 del servidor de Windows de AWS de un entorno de desarrollo cuando no hay actividad en él, digamos después de 2 horas de inactividad? Tengo problemas para identificar si algún usuario está conectado al servidor virtualmente.

Puedo iniciar/detener fácilmente el EC2 en un momento fijo, mediante programación, pero para reducir el costo de mi servidor, trato de detener el EC2 cuando no se está utilizando.

Mi intención (o caso de uso) es : si ningún usuario está usando EC2 hasta un período de tiempo específico, se detendrá automáticamente. Los desarrolladores pueden reiniciarlo cuando sea necesario.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

La solución más sencilla probablemente sería configurar una Alerta con CloudWatch.

Lea la documentación, que básicamente describe perfectamente su caso de uso:

Puede crear una alarma que detenga una instancia de Amazon EC2 cuando se alcance un cierto umbral

Una condición podría ser la utilización promedio de la CPU, por ejemplo, la utilización de la CPU está por debajo de cierto punto (lo que probablemente se correlacione con que no haya usuarios registrados/ningún desarrollador que realmente utilice la máquina).

over 4 years ago · Santiago Trujillo Report

0

Esta no es una tarea fácil.

El servicio Amazon EC2 proporciona una computadora virtual que tiene RAM, CPU y disco. Puede ver la cantidad de actividad en la CPU, el tráfico de red y el acceso al disco, pero no puede ver el sistema operativo .

Entonces, el problema se convierte en cómo detectar la 'inactividad' . Esto realmente se reduce al sistema operativo y a tomar algunas decisiones difíciles. Por ejemplo, la pantalla de la computadora de su hogar se apaga después de un tiempo definido sin que se use el mouse o el teclado, pero el sistema operativo sigue activo en segundo plano. Si el sistema ejecuta una aplicación como un servidor web y no hay solicitudes web, es difícil saber si está "inactivo" porque no hay solicitudes o "activo" porque el servidor web se está ejecutando.

En pocas palabras: no hay una función lista para usar para hacer esto. Debería encontrar su propia definición de 'inactividad' y luego activar un apagado en el sistema operativo.

Si desea hacerlo a través de un programa, esto podría ayudar: Detener automáticamente las instancias EC2 cuando terminan una tarea - DEV Community

over 4 years ago · Santiago Trujillo Report

0

ACTUALIZACIÓN: Ya no se necesitan Lambda, vea la respuesta de tpschmidt.

Cree una Lambda para apagar el EC2 que se activará con una alarma de Cloud Watch cuando, por ejemplo, la CPU esté por debajo del 20 % de promedio durante una hora. Esto está bien cuando está codificando, ya que usará más del 20%, y cuando tiene un descanso de más de una hora, es cuando desea que se apague.

Asegúrese de configurar el guardado automático en su IDE.

Ejemplo Python Lambda:

 import boto3 region = 'eu-west-3' instances = ['i-05be5c0c4039881ed'] ec2 = boto3.client('ec2', region_name=region) def lambda_handler(event, context): #TODO getInstanceIDFromCloudWatch = event["instanceid"] ec2.stop_instances(InstanceIds=instances) print('stopped your instances: ' + str(instances))

Ref: https://www.howtoforge.com/aws-lambda-function-to-start-and-stop-ec2-instance/

En la consola de AWS:

  1. Vaya a EC2, seleccione la instancia de EC2 y copie la ID de la instancia

  2. Vaya a Cloud Watch y seleccione Métricas

  3. En Espacios de nombres de AWS, haga clic en EC2

  4. Pegue el ID de instancia para encontrarlo

  5. Seleccione EC2 > Métricas por instancia

  6. Elija la primera utilización de CPU métrica

  7. Seleccione la segunda pestaña llamada Graphed Metric

  8. Haga clic en el ícono de Campana debajo de Acciones

  9. Establezca un umbral, también esta es la parte difícil, deje el valor predeterminado de Estadística: promedio durante 1 hora

  10. Establezca la Condición menor/igual y establezca el valor en 20 % (deberá usar la máquina más de 1/5 de la hora con más de 20 % de CPU, de lo contrario, se apagará).

  11. A continuación, cree una alarma, configure una notificación si lo desea o elimínela

  12. Una vez creada la alarma

  13. En Cloud Watch, seleccione Evento > Reglas

  14. Agregar una regla

  15. Seleccione EC2 como el nombre del servicio y todos los eventos

  16. Haga clic en Destino y seleccione su Lambda.

  17. Cuando suene la alarma, Lambda apagará el ID de la instancia.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!