1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSのEC2環境でのDifyアップグレード手順

Last updated at Posted at 2024-11-06

はじめに

Difyって、頻繁にアップデートが行われますね!都度魅力的な機能が加わりますので、毎回ワクワクしちゃいます。ここでは、Amazon Linux 2環境にインストールされたDifyをアップグレードする手順を示します。このガイドは、以下の記事でご紹介したインストール手順に従ってDifyを導入された方向けです。(他の環境に入れられた方も参考になると思います)

事前準備

アップグレードを始める前に、以下の点を確認してください

  1. 現在のデータのバックアップを取得していること
  2. 十分なディスク容量があること
  3. メンテナンス時間を確保していること
  4. ローカルでの変更内容を把握していること(特にdocker-compose.yamlの修正)

アップグレード手順(Docker Compose環境)

1. ローカルの変更確認

まず、現在の環境での変更状況を確認します。

$ cd ~/dify
$ git status

どのファイルを変更しているのかを確認しておきましょう。

2. バックアップの作成

現在の設定とデータのバックアップを取得します。

$ cd ~/dify/docker
$ cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
$ cp .env .env.$(date +%s).bak
$ tar -cvf volumes-$(date +%s).tgz volumes

3. ローカルの変更の退避

変更されているファイルを一時的に退避させます。

$ cd ~/dify
$ git stash
Saved working directory and index state WIP on (no branch): 4b0d2bf57 chore: update build-push.yml to remove unnecessary tags

4. 最新のコードを取得

$ git checkout main
Previous HEAD position was 4b0d2bf57 chore: update build-push.yml to remove unnecessary tags
Switched to branch 'main'
Your branch is behind 'origin/main' by 264 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
  
$ git pull origin main
(多々出力あります。略です)

5. サービスの停止

$ cd docker
$ docker-compose down
Stopping docker-nginx-1      ... done
Stopping docker-worker-1     ... done
Stopping docker-api-1        ... done
Stopping docker-db-1         ... done
Stopping docker-ssrf_proxy-1 ... done
Stopping docker-web-1        ... done
Stopping docker-weaviate-1   ... done
Stopping docker-sandbox-1    ... done
Stopping docker-redis-1      ... done
Removing docker-nginx-1      ... done
Removing docker-worker-1     ... done
Removing docker-api-1        ... done
Removing docker-db-1         ... done
Removing docker-ssrf_proxy-1 ... done
Removing docker-web-1        ... done
Removing docker-weaviate-1   ... done
Removing docker-sandbox-1    ... done
Removing docker-redis-1      ... done
Removing network docker_default
Removing network docker_ssrf_proxy_network
Removing network docker_milvus
WARNING: Network docker_milvus not found.
Removing network docker_opensearch-net
WARNING: Network docker_opensearch-net not found.

※ 「Network docker_milvus not found」や「Network docker_opensearch-net not found」といったワーニングが表示される場合がありますが、これらは問題ありません。これらは未使用のネットワークに関する通知です。

6. 設定ファイルの更新

ローカルの設定を新しい環境に反映します。

# バックアップした設定と新しい設定を比較
$ diff docker-compose.yaml.*.bak docker-compose.yaml
$ diff .env.*.bak .env.example

# 必要な変更を新しいファイルに適用
$ vi docker-compose.yaml
$ vi .env

7. サービスの再起動

$ docker-compose up -d
Creating network "docker_default" with the default driver
Creating network "docker_ssrf_proxy_network" with driver "bridge"
Creating network "docker_milvus" with driver "bridge"
Creating network "docker_opensearch-net" with driver "bridge"
Creating volume "docker_dify_es01_data" with default driver
Pulling web (langgenius/dify-web:0.11.0)...
0.11.0: Pulling from langgenius/dify-web
4abcf2066143: Already exists
9f16480e2ff5: Already exists
092226d52cac: Already exists
0493dfb2ff9c: Already exists
32cdc670699a: Pull complete
8b3c0aa85eca: Pull complete
af3000ec4d41: Pull complete
5d6f0ea61668: Pull complete
b169f7bdc92a: Pull complete
035dcc618757: Pull complete
0b201a402996: Pull complete
1ab40d49a6cb: Pull complete
b8b6ee54ae2c: Pull complete
Digest: sha256:de03800b1960117011f8d510fcd02570dc68f7ab4bcdc3278d5fd756be87c1a6
Status: Downloaded newer image for langgenius/dify-web:0.11.0
Pulling worker (langgenius/dify-api:0.11.0)...
0.11.0: Pulling from langgenius/dify-api
a480a496ba95: Pull complete
9555349e8380: Pull complete
1c161e44b06b: Pull complete
417516d8bb61: Pull complete
d197aa066fee: Pull complete
2e3a189d6ded: Pull complete
4f4fb700ef54: Pull complete
a85ccdde7f53: Pull complete
33fbb0aac3f9: Pull complete
16a8041c47d4: Pull complete
fd8313391acd: Pull complete
94bc503e60f9: Pull complete
Digest: sha256:1b82b9376c1e6175a97bb92178f609b6965fbd93e7be230559570c20fa061d40
Status: Downloaded newer image for langgenius/dify-api:0.11.0
Pulling sandbox (langgenius/dify-sandbox:0.2.10)...
0.2.10: Pulling from langgenius/dify-sandbox
302e3ee49805: Pull complete
eeec0daa4c1f: Pull complete
9374269b22c3: Pull complete
e9e6580aad05: Pull complete
81825055f7ad: Pull complete
41316c558183: Pull complete
808156f66bdf: Pull complete
31fca5fdfe1e: Pull complete
7f6a9ac15091: Pull complete
03982c40e7d4: Pull complete
Digest: sha256:6c69b6e379255d5865dd9ac25b588942dc4a7a5e8f57afcf736080414459e8dd
Status: Downloaded newer image for langgenius/dify-sandbox:0.2.10
Creating docker_db_1         ... done
Creating docker_ssrf_proxy_1 ... done
Creating docker_redis_1      ... done
Creating docker_web_1        ... done
Creating docker_sandbox_1    ... done
Creating docker_weaviate_1   ... done
Creating docker_worker_1     ... done
Creating docker_api_1        ... done
Creating docker_nginx_1      ... done

8. アップグレードの確認

ブラウザでDifyの管理画面にアクセスし、正常に動作することを確認します。

http://[your-domain-name]

image.png

おぉ!ちゃんとアップグレードできましたね!めでたしめでたしです。ワークフロー類も残っていました。良かった!

トラブルシューティング

アップグレード後に問題が発生した場合は、以下の手順で対処できると思います。未検証ですが、参考までにメモを残します。

ログの確認

$ docker-compose logs -f

バックアップからの復元

# サービスを停止
$ docker-compose down

# バックアップしたファイルを復元
$ cp docker-compose.yaml.*.bak docker-compose.yaml
$ cp .env.*.bak .env

# バックアップしたvolumesを復元
$ rm -rf volumes
$ tar xvf volumes-*.tgz

# サービスを再起動
$ docker-compose up -d

自動起動設定の確認

アップグレード後、自動起動の設定が正常に機能することを確認します。

# systemdサービスの状態確認
$ sudo systemctl status dify.service

# 必要に応じてサービスの再起動
$ sudo systemctl restart dify.service

まとめ

Difyのアップグレードは、適切な手順を踏めば安全に実行できます。ただし、重要なデータを扱うシステムのアップグレードでは、必ず事前にバックアップを取得し、十分なテストを行うことをお勧めします。また、アップグレード作業は、システムの利用が少ない時間帯に実施することをお勧めします。

特に注意が必要なのは、カスタマイズした設定(docker-compose.yamlやポート設定など)の移行です。アップグレード後に、これらの設定が正しく反映されているか必ず確認しましょう。

定期的なアップグレードにより、新機能の利用や安全性の向上が図れます。ぜひ、計画的なアップグレードを実施していきましょう。この手順がどなたかのお役に立てれば!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?