特定の時間にのみ必要なクラウド内の VM をどのように処理すればよいですか?

特定の時間にのみ必要なクラウド内の VM をどのように処理すればよいですか?

現在、ローカル サーバーでビデオの処理を行っていますが、これをクラウドにアウトソースしたいと考えています。Google Cloud には非常に詳しいので、Google を選びます。プロセスは次のようになります。

  • クラウドストレージへのビデオファイルのアップロード
  • Compute Engine インスタンスでのファイルの処理
  • 処理済みのビデオをクラウドストレージに保存する

平均すると、Compute Engine インスタンスは 1 日 1 時間必要になります。インスタンスの電源を自動的にオンにしたり、必要に応じてシャットダウンしたりする簡単な方法はありますか? それを実行するにはどうすればよいでしょうか?

答え1

これを行うにはもっと簡単な方法があります。

GCPは、クラウド機能. その中に、イベントによって呼び出されるスクリプトやトリガーそのうちの一つはクラウドストレージトリガーオブジェクトの作成(ファイルのアップロード)やオブジェクトの削除(ファイルの削除)などの Cloud Storage イベントによってアクティブ化されます。

Cloud Functions は、ファイル (この場合はビデオ) を読み取り、その中のすべてのプロセスを実行して結果を返すか、または、あなたのケースでは、結果を GCS バケット (ファイルがアップロードされた場所と同じでも、別の場所でもかまいません) に保存します。ここアップロードしたファイルとやり取りするためのコードサンプルが見つかります。

処理した動画を保存するには、クラウド ストレージ クライアント ライブラリ使用する言語によって異なります(Cloud StorageとCloud Functionsでサポートされている言語は次のとおりです)。Node.jsパイソン行くジャワそしてC#)を確認する必要がありますコードサンプル結果をバケットにアップロードします。

Cloud Functionsを使用すると、必要なときにのみリソースを使用するため、Compute Engineに比べてはるかに安価なオプションになります。唯一の欠点は、メモリとCPUこのサービスはサポートしています。

リソース (メモリ 128 MB から 4096 MB) が実行するプロセスに適していない場合は、次の手順に従うこともできます。

  1. Compute Engineインスタンスを作成するには、マシンタイプユースケースに必要なすべてのプロセスを実行するスクリプトを配置します。作成してすべてがセットアップされたら、やめて
  2. GCSイベントトリガー(すでに提供されているドキュメントを使用)を使用してCloud Functionを作成し、それが呼び出されるたびにコードを介してGCEを再起動します。これは、Compute Engine クライアント ライブラリまたはAPIについて(あなたの好きな言語で HTTPS リクエストを思いつきます)。
  3. すべての情報を GCE に送信し、マシンを動作させます (Cloud Functions で GCE からの応答を待機するためのコードを追加する必要がある場合があります)。
  4. 終了したら、ファイルを Cloud Storage にアップロードし、すべてが完了したことを Cloud Functions に通知します。
  5. この確認を受け取ったら、Cloud Functions に GCE を再度停止するように指示します。

Compute Engineは、VMが稼働している時間したがって、この代替シナリオを実行すると、必要なリソースを備えた適切な価格で必要なソリューションが提供される可能性もあります。

Cloud Scheduler を使用した GCE のスケジュール設定も選択肢の 1 つですが、GCE がいつ使用されるかは実際にはわかりません。そのため、Cloud Functions を使用すると、必要な製品が少なくなり、ユーザー側の労力も少なくなります。

関連情報