1
3

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の環境(Amazon Linux 2)にDifyをインストールする手順

Last updated at Posted at 2024-10-18

はじめに

Dify便利ですね!いろんなことについて生成AIで自動化できます。ここでは、AWSのEC2の環境(Amazon Linux 2)にDifyをインストールする手順を示します。Difyのバージョンは、0.9.2です。どなたかの参考にしていただけると嬉しいです。

Dockerのインストール

  1. SSHを使ってAmazon Linux 2インスタンスに接続します。

  2. 必要なパッケージをインストールします

    $ sudo yum update -y
    $ sudo yum install -y docker git
    
  3. Dockerサービスを開始し、自動起動を有効にします

    $ sudo systemctl start docker
    $ sudo systemctl enable docker
    
  4. 現在のユーザーをdockerグループに追加し、再ログインして変更を反映させます

    $ sudo usermod -aG docker $USER
    $ exit
    
  5. SSHで再接続後に、Docker Composeをインストールします

    $ sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
     % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    100 60.8M  100 60.8M    0     0  51.8M      0  0:00:01  0:00:01 --:--:--  116M
    $ sudo chmod +x /usr/local/bin/docker-compose
    

Difyのインストール

  1. Difyリポジトリをクローンします

    $ git clone https://github.com/langgenius/dify.git
    Cloning into 'dify'...
    remote: Enumerating objects: 95135, done.
    remote: Counting objects: 100% (11824/11824), done.
    remote: Compressing objects: 100% (1425/1425), done.
    remote: Total 95135 (delta 11046), reused 10727 (delta 10391), pack-reused 83311 (from 1)
    Receiving objects: 100% (95135/95135), 51.29 MiB | 15.74 MiB/s, done.
    Resolving deltas: 100% (67723/67723), done.
    Updating files: 100% (5967/5967), done.
    $ cd dify/docker
    
  2. 環境設定ファイルをコピーし、必要に応じて編集します

    $ cp .env.example .env
    $ vi .env
    

    httpのポートをコンテナの外からアクセスできるように設定を変更します。.envの以下の2か所について、ポート番号の8888番を設定しました。(未使用ポートを設定しましょう)

    # ------------------------------
    # Environment Variables for Nginx reverse proxy
    # ------------------------------
    # HTTP port
    NGINX_PORT=8888
    # ------------------------------
    # Docker Compose Service Expose Host Port Configurations
    # ------------------------------
    EXPOSE_NGINX_PORT=8888
    
  3. docker-composeで、Difyを起動します

    $ docker-compose up -d
    [+] Running 11/11
     ✔ Network docker_ssrf_proxy_network  Created                                                                                                              0.1s 
     ✔ Network docker_default             Created                                                                                                              0.1s 
     ✔ Container docker-db-1              Started                                                                                                              5.1s 
     ✔ Container docker-weaviate-1        Started                                                                                                              4.9s 
     ✔ Container docker-sandbox-1         Started                                                                                                              4.8s 
     ✔ Container docker-redis-1           Started                                                                                                              4.9s 
     ✔ Container docker-ssrf_proxy-1      Started                                                                                                              5.2s 
     ✔ Container docker-web-1             Started                                                                                                              4.6s 
     ✔ Container docker-api-1             Started                                                                                                              7.8s 
     ✔ Container docker-worker-1          Started                                                                                                              7.4s 
     ✔ Container docker-nginx-1           Started
    

これで、8888番でDifyがアクセス可能になりました。

あとは、必要に応じてドメインとTLSの設定を行います。今回はAWS環境(ALB配下のEC2サーバー)で構築したため、他に

  • Route53に、CNAMEレコードを設定し、
  • インターネットからの443ポートへのTLSアクセスが、ALB経由でEC2の80番ポートにアクセスされるように設定をし、
  • EC2内のApacheには、httpd.confのVirtualHostに設定を入れ、再起動しました

※[domain-name]にはあなたのドメイン名を設定してくださいね。

<VirtualHost *:80>
  ServerName [domain-name]

  # 通常のリバースプロキシの設定
  ProxyPass "/" "http://127.0.0.1:8888/"
  ProxyPassReverse "/" "http://127.0.0.1:8888/"
</VirtualHost>

Difyのセットアップ

  1. Difyの初期化プロセスを開始します。ブラウザで以下のURLにアクセスします

    http://[domain-name]/install
    
  2. 画面の指示に従って初期設定を完了します。

以下は初期画面です。

image.png

「管理者アカウントの設定」リンクをクリックします。

image.png

3つの項目を入れてボタンを押下すると登録されます。

image.png

上記画面でサインインをします。先ほど登録したメールアドレスとパスワードを入力しましょう。

image.png

見事サインインに成功しました。おめでとうございます!

自動起動の設定方法

マシンを再起動してもDifyが自動的に起動するようにするには、追加の設定が必要です。以下に手順示します。

  1. システムのsystemdサービスを作成します

    sudo vi /etc/systemd/system/dify.service
    
  2. 以下の内容をdify.serviceに追加します

    [Unit]
    Description=Dify Docker Compose Application
    Requires=docker.service
    After=docker.service
    
    [Service]
    Type=oneshot
    RemainAfterExit=yes
    WorkingDirectory=/home/ec2-user/dify/docker
    ExecStart=/usr/local/bin/docker-compose up -d
    ExecStop=/usr/local/bin/docker-compose down
    
    [Install]
    WantedBy=multi-user.target
    

実際のDifyのdockerディレクトリのパス類に置き換えてくださいね。

  1. ファイルを保存して閉じます。

  2. システムにサービスを登録し、有効化します

    $ sudo systemctl daemon-reload
    $ sudo systemctl enable dify.service
    Created symlink from /etc/systemd/system/multi-user.target.wants/dify.service to /etc/systemd/system/dify.service.
    
  3. サービスを開始します

    $ sudo systemctl start dify.service
    

これらの手順を実行することで、マシンの再起動時にDifyが自動的に起動するようになります。

まとめ

Difyをインストールする手順をまとめました。簡単ですね。どうやらとあるコンサルの調査によると、生成AIの活用は、日本は面倒な事務作業の効率化に焦点が当たることに比べて、アメリカは顧客満足度の向上に重きを置くそうです。自分に役立てるだけでなく、周りの人に役立ててこそ本当の価値。実際に使いながらいろいろ役立てていきましょう!

1
3
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
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?