BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【GCP】起動・停止スクリプトを使ってみた!

はじめに

こんにちは!
夏までに痩せたいBFT名古屋支店のあきやまです。
今回は、起動スクリプトを使って、GCPVM起動時に簡単なファイルを作成する手順を書いていこうと思います!

起動スクリプトとは

起動スクリプトとは、VMの起動時に実行されるコマンドを含むファイルです。
GCPのCompute Engineでは、LinuxVMとWindowsVMでの起動スクリプトの実行がサポートされています。
起動スクリプトVMに伝える方法はいくつかあるのですが、今回はCloud Storageを使用する方法で書いていきます。

起動スクリプトを作成し、Cloud Storageにアップロードする

①起動スクリプト作成
まずはじめに、起動スクリプトを作成します。
起動スクリプトのファイルは.shファイルを使用してください。

今回は、以下の内容の起動スクリプトを作成します。

#! /bin/bash
echo "20230410" > /tmp/20230410.txt  

[補足]
シェルスクリプトでは、はじめにスクリプトを解釈させるインタプリタのパスを指定します。
今回のインタプリタbashですが、他にもBourneやpythonがあります。
このスクリプトでは、echoコマンドを使用し「20230410」と書かれたファイル「20230410.txt」をtmp配下に作成します。

②起動スクリプトをCloud Storageにアップロード
次に、作成したファイルをCloud Storageのバケットにファイルをアップロードします。
ここで、アップロードしたファイルを選択し、認証済みURLとgsutilのどちらかをコピーします。

起動スクリプトVMに渡す

次に、作成した起動スクリプトVMに登録します。
GCPコンソールのVMインスタンスから、VMを編集してください。
メタデータ」で以下の値を設定します。
キー:startup-script-url
値:Cloud Storageでコピーした認証済みURLとgsutilのどちらか(起動スクリプトの配置場所)

VMを起動し起動スクリプトを確認

最後に、VMを起動し、起動スクリプトの内容が反映されていることを確認します。
今回は、/tmp配下に20230410.txtファイルが作成されていることが確認できれば成功です。

停止スクリプトの場合

停止スクリプトの場合も、基本の流れは同じです。
VM編集時の「メタデータ」で以下値を入力してください。
キー:shutdown-script-url

停止スクリプトは、VMが停止する直前にコマンドを実行します。
そのため、スクリプトの内容が反映されたことを確認する際には、再度VMを起動してください。
停止スクリプトは、VMが停止するまでの90秒の間に実行を完了する必要があり、この時間を過ぎるとスクリプトの完了を待たずにVMが停止してしまう可能性があります。(プリエンプティブインスタンスの場合は30秒)

まとめ

いかがだったでしょうか?
起動・停止スクリプトを実装する際にはぜひ参考にしてみてください!

参考

cloud.google.com