前回DifyのEC2を時間で起動するように設定するのを試みてみました。
今回はDifyにアップデートが来たときのアップデートの仕方です。
Difyは頻繁新機能が追加されアップデートしています。また新しい生成AIモデルに対応しないといけないのでそういうときもすぐアップデートしてくれて助かります。
この記事を書いている最中にもClaudeが新アップデートした関係でまたアップデートされました。
そんな時に都度、EC2削除、再インストールでもできなくはないですがあまりにも非効率ですので。
そこでそのようなときに対応できるようにアップデートの仕方を学んでおきます。
今回達成できること
EC2に入れたDifyをアップロードすることができるようになる。
1.アップデート方法
公式のここです。これを行うだけです。
Difyの更新:https://docs.dify.ai/ja-jp/getting-started/install-self-hosted/docker-compose
# Difyのソースコードディレクトリに移動
cd dify/docker
# Difyのソースコードをリモートリポジトリのmainブランチから最新版をひっぱってくる
git pull origin main
# 現在実行中のDockerコンテナをすべて停止して削除(データは保持される)
docker compose down
# 使用中のDockerイメージをリモートから最新のものに更新
docker compose pull
# 最新のイメージを使用してコンテナをバックグラウンドで起動
docker compose up
.envファイルをオリジナルでなにか修正している場合は注意が必要です。
シンプルに使っているのであれば問題ないと思いますが、必要であれば作ったワークフローのDSLファイルをバックアップするなどしておけば最悪EC2、EBSごと作り直しになっても対応できます。
2.実際にやってみる
毎度EC2の黒い画面に行きます。上記の5つを上から一個づつ打っていくだけです。
4つ目が少し時間かかりますね。見守ってあげてください。
あっ
failed to register layer: open /app/api/.venv/lib/python3.10/site-packages/plotly/validators/layout/scene/yaxis/_tickfont.py: no space left on device
容量足らないって怒られました。15GBギリギリにするからですね(笑)
20GBにEBSのボリュームあげてもう一回やってみます。
無事完了しました!できました。
ちなみにディスク容量を確認する方法は以下のコマンドです。
df -h
ボリュームの上げ方はEC2インスタンスの設定画面のストレージからボリュームにアクセスしてあげれます。
変更後再起動なしでコマンドでも反映できますが、再起動しても反映されるので問題ない状況なら再起動してください。
【補足】足らないライブラリがあった
アップデートしてて気づいたんですが、足りてないライブラリがありました。
以下も入れといた方がいいです。
ffmpeg
音声や映像の変換、編集、ストリーミングなどに使用される強力なマルチメディアツールです。
PyTorch と TensorFlowtorch
, torchvision
, torchaudio
: PyTorchはFacebookが開発したディープラーニング用のライブラリです。torchvision
は画像データ処理用、torchaudio
は音声データ処理用のモジュールです。tensorflow
: Googleが開発したディープラーニングフレームワークで、ニューラルネットワークの構築と訓練に使われます。
こちらは第1回の段階でぬけてたので修正しておきました。
手順は以下の通りです。
1. システムのアップデート
まず、システムを最新の状態にアップデートします。
sudo yum update -y
2. ffmpeg のインストール
Amazon Linux 2023 では、epel-release が利用できないため、ffmpeg のインストールには以下のリポジトリを追加して行います。
2.1 Nux Dextop リポジトリの追加
まず、nux-dextop リポジトリを利用できるように設定します。
sudo tee /etc/yum.repos.d/nux-dextop.repo <<EOF
[nux-dextop]
name=Nux.Dextop
baseurl=http://li.nux.ro/download/nux/dextop/el7/x86_64/
enabled=1
gpgcheck=0
EOF
2.2 ffmpeg のインストール
リポジトリが追加されたら、ffmpeg をインストールします。
sudo dnf install ffmpeg
3. PyTorch と TensorFlow のインストール
次に、Python の機械学習ライブラリである PyTorch と TensorFlow を pip 経由でインストールします。まず、pip がインストールされていない場合は以下のコマンドでインストールします。
3.1 PyTorch と TensorFlow のインストール
次に、必要なライブラリを pip でインストールします。
pip3 install torch torchvision torchaudio tensorflow
まとめ
これで最新Difyのアップデート対応ができるようになりました!