参考:GitHub - aws-samples/cost-effective-aws-deployment-of-comfyui: Cost effective solution to deploy ComfyUI on AWS with simple deployment process using ECS and CDK.
成本参考
一、正式部署
拉起并登录EC2,更新CLI,参考(文档的命令使用镜像为amazon linux 2023)
安装或更新最新版本的 AWS CLI - AWS Command Line Interface
sudo yum remove awscli
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
[ec2-user@ip-10-0-8-229 ~]$ /usr/local/bin/aws --version
aws-cli/2.24.7 Python/3.12.6 Linux/6.1.127-135.201.amzn2023.x86_64 exe/x86_64.amzn.2023
配置AWS信息
运行
[ec2-user@ip-10-0-8-229 ~]$ aws configure
输入您的信息:
IAM访问密钥:
秘密密钥:
默认区域:
常用格式:(如json)
安装node.js和npm
[ec2-user@ip-10-0-8-229 ~]$ curl -sL https://rpm.nodesource.com/setup_18.x | sudo bash -
[ec2-user@ip-10-0-8-229 ~]$ sudo yum install -y nodejs
验证安装
[ec2-user@ip-10-0-8-229 ~]$ node -v
[ec2-user@ip-10-0-8-229 ~]$ npm -v
安装cdk
[ec2-user@ip-10-0-8-229 ~]$ sudo npm install -g aws-cdk
验证安装
[ec2-user@ip-10-0-8-229 ~]$ cdk --version
安装docker
[ec2-user@ip-10-0-8-229 ~]$ sudo yum install docker -y
安装完成后,启动 Docker 服务并设置开机自启
[ec2-user@ip-10-0-8-229 ~]$ sudo systemctl start docker
[ec2-user@ip-10-0-8-229 ~]$ sudo systemctl enable docker
为了避免每次使用 Docker 时都需要 sudo,你可以将当前用户(例如 ec2-user)添加到 Docker 组:
[ec2-user@ip-10-0-8-229 ~]$ sudo usermod -aG docker ec2-user
[ec2-user@ip-10-0-8-229 ~]$ newgrp docker
确保 Docker 已正确安装并正在运行:
[ec2-user@ip-10-0-8-229 ~]$ docker --version
[ec2-user@ip-10-0-8-229 ~]$ docker info
可以运行以下命令来验证 Docker 是否能够正常工作:
[ec2-user@ip-10-0-8-229 ~]$ docker run hello-world
这会下载并运行一个简单的 Docker 镜像,输出一条欢迎信息,表示Docker正常工作。
安装git
[ec2-user@ip-10-0-8-229 ~]$ sudo yum install git -y
安装完成后,验证 Git 是否成功安装:
[ec2-user@ip-10-0-8-229 ~]$ git --version
克隆Git项目资源
[ec2-user@ip-10-0-8-229 ~]$
git clone https://github.com/aws-samples/cost-effective-aws-deployment-of-comfyui.git
[ec2-user@ip-10-0-8-229 ~]$ cd cost-effective-aws-deployment-of-comfyui
安装make
[ec2-user@ip-10-0-8-229 cost-effective-aws-deployment-of-comfyui]$sudo yum install make
确认安装
[ec2-user@ip-10-0-8-229 cost-effective-aws-deployment-of-comfyui]$make --version
安装Pip 以及其依赖
[ec2-user@ip-10-0-8-229 cost-effective-aws-deployment-of-comfyui]$sudo yum install python3-pip
验证安装
[ec2-user@ip-10-0-8-229 cost-effective-aws-deployment-of-comfyui]$pip3 --version
重新激活虚拟环境,并安装依赖:
[ec2-user@ip-10-0-8-229 cost-effective-aws-deployment-of-comfyui]$source venv/bin/activate
[ec2-user@ip-10-0-8-229 cost-effective-aws-deployment-of-comfyui]$pip install -r requirements.txt
输入make运行,建立堆栈(这个过程约10-20分钟)
[ec2-user@ip-10-0-8-229 cost-effective-aws-deployment-of-comfyui]$ make
运行完成后显示:
✅ ComfyUIStack
✨ Deployment time: 579.07s
Outputs:
ComfyUIStack.CognitoDomainName = comfyui-alb-auth-XXXXXXX
ComfyUIStack.Endpoint = ComfyUiALB-XXXXX.uw-west-2.elb.amazonaws.com
ComfyUIStack.UserPoolId = us-west-2_XXXXXXX
Stack ARN:
arn:aws:cloudformation:[us-east-1]:[your-account-id]:stack/ComfyUIStack/[uuid]
✨ Total time: 582.53s
其中该地址为endpoint登录地址
ComfyUIStack.Endpoint = ComfyUiALB-XXXXX.uw-west-2.elb.amazonaws.com
登录endpoint,会出现要求输入账号密码的页面
此时需要在aws Cognito建立用户
选择用户池
选择堆栈生成的用户池(格式为ComfyUIuserPool....)
选择用户
创建用户
根据需求,配置用户信息,配置完成后创建用户,随后使用该用户信息登录
随后可以根据需求更新账密、邮箱
登录成功
二、验证
使用模型:Waifu Diffusion 1.5 Beta3 (fp16) (文生图模型)
如图,验证完毕
三、其余可选项
关于其他可选部署项(如下图),请参考
https://github.com/aws-samples/cost-effective-aws-deployment-of-comfyui/blob/main/docs/USER_GUIDE.md
关于模型、拓展等额外配置(如下图),请参考:
清理资源
手动删除 Auto Scaling 组:
- 登录到您的 AWS 控制台
- 在搜索栏中搜索 Auto Scaling Groups(EC2 功能)
- 选择 ComfyASG
- 按操作然后删除
- 确认删除
删除 ASG 后,您只需在部署时的终端中运行以下命令即可。此命令将删除所有剩余资源,但 EBS 和 Cognito 用户池除外。(请确认是否无报错,有报错则需要查看什么资源删除失败)
[ec2-user@ip-10-0-8-229 cost-effective-aws-deployment-of-comfyui]$npx cdk destroy
删除 EBS 卷
- 登录到您的 AWS 控制台
- 在搜索栏中搜索卷(EC2 功能)
- 选择 ComfyUIVolume
- 按操作然后删除
- 确认删除
删除 Cognito 用户池
- 登录到您的 AWS 控制台
- 在搜索栏中搜索 Cognito
- 选择 ComfyUIuserPool..
- 按删除键
- 确认删除
删除 ECS 存储库
- 登录到您的 AWS 控制台
- 在搜索栏中搜索 ECS
- 选择 comfyui
- 按删除键
- 键入 delete 确认删除
最后,最初部署使用的实例,清理资源完成