¿Cómo hago con las máquinas virtuales en la nube que solo necesito en momentos específicos?

¿Cómo hago con las máquinas virtuales en la nube que solo necesito en momentos específicos?

Actualmente estoy procesando videos en un servidor local que me gustaría subcontratar a la nube. Estoy bastante familiarizado con Google Cloud y por eso elegiría Google. El proceso consistiría en:

  • Carga de archivos de vídeo a Cloud Storage
  • Procesamiento de archivo en una instancia de Compute Engine
  • Almacenamiento de video procesado en Cloud Storage

En promedio necesitaría la instancia de Compute Engine durante 1 hora al día. ¿Existe una forma sencilla de encender automáticamente la instancia y cerrarla según demanda? ¿Cómo haría para hacer eso?

Respuesta1

Hay una manera más sencilla de hacer esto.

GCP ofrece un servicio llamadoFunciones de la nube. En ellos, puede colocar scripts llamados por Eventos oDesencadenantes. Uno de ellos esDesencadenantes del almacenamiento en la nubeque se activan con eventos de Cloud Storage, como creación de objetos (cargar archivos) o eliminación de objetos (eliminar archivos).

La función de nube puede leer el archivo (en este caso un vídeo), realizar todo el proceso en él y devolver un resultado o, en su caso, almacenar el resultado en un depósito de GCS (podría ser el mismo donde se cargó el archivo, podría ser otro).AquíPuede encontrar ejemplos de código para interactuar con el archivo que acaba de cargar.

Para almacenar su video procesado, consulte laBibliotecas de cliente de almacenamiento en la nube. Dependiendo del idioma que utilizará (los admitidos para Cloud Storage y Cloud Functions sonNodo.js,Pitón,Ir,JavayC#) deberías comprobar silos ejemplos de códigoCargar el resultado en un depósito.

Usar Cloud Functions es una opción mucho más económica que Compute Engine, ya que solo usarás estos recursos cuando sean necesarios. La única desventaja aquí es que estás limitado por elMemoria y CPUeste servicio soporta.

Si los recursos (desde 128MB hasta 4096MB en Memoria) no se adaptan al proceso que deseas realizar, también puedes seguir estos pasos:

  1. Crea una instancia de Compute Engine con elTipo de máquinarequerido para su caso de uso. Pon un script donde se hará todo el proceso. Una vez creado y todo configurado,para.
  2. Cree una función en la nube con activadores de eventos de GCS (con los documentos ya proporcionados) y cada vez que se llame, inicie nuevamente su GCE mediante código. Esto se puede hacer con elBibliotecas de cliente de Compute Engineo víala API(Se me ocurre una solicitud HTTPS con tu idioma favorito).
  3. Envía toda la información a tu GCE y deja que la máquina funcione (es posible que necesites agregar algún código para esperar una respuesta de GCE en Cloud Functions).
  4. Cuando finalice, cargue el archivo en Cloud Storage e informe a Cloud Functions que todo está hecho.
  5. Una vez que reciba esta confirmación, indique a Cloud Functions que detenga su GCE nuevamente.

Recuerda que Compute Engine te cobra porla hora en que se ejecutan las máquinas virtualesPor lo tanto, realizar este escenario alternativo también podría brindarle la solución que desea con los recursos necesarios a un precio razonable.

Programar una GCE con Cloud SchedulerTambién es una opción, pero no sabes realmente cuándo se utilizará GCE, por lo que usar Cloud Functions implicará menos productos y menos esfuerzo por tu parte.

información relacionada