n8nを使うために環境整備

最近プライベートでn8nを使う相談をうけました。自動化したいという相談をうけて、調べたらn8nが候補にあがったというのになります
n8nって何?
n8nはノーコードで400以上のアプリと連携できるツールとなります
- クラウド版
- セルフホスト版
と用意されています。セルフホスト版はDocker環境で構築するのを推奨されています。クラウド版は月額費用かかりますが、セルフホスト版は月額費用などかかりません
クラウド版とセルフホスト版どっちが良いの?
どっちが良いかは何を優先させるかによって変わってきます。料金面を抑えたいとかあればセルフホスト版がよいと思います。
逆にメンテナンスなどをしたくないとあれば、クラウド版を使うことをお勧めします。
クラウド版のメリットは月額料金を払えばアップデートやメンテナンスを自分でする必要がないというのがあります。楽をしたい場合はクラウド版を契約がお勧めです
セルフホスト版を使う
僕は今回相談を受けた案件の特性上、クラウド版ではなくセルフホスト版を選択しました。セルフホスト版だとローカルの開発サーバーで使えるメリットもあります。
※月額払う余裕がなかったというのもあります
セルフホスト版はDockerが推奨ということなので、Dockerファイルを作成しました。
services:
# --- PostgreSQL (n8n内部データ保存用) ---
n8n-db:
image: postgres:16
restart: always
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=n8n_db
volumes:
- db_storage:/var/lib/postgresql/data
# --- n8n 本体 ---
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=n8n-db
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n_db
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_SECURE_COOKIE=false
volumes:
- n8n_storage:/home/node/.n8n
depends_on:
- n8n-db
volumes:
db_storage:
n8n_storage:
最小構成ではこのようにすれば動きます。
でアクセスすることができます
注意点
N8N_SECURE_COOKIE=false を指定することでhttp://でのアクセスを可能にしてます。
n8nはデフォルトではhttps接続になるため、開発マシンや個人の環境でインストールするときはhttp接続できるようにするには上記の設定をいれます
推奨スペック
n8nを安定稼働させるには以下のスペックがあるとよいです
- vCPU:2コア以上
- メモリ:4GB以上
- ストレージ:20GB以上
テストと本番で変わってきますが、基本的に上記のスペックを意識してマシンを用意するとよいです
VPSと自前で用意どっちがよい?
- AWS:t3.medium/5600円
- GCP:e2.medium/5120円
- conoha:1259円
- さくらのVPS:1738円
クラウドサーバーを使うとちょっと高いですが、VPSだと2000円あれば良いみたいです
※クラウドの料金算出はクイックコストクラウドを利用
円安の打撃を考えると、国産クラウドを使うのも一つの手かもしれません。
自前の開発サーバースペック
僕がオンプレで用意している開発サーバーはスペックとしては
- vCPU:4コア
- メモリ:8GB
- ストレージ:50GB
としてます。オンプレなどで環境の用意が出来る場合はちょっと高いスペックにしてもよいかもしれません。
この記事に関する技術サポート・ご相談
「手順通りにいかない」「自社環境への構築を代行してほしい」など、
インフラ・サーバー周りでハマった際はお気軽にご相談ください。
※ Googleフォームへ移動します(初回相談無料)
個人支援・寄付について
サイトラボでは個人支援・寄付を受けております。ご協力いただける方はお願いいたします。当サイトではビットコインで受け付けております。
- ビットコイン:3LHnADwZwUbic2L45EnVJEykiG6KfbqrwS