Vertex AI Workbenchでバージョン管理・チーム開発
クラウドホスティングなJupyterLab環境について
最近はようやく涼しくなってきて、まさに分析日和、屋外でも分析したくなりますよね。
しかし屋外ではやはり手元のPCでローカルでの分析を行おうとすると重たい処理でも回ろうものならアツアツ🔥になって結局体感の季節は逆戻り、分析日和ではなくなってしまいます… 😭
でも大丈夫、リモート環境で稼働しているJupyterLab環境を活用すれば、 手元のPCでは重たい処理は回らない のでアツアツにならないし、 非力なマシンでもサクサク分析を進められます。
今回はそんなリモートのJupyterLab環境の中からBigQuery等のGoogle Cloudのリソースとシームレスに連携出来るVertex AI Workbenchでバージョン管理やチームでの分析・開発を行うために必要なGitHubとの連携方法についてまとめていきます。
JupyterLab環境とは?
そもそもJupyterLab環境とは何なのか…について、詳細は Project Jupyterの公式ページを見ていただくとして、10文字以内で表現せよという問題であれば、端的に言うと 「分析のためのIDE(統合開発環境)」 です。
いつの間にか(結構前から?)VSCodeのようなGUIベースでのGit管理機能までついていたんですね。
Push, Pull等も行えて、GitHubとのSSH接続でも連携出来ます。今回この記事ではSSH接続での設定を行う方法についてまとめます。
Vertex AI Workbenchとは?
そんなJupyterLab環境ですが、Google Cloud内でホスティングされている環境としては2種類あります。
Colabは無料版のイメージが強いですが、上記リンクの通りProもあります。
これらのサービスを使う理由として特筆しているのは、 BigQueryとの連携が非常にスムーズであることではないでしょうか。
例えば、
%%bigquery df SELECT * FROM `foo.bar.baz`
のように %%bigquery
のマジックコマンドを使うことによって、pandasのデータフレームとしてBigQueryで走らせたクエリの結果を変数に格納できます。
(Colabの場合はプロジェクト名の指定も必要)
これが非常に便利で、BigQueryでデータ基盤を構築している場合には欠かせないものとなるかと思います。
Vertex AI Workbenchを使うべきか、Colabを使うべきか…は難しい問題ですが、個人的にはGoogle Cloudプロジェクトの中のワークロードとして組み込まれるべきものはやはりVertex AI Workbenchで構成されるべきだと考えています。
ColabがGoogle Cloudプロジェクトの外に立ち上がるものであるのに対して、Vertex AI Workbenchはプロジェクトの中に立ち上がるものであることも大きいかもしれませんね。
一方で、個人的に分析をクイックスタートする、という観点だとColabのほうが良いかもしれません。アカウントベースで課金になるというのもあります。(あと、個人的にはColab Proのコード生成についてはかなり興味があります)
今回はVertex AI Workbenchの中でも最近Pre-GAとなった、Workbench インタスタンスによる管理のパターンでのGitHub連携の設定方法について説明します。
特に、多くの方はGitHubに2段階認証等を設定していると思います。その場合はSSHでの連携が必要になりますので、そのパターンでの方法について解説します。
Vertex AI WorkbenchでのGitHub SSH連携
というわけで、早速はじめていきます。
まず、Vertex AI Workbenchの画面から、インスタンスを立ち上げます。
Vertex AI Workbenchの画面を開いて…
インスタンスをつくります。
ちょっと待つと「JUPYTERLABを開く」ボタンが有効になるので、開いてTerminalを選択します
その後、 ssh-keygen
します。
ssh-keygen -t ed25519 cat .ssh/id_ed25519.pub
などで公開鍵を取り出して、GitHubに登録します。登録方法については、 GitHub公式ドキュメント「GitHubアカウントへの新しいSSHキーの追加」の通りです。
完了したら、Vertex AI Workbench側でssh -T git@github.com
を実行し、接続確認します。
そして、ホームディレクトリ等で、お目当てのリポジトリをcloneします
cloneしてきたフォルダを開いてから、サイドメニューのGitアイコンをクリックすると…
バッチリ連携がとれるようになっています。
VSCodeなどと同様に、pull, pushやadd, commit等全ての操作を行えてとても便利です。
まとめ
以上、Vertex AI WorkbenchとGitHubのSSH接続での連携方法でした。
notebook作成等の分析業務でも可能な限りGitHub等を用いたPull-Request(Merge-Request)でしっかりレビューを取り入れた管理を行いたいものです。
私自身JupyterLabを使ってあれこれするのは久しくやっていなかったのですが、最近触ってみると基本的なところは変化がない中で着実に進化もしていてやはり便利ですね。
分析をJupyterLabを使ってチームで行う際には必ず設定しておきたい内容かと思いますのでぜひお試し下さい。