n8n を Docker Compose で構築し、ワークフローで AWS Bedrock を利用する
はじめに
プログデンスの圓佛です。 n8n (エヌ・エイト・エヌ) はワークフローを使って作業を自動化することが出来るソフトウェアです。 「n8n」という名前は「nodemation = n + odematio (8 文字) + n」の略称だそうです。
Docker Installation で説明されていますが、n8n は Docker を使って手軽に始めることができます。 今回は以下の方針で n8n を構築する手順を説明します。
- 環境構築方針
- Ubuntu 24.04 LTS 上にセルフホスト版を構築する
- n8n は Docker コンテナで起動する
- n8n は無料ライセンスで利用する
- n8n 上のワークフローから AWS Bedrock などが利用できるよう、AWS アカウントの設定を行う
n8n の利用プラン
n8n は「クラウド版」と「セルフホスト版」があります。 Choose your n8n には以下のように記載されています。
Platforms
There are different ways to set up n8n depending on how you intend to use it:
- n8n Cloud: hosted solution, no need to install anything.
- Self-host: recommended method for production or customized use cases.
- npm
- Docker
- Server setup guides for popular platforms
- Embed: n8n Embed allows you to white label n8n and build it into your own product. Contact n8n on the Embed website for pricing and support.
クラウド版・セルフホスト版いずれも無料版が用意されており、Free versions には以下と書かれています。
Free versions
n8n offers the following free options:
- A free trial of Cloud
- A free self-hosted community edition for self-hosted users
今回は利用しませんが n8n Cloud 版の料金は Run workflow automations without running out of budget で説明されています。
Ubuntu へ Docker をインストールする
Ubuntu へ Docker をインストールする手順は Install Docker Engine on Ubuntu に書かれています。 本番環境での利用は非推奨ですが、Install using the convenience script では Docker をインストール出来るワンライナーも説明されています。 具体的には以下を実行します。
curl -fsSL https://get.docker.com | sh
n8n コンテナ用の作業ディレクトリを作成する
n8n を Docker Compose で起動するので、設定ファイルなどを配置する作業用ディレクトリを作成します。 n8n コンテナを再起動してもデータが残るよう、永続化しますのでデータ保存用ディレクトリも作成します (今回は ~/n8n/n8n_data
)。
mkdir ~/n8n/
cd ~/n8n/
mkdir n8n_data
chmod 777 n8n_data
n8n を Docker Compose で開始する
まず n8n を Docker Compose で起動する為の設定ファイルを用意します。 Set a custom encryption key に記載されていますが、n8n は内部で暗号化キーを自動生成して利用します。 この暗号化キーを固定したい場合は N8N_ENCRYPTION_KEY
という環境変数で指定することができます。 今回は暗号化キーを固定すべく、openssl rand -base64 32
を実行してランダムな値を生成します。
# openssl rand -base64 32
4Y371Eo7EaA+qkc88zMdc1+dOJSJwXzACBSm3vyPXnQ=
上記を踏まえた上で Docker Compose 用の設定ファイルを作成します。 以下の内容で docker-compose.yml
を新規作成しました。
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- GENERIC_TIMEZONE=Asia/Tokyo
- N8N_COMMUNITY_NODES_ENABLED=true
- N8N_ENCRYPTION_KEY=4Y371Eo7EaA+qkc88zMdc1+dOJSJwXzACBSm3vyPXnQ=
- N8N_HOST=10.0.0.1
- N8N_SECURE_COOKIE=false
volumes:
- ./n8n_data:/home/node/.n8n
volumes:
n8n_data:
設定ファイルでは以下などを設定しています。
環境変数 | デフォルト値 | 設定例 | 説明 |
---|---|---|---|
N8N_HOST |
localhost |
10.0.0.1 |
n8n 上で生成するリンクの URL に利用される。 デフォルトは localhost である為、そのままリンクが利用できないため、変更した方が便利 |
N8N_SECURE_COOKIE |
true |
false |
デフォルトでは n8n へのアクセスが HTTPS しか許可されない。 false を設定することで HTTP アクセスできる |
設定ファイルが用意できたら Docker Compose で n8n を開始します。
docker compose up -d
n8n の初期設定
Web ブラウザで http://ADDRESS:5678/
へアクセスします。 n8n が正常に起動していると、初回アクセス時は以下の画面が表示され、管理用ユーザの作成を促されます。 必要情報を入力したら「Next」をクリックします。
「Customize n8n to you」と表示されます。 値を入力しても良いですが、何も入力せずに「Get started」をクリックしても進めることが出来ます。
「Get paid features for free (forever)」と表示されます。 「Send me a free license key」をクリックすると管理者ユーザのメールアドレスへライセンスキーが送信されます。
「Your license key is on the way!」と表示されました。
しばらくすると登録メールアドレスへ「Your free n8n license key to unlock selected paid features」という件名の電子メールが届きます。 電子メール中の「Activate License Key」をクリックします。
すると自動的に n8n のライセンス設定画面へ移動し、発行されたライセンスが登録されます。 下記は「You're on the Community Edition」の右横に「Registered」と表示され、ライセンスが登録済みであることが分かります。
AWS の認証情報を登録する
n8n から AWS Bedrock などのサービスを利用したい場合は AWS で発行したアクセスキーやシークレットキーを設定する必要があります。 AWS Bedrock を利用する場合は事前に AWS Bedrock で基盤モデルを有効化する の手順に従って、対象リージョンで基盤モデルを有効化しておく必要があります。
n8n へ AWS アカウントを登録するには「Create Workflow」の下側に表示される「Create Credential」をクリックします。
「Add new credential」と表示されます。 ドロップダウンリストにサービス名が表示されるので、ここから「AWS」を選択して先に進みます。
AWS アカウントの情報を入力するように促されます。 リージョン・アクセスキー・シークレットキーを入力したら「Save」をクリックします。
これで AWS アカウントの設定は完了です。 あとは自動化したいタスクを n8n でワークフロー化します!