Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

465
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda