🧠 概要:
概要
この記事では、n8nをGoogle CloudのCloud Runにデプロイし、Supabaseと連携させる方法を解説しています。また、自動デプロイ機能を持つCICDパイプラインの構築方法についても説明しています。ローカル環境での実験が不安な方は、前回の記事を参照してローカルでの環境構築から始めることを推奨しています。
要約
-
目的:
- n8nをGoogle Cloudで動かし、Supabaseと連携
- 自動デプロイ機能を持つCICDパイプラインの構築
-
クラウド構築のメリット:
- 実行回数やワークフロー上限を気にせず利用
- 環境の細かい調整が可能
- データストアやデータ連携方法を選択可能
-
必要な環境とサービス:
- ローカル環境: Windows 11 + WSL2 (Ubuntu 22.04), Cursor, Git
- 外部サービス: Google Cloud (Cloud Run, Secret Manager, Artifact Registry, Cloud Build), GitHub, Supabase
-
事前準備:
- Google Cloud、Supabase、GitHubのアカウント作成
- Google Cloud利用の際はコストが発生する可能性があるため注意
- セキュリティ設定については別途検討が必要
- ステップ概要:
- Supabaseプロジェクトのセットアップ
- GitHubリポジトリのセットアップ
- Google Cloudプロジェクトの準備
- Google Cloudサービスのセットアップ
- APIの有効化、サービスアカウントの作成
- Artifact Registry、Cloud Buildのトリガー設定
- Secret Managerの設定 (詳細は省略)
この記事では、各ステップを分かりやすく解説し、初めてのユーザーも理解しやすい内容となっています。
前回の記事ではローカル環境にn8nをセルフホストして、Suapabaseと連携する方法についてご紹介しました。せっかくなので今度はn8nをGoogle CloudのCloudRunにデプロイしてさらにSupabaseと連携させる方法についてご紹介します!ついでにGitHubにPushするだけで、自動的にn8nをデプロイできるCICDも一緒に作ってしまいます。n8n & Supabase & GitHub & Serverless & CICDと盛りだくさんの内容となっていますが、ステップバイステップで進めていきましょう!
「ちょっとそこまでは…とりあえずローカル環境で試せれば…」という方は前回のセルフホストのn8nとSupabaseを連携させてみよう!でローカル環境でn8n & Supabaseの連携をお試しくださいませ。
なぜ、n8nをクラウドに構築するのか?
n8nには手軽なクラウド版も提供されていますが、あえて自身でクラウド環境を構築することで得られる、いくつかのメリットがあります。
-
クラウド版の料金プランに設定されている実行回数やワークフロー数の上限を気にせずに利用できる
-
n8nが動作する環境そのものを、要件に合わせて細かく調整できる
-
n8nが使用するデータストアを選んだり、ワークフローで扱うデータの連携方法をより自由に決められる
もちろん好みや環境によってメリットデメリットはありますが、手段の一つとして今回はn8nをGoogle Cloudで構築する方法をご紹介できればと思います。
実行環境と事前準備と注意事項
今回は以下の環境及びサービスを利用しています。
ローカル環境(開発環境)
-
Windows 11 + WSL2 (Ubuntu 22.04)
-
Cursor
-
Git
外部サービス
-
Google Cloud
-
Cloud Run
-
Secret Manager
-
Artifact Registry
-
Cloud Build
-
-
GitHub
-
Supabase
事前準備(アカウント作成)
-
Google Cloudのアカウント
-
Supabaseのアカウント
-
GitHubのアカウント
⚠️注意事項⚠️
-
Google Cloudの利用には費用が発生する場合があります。試してみるだけである場合は検証後は作成したインスタンスは削除しましょう。
-
本記事ではセキュリティの設定については言及しておりません。懸念される方はIPアドレスの絞り込み等の追加対応をご検討ください。
ステップ1 : Supabaseプロジェクトのセットアップ
アカウント・プロジェクトの作成&接続情報の取得&SSLのダウンロード
前回の記事のStep1と同様の手順となりますので、これから初めてSupabaseのプロジェクトを作成される方はこちらをご参照ください。作成済みのn8nのワークフローのデータがあるSupabaseを使われる方は、そのままデータを利用可能です。接続情報やSSL証明書をお手元にご準備ください。
ステップ2 : GitHubリポジトリのセットアップ
続いてGitHubのリポジトリを準備します。このリポジトリが更新されると自動的にCloud Runにn8nがデプロイできるようにするための前準備です。
GitHubアカウントの作成
GitHubアカウントが未作成の方は以下の公式の手順に従い、アカウントを作成してください。
n8n用のリポジトリを作成
アカウントを作成したらhttps://github.com/にアクセスし、ログインしてください。HOME画面(Dashboard)画面から「New」ボタンを選択してください。
「Create a new repository」の画面が表示されたら「Repository name」に任意のリポジトリ名を設定してください(ここでは `n8n_test` としています)
⚠️リポジトリの公開設定はPrivateにしましょう。Publicだとリポジトリのデータが全世界に公開されてしまいます!!!。
設定を終えたら「Create repository」をクリックするとリポジトリの作成が完了します。
必ずPrivateにすること
リポジトリのURLを取得
正常にリポジトリが作成されれば、その作成したリポジトリのページが表示されるので、URLをコピーしておきましょう。このURLは後ほど `git clone` でローカルにコピーする際に使用します。
HTTPSのURLを取得する
ここまででGitHubの準備は完了です。
ステップ3:GoogleCloudプロジェクト準備
続いてGoogleCloudのセットアップを行っていきます。
使用するプロジェクトが既に作成済みの場合はこの手順はスキップしてください。
Googleアカウントの作成
Googleアカウント作成がまだの方は以下よりGoogleのアカウントを作成してください。
既に作成しているアカウントを使用する場合はこの手順はスキップしてください。
GoogleCloudのプロジェクトの作成
ではGoogleCloudでプロジェクトを作成します。以下のURLにアクセスしてGoogleアカウントでログインします。
ログインをしたら「コンソール」を選択します。
コンソール画面が表示されたら「プロジェクト選択ツール」をクリックします。
「プロジェクト選択」画面が表示されるので「新しいプロジェクト」を選択します。
「新しいプロジェクト」画面で任意のプロジェクト名を入力して「作成」ボタンをクリックします。
これでプロジェクトの準備が完了したので以降はGoogleCloudのサービスのセットアップに進みます。
ステップ4:GoogleCloudサービスセットアップ
続いてGoogleCloudサービスセットアップを進めていきます。サービスアカウントの作成やAPI(=サービス)の有効化では料金はかかりません。
しかし、利用を開始(SecretManagerへのパラメータの設定など)すると少額ではありますが料金が発生しますのでご注意ください。
各サービスの有効化
まずは各サービス(API)の有効化をします。
有効化するサービスは以下です。
-
Cloud Run Admin API
-
Secret Manager API
-
Cloud Build API
-
Artifact Registry API
では有効化していきましょう!GoogleCloudのコンソール画面上部の検索バーに上記のサービス名を入力して検索をしてください。
検索バーにサービス名を入力し、検索を実行
検索結果に入力したサービス名が表示されたら、サービス名を選択し、サービスの有効化画面を表示してください。
☟のような画面が表示されたら「有効にする」を選択して有効化してください。この作業を各サービスごとに実施してください。
サービスアカウントの作成
Cloud Runをデプロイするためにサービスアカウント作成し、必要なロールを設定します。
設定するロールは以下です。
-
Artifact Registry 書き込み
-
Cloud Run 管理者
-
Secret Manager のシークレット アクセサー
-
サービス アカウント ユーザー
-
サービス アカウント トークン 作成者
-
ストレージ管理者
-
ログ書き込み
ではサービスアカウントを作成していきましょう!
コンソールのナビゲーションメニューから「IAMと管理」>「サービスアカウント」を選択します。
サービスアカウントの管理画面が表示されたら「サービスアカウントを作成」を選択してください。
サービスアカウントの作成画面にて、「サービスアカウント名」に任意の名前を入力し、「作成して続行」を選択してください。
必要なアカウントが全て設定されている状態
続いて、ロールを設定します。前述のロールを一つずつ設定してください。設定が完了したら「完了」を選択してサービスアカウントの作成を完了します。
必要なアカウントが全て設定されている状態
作成が完了すればサービスアカウントの管理画面のサービスアカウントの一覧に表示されます。
サービスアカウントとして作成したアカウントのメールアドレスは後ほどの手順で使用するため、メモしておきましょう。
作成したサービスアカウントが追加されているのでメールアドレスをコピーしておく
Artifact Registryの準備
今回はGitHubに配置したDockerfileに基づいてビルドされたn8nのDockerコンテナイメージをCloud Buildで作成し、そのイメージをArtifact Registryに保存します。 このArtifact Registryに保存されたイメージをCloud Runにデプロイします。それでは、Artifact Registryにイメージをホストする準備していきましょう!
GoogleCloudのコンソール画面上部の検索バーに「Artifact Registry」を入力して、検索結果に表示された「Artifact Registry」を選択してください。
Artifact Registryの管理画面が表示されたら「リポジトリの作成」を選択してください。
リポジトリには以下の設定をします。その他の変更は不要です。
なお、開発・検証用ということもあり、費用を抑えるため脆弱性スキャンは無効にしています。気になる方は有効にしてください。
-
名前:任意のリポジトリ名
-
形式:Dokcer
-
ロケーションタイプ:リージョンを選択し、任意のリージョン(ここでは”asia-northeast1(東京)”を選択)
-
Artifact Analysis:無効(気になる方は”有効”)
気になる方は脆弱性スキャンを有効に
設定が完了したら、作成を選択してリポジトリ作成は終了です。
ここで作成したリポジトリ名は後ほど使用するため、メモしておきましょう。
Cloud Buildのトリガーの準備
続いてGitHubのソースコードがpushされた自動的にデプロイされるようにトリガーの準備をします。
GoogleCloudのコンソール画面上部の検索バーに「Cloud Build」を入力して、検索結果に表示された「Cloud Build」を選択してください。
Cloud Buildの管理画面が表示されたら「トリガー」から「トリガーを作成」を選択してください。
トリガーには以下の設定をします。GitHubリポジトリとの連携が少し手間があるのでこちらも説明します。
サービスアカウントを二か所設定していますが片方はCloud Buildで、もう片方はCloud Runでそれぞれ使用します。
-
名前:任意のトリガー名
-
リージョン:global(リージョン指定だとトリガーが上手く動かず)
-
リポジトリ:「ステップ2 : GitHubリポジトリのセットアップ」で作成したリポジトリ
-
ブランチ:^main$(自動で入力される)
-
形式:Cloud Build 構成ファイル
-
Cloud Build 構成ファイル:cloudbuild.yaml(自動で入力される)
-
代入変数 <変数>:_CLOUD_RUN_SA_EMAIL
-
代入変数 <値> :「サービスアカウントの作成」で作成したアカウントのメールアドレス
-
サービスアカウント:「サービスアカウントの作成」で作成したアカウントを選択
GitHubのリポジトリとの連携を進めていきます。トリガーの設定画面にて「リポジトリ」の入力スペースを選択し、「新しいリポジトリに接続」を選択してください。
画面右側に「リポジトリを接続」が表示されるので「GitHub」を選択して、「続行」をしてください。
次に、リポジトリの選択に進みます。「GitHub アカウント」から「追加」を選択するとGitHubへの認証画面が表示されるので、「Use your password」からパスワードを入力して認証を行います。(GitHub Mobileを使っている方はそちらからでもOKです)
GitHubの画面が表示されGoogle Cloud Buildとの連携画面が表示されます。
「Only select repositories」を選択し、「Select repositories」から「ステップ2 : GitHubリポジトリのセットアップ」で作成したリポジトリを選択しましょう。
選択したら「Save」で終了します。
トリガー設定の画面に戻るとGitHubアカウントが自動的に設定されます。リポジトリのプルダウンからリポジトリを選択し、チェックボックスのチェックを入れて「接続」を選択してください。
トリガーの設定例は以下の通りです。
以上でトリガーの設定は終了です。操作が多くて大変だと思いますがGoogle Cloud側のセットアップは次が最後です。頑張っていきましょう!
SecretManagerの準備
Google Cloud側のセットアップの最後はSecretManagerの設定です。
Secretとして設定するのは以下のパラメータです。
この記事が気に入ったらチップで応援してみませんか?
Views: 0