Skip to content

rikubuilds/cdk-dify-on-lightsail

Repository files navigation

Dify.ai on Amazon Lightsail

日本語

こちらの記事 (by サンミンさん @gijigae)で紹介されている DifyのAWSへのデプロイ方法を, AWS CDKを使ってコード化したものです.

AWSのマネジメントコンソールを使った場合と同等のリソース作成操作を,コマンドラインを使って実行しています. インフラリソースをCDKでコード化してデプロイすることで,

  • 途中の一部操作(SSHキーを作成してインスタンスにログインし,Difyインストールコマンドを実行する)が不要
  • リソースが不要になった場合,CloudFormationのページから一括削除できる

などの利点があります.

AWS CDK(やその中でつかっているAWS CLI)を全く触ったことがない方も,AWS CloudShellという機能(これは完全無料!)を使えば, CLIツールの面倒なインストール作業なしに,以下の手順で簡単にデプロイできます.

  1. AWS CloudShellの起動

AWSアカウントにログインし,使用したいリージョンに切り替えてください.

それから,画面の右上のボタンを押して,CloudShellを開いてください.

CloudShellの起動

CloudShellを起動した様子

  1. デプロイコマンドの実行

CloudShellのコンソールで,下記のコマンドを1行ずつ実行する.

git clone https://github.com/rikrikurik/cdk-dify-on-lightsail.git
cd cdk-dify-on-lightsail
npm i
cdk bootstrap
cdk deploy
  1. 8 - 10分ほど待つ

(この間に,作成したインスタンスで,Dockerのインストール・DifyのGitHubコードpullとサービス起動が行われています.)

  1. 出来上がったLightsailインスタンスの固定IPアドレスを確認して,ブラウザからDifyのフロントエンドにアクセスする.

Lightsailのページを開く

Lightsailのページから作成したインスタンスの詳細ページを開く

固定IPアドレスを確認する

ブラウザで,http://AAA.BBB.CCC.DDDにアクセスする. (AAA.BBB.CCC.DDDの部分は,先の手順で控えた固定IPアドレスに読み替え.)

httpsではなくhttpでのアクセスが必要なので注意する!

Difyフロントエンドにアクセスする

不要になった時のリソース削除方法

  1. CloudFormationのページを開く.

CloudFormationのページを開く

  1. DifyOnLightsail-stackという名前のスタックを削除する

1度目の削除操作で,削除が失敗する(IPアドレスは削除されるが,Lightsailインスタンスが残ってしまう)事があるようなので,そのときは,再度削除操作をしてみてください.

CloudFormation Stackを削除する

English

This is AWS CDK project to deploy stack to install Dify on Amazon Lightsail, inspired by this article (Japanese only) (by @gijigae).

This project executes the same resource creation operations as using the AWS Management Console, but via the command line. By codifying and deploying infrastructure resources with CDK, there are benefits such as:

  • Some intermediate operations (creating SSH keys, logging into instances, and executing Dify installation commands) are unnecessary
  • When resources are no longer needed, they can be deleted in bulk from the CloudFormation page

Don't worry that if you are not familiar with AWS CDK (or AWS CLI).

You can deploy this stack simply by using AWS CloudShell (free service!).

Here is an instruction to deploy this stack.

  1. Open the AWS CloudShell.

Login to your AWS account and switch region to where you want to deploy this stack.

After that, click the CloudShell icon on the top right of the screen.

Open CloudShell

  1. Execute CDK Deploy Command on CloudShell

Execute the following commands one line at a time.

git clone https://github.com/rikrikurik/cdk-dify-on-lightsail.git
cd cdk-dify-on-lightsail
npm i
cdk bootstrap
cdk deploy
  1. Wait for 8 -10 minutes

(During this time, Docker installation, pulling Dify's GitHub code, and service startup are being performed on the created instance.)

  1. Check the static IP address of the created Lightsail instance and access Dify's frontend from your browser.

Open Lightsail Console

Open Instance Detail Page

Check the Static IP Address

Access http://AAA.BBB.CCC.DDD from your browser.

(Please replace AAA.BBB.CCC.DDD to your static IP address of Lightsail instance.)

Note that you should use http instead of https

Access to Dify Frontend

How to Delete Deployed Stack?

  1. Open CloudFormation Page

Open CloudFormation Page

  1. Delete Stack named DifyOnLightsail-stack

The first deletion operation may fail (the IP address is deleted, but the Lightsail instance remains). If this happens, please try the deletion operation again.

Delete CloudFormation Stack

About

IaC to deploy Dify.ai on Amazon Lightsail

Resources

License

Stars

Watchers

Forks

Packages

No packages published