Vertex AI のノートブックには、Google 管理型とユーザー管理型の 2 種類があります。
Google 管理型ノートブックは一定時間操作がないと自動でシャットダウンされるため、コスト削減や想定外の請求の防止に役立ちます。一方、ユーザー管理型ノートブックには自動シャットダウンの標準機能がこれまで用意されていませんでした。
しかし Jose Brache 氏のおかげで、わずか数ステップで同等の機能をユーザー管理型ノートブックにも組み込めるようになりました。
なお、Google 管理型ノートブックと Jose 氏のソリューションでは挙動が異なる点にご注意ください。Google 管理型は一定時間操作がないとシャットダウンしますが、Jose 氏のソリューションは操作の有無にかかわらず、指定した時間が経過した時点でシャットダウンします。この違いを踏まえてご活用ください。

セットアップ
本実装は Cloud Scheduler と Cloud Function で構成されています。
Cloud Scheduler が 5 分ごとに Cloud Function を呼び出し、シャットダウン時刻に達したノートブックがないかを確認します。
デフォルトでは、Cloud Function は us-central1 リージョンの Vertex AI Notebooks のみを対象に確認します。他のリージョンも対象にしたい場合は、リージョン一覧に追加してください。
セットアップ手順は GitHub リポジトリに掲載されています。Terraform を使えば、短時間できれいに構築できます。
必要な権限/ロール
Cloud Function のサービスアカウントには、ノートブックを停止し、プロジェクトを一覧取得するために、以下の権限が必要です。
- 組織内のすべてのプロジェクトを走査するために、組織レベルで
roles/browserを付与します。Cloud Function をデプロイしたプロジェクト内のみで実行する場合は不要です。 - プロジェクト内のノートブックを一覧表示・停止するために
roles/notebooks.serviceAgentを付与します。複数プロジェクトをまたいでシャットダウンしたい場合は、これを…