Wie gehe ich mit VMs in der Cloud um, die ich nur zu bestimmten Zeiten benötige?

Wie gehe ich mit VMs in der Cloud um, die ich nur zu bestimmten Zeiten benötige?

Ich verarbeite derzeit Videos auf einem lokalen Server, die ich in die Cloud auslagern möchte. Ich bin mit der Google Cloud gut vertraut, weshalb ich mich für Google entscheiden würde. Der Prozess würde aus Folgendem bestehen:

  • Hochladen von Videodateien in den Cloud-Speicher
  • Verarbeitung einer Datei in einer Compute Engine-Instanz
  • Speicherung verarbeiteter Videos im Cloud-Speicher

Im Durchschnitt würde ich die Compute Engine-Instanz eine Stunde pro Tag benötigen. Gibt es eine einfache Möglichkeit, die Instanz automatisch ein- und bei Bedarf herunterzufahren? Wie gehe ich dabei vor?

Antwort1

Es gibt einen einfacheren Weg, dies zu tun.

GCP bietet einen Dienst namensCloud-Funktionen. Darin können Sie Skripte einfügen, die von Ereignissen aufgerufen werden oderLöst aus. Einer von ihnen istCloud-Speicher-Triggerdie durch Cloud Storage-Ereignisse aktiviert werden, wie etwa Objekterstellung (Dateien hochladen) oder Objektlöschung (Dateien löschen).

Die Cloud-Funktion kann die Datei (in diesem Fall ein Video) lesen, den gesamten Prozess darin ausführen und ein Ergebnis zurückgeben oder, in Ihrem Fall, das Ergebnis in einem GCS-Bucket speichern (kann derselbe sein, in den die Datei hochgeladen wurde, könnte aber auch ein anderer sein).HierSie finden Codebeispiele zur Interaktion mit der gerade hochgeladenen Datei.

Um Ihr bearbeitetes Video zu speichern, sehen Sie sich bitte dieCloud Storage-Clientbibliotheken. Abhängig von der Sprache, die Sie verwenden (die unterstützten Sprachen für Cloud Storage und Cloud Functions sindNode.js,Python,Gehen,JavaUndC#) sollten Sie prüfen,die Codebeispieleum das Ergebnis in einen Bucket hochzuladen.

Die Verwendung von Cloud Functions ist eine viel günstigere Option gegenüber Compute Engine, da Sie diese Ressourcen nur dann verwenden, wenn sie benötigt werden. Der einzige Nachteil hierbei ist, dass Sie durch dieSpeicher und CPUdieser Dienst unterstützt.

Wenn die Ressourcen (von 128 MB bis 4096 MB im Speicher) nicht für den Prozess geeignet sind, den Sie ausführen möchten, können Sie auch die folgenden Schritte ausführen:

  1. Erstellen Sie eine Compute Engine-Instanz mit demMaschinentypfür Ihren Anwendungsfall erforderlich. Legen Sie ein Skript an, in dem der gesamte Prozess ausgeführt wird. Sobald es erstellt und alles eingerichtet ist,Hör auf.
  2. Erstellen Sie eine Cloud-Funktion mit GCS-Ereignisauslösern (mit den bereits bereitgestellten Dokumenten) und starten Sie Ihren GCE jedes Mal erneut über Code, wenn er aufgerufen wird. Dies kann mit demCompute Engine-Clientbibliothekenoder überdie API(Mir fällt eine HTTPS-Anfrage in Ihrer bevorzugten Sprache ein).
  3. Senden Sie alle Informationen an Ihren GCE und lassen Sie die Maschine arbeiten (möglicherweise müssen Sie Code hinzufügen, um in Cloud Functions auf eine Antwort vom GCE zu warten).
  4. Wenn es beendet ist, laden Sie die Datei in den Cloud-Speicher hoch und teilen Sie Cloud Functions mit, dass alles erledigt ist.
  5. Sobald Sie diese Bestätigung erhalten haben, weisen Sie Cloud Functions an, Ihre GCE erneut zu stoppen.

Denken Sie daran, dass Compute Engine Ihnen Gebühren berechnet fürdie Zeit, in der die VMs ausgeführt werdenDaher könnte Ihnen auch dieses alternative Szenario die gewünschte Lösung mit den erforderlichen Ressourcen zu einem angemessenen Preis bieten.

Planen einer GCE mit Cloud Schedulerist auch eine Option, aber Sie wissen nicht wirklich, wann die GCE verwendet wird, sodass die Verwendung von Cloud Functions weniger Produkte und weniger Aufwand von Ihrer Seite erfordert.

verwandte Informationen