Como faço para usar VMs na nuvem que só preciso em horários específicos?

Como faço para usar VMs na nuvem que só preciso em horários específicos?

Atualmente estou processando vídeos em um servidor local que gostaria de terceirizar para a nuvem. Estou bastante familiarizado com o Google Cloud e é por isso que escolheria o Google. O processo consistiria em:

  • Upload de arquivos de vídeo para Cloud Storage
  • Processamento de arquivo em uma instância do Compute Engine
  • Armazenamento de vídeo processado no Cloud Storage

Em média, eu precisaria da instância do Compute Engine 1 hora por dia. Existe uma maneira simples de ligar automaticamente a instância e desligá-la sob demanda? Como eu faria isso?

Responder1

Existe uma maneira mais simples de fazer isso.

O GCP oferece um serviço chamadoFunções de nuvem. Neles você pode colocar scripts que são chamados por Eventos ouGatilhos. Um deles éGatilhos de armazenamento em nuvemque são ativados com eventos do Cloud Storage, como criação de objeto (fazer upload de arquivos) ou exclusão de objeto (excluir arquivos).

A Cloud Function pode ler o arquivo (neste caso um Vídeo), realizar todo o processo nele e retornar um resultado ou, no seu caso, armazenar o resultado em um bucket do GCS (pode ser o mesmo onde o arquivo foi carregado, pode ser outro).Aquivocê pode encontrar exemplos de código para interagir com o arquivo que acabou de enviar.

Para armazenar seu vídeo processado, confira oBibliotecas de cliente do Cloud Storage. Dependendo do idioma que você usará (os suportados para Cloud Storage e Cloud Functions sãoNode.js,Pitão,Ir,JavaeC#) você deve verificaros exemplos de códigopara fazer upload do resultado em um bucket.

Usar o Cloud Functions é uma opção muito mais barata em relação ao Compute Engine, pois você só usará esses recursos quando eles forem necessários. A única desvantagem aqui é que você está limitado peloMemória e CPUeste serviço suporta.

Caso os recursos (de 128MB a 4096MB de Memória) não sejam adequados ao processo que deseja realizar, você também pode seguir estes passos:

  1. Crie uma instância do Compute Engine com oTipo de máquinanecessário para seu caso de uso. Coloque um script onde todo o processo será feito. Depois de criado e tudo configurado,pare com isso.
  2. Crie uma Cloud Function com gatilhos de eventos do GCS (com a documentação já fornecida) e sempre que for chamada, reinicie seu GCE via código. Isto pode ser feito com oBibliotecas de cliente do Compute Engineou atravésa API(Posso pensar em uma solicitação HTTPS com seu idioma favorito).
  3. Envie todas as informações para seu GCE e deixe a máquina funcionar (talvez seja necessário adicionar algum código para aguardar uma resposta do GCE no Cloud Functions).
  4. Quando terminar, faça upload do arquivo para o Cloud Storage e informe ao Cloud Functions que tudo foi feito.
  5. Depois de receber essa confirmação, peça ao Cloud Functions para interromper o GCE novamente.

Lembre-se de que o Compute Engine cobra poro tempo em que as VMs estão em execuçãoportanto, esse cenário alternativo também pode fornecer a solução desejada com os recursos necessários a um preço razoável.

Agendar um GCE com o Cloud Schedulertambém é uma opção, mas você realmente não sabe quando o GCE será usado, portanto, usar o Cloud Functions envolverá menos produtos e menos esforço de sua parte.

informação relacionada