在亚马逊云科技中国区域部署
该解决方案支持在亚马逊云科技中国区域部署。
区域名称 | 验证通过 |
---|---|
中国 (宁夏) |
但由于中国的网络环境特殊,会受到如下限制:
- 中国区域不支持默认的
g5
实例类型。您需要手工指定 Karpenter 使用的实例类型为g4dn
或其他 GPU 实例类型。 - 需要自行构建容器镜像,或将标准镜像复制到中国区域的ECR上。不建议使用ECR Public的镜像。
- 部分组件的Helm Chart位于Github上,在中国区部署时,有几率无法获取到Helm Chart,需要重试。
- 无法自动从Hugging Face或Github上下载模型,需要手工下载模型并上传至S3存储桶。
在中国区部署的步骤
在亚马逊云科技中国区部署的步骤与正常部署流程不同,应按如下方式进行部署:
- 构建或转移镜像至ECR
- 下载模型并存储至S3桶
- 制作EBS磁盘快照
- 生成并修改配置文件
- 进行部署
构建或转移镜像至ECR
由于默认使用的容器镜像存储在ECR Public,您在拉取镜像或制作镜像缓存时可能面临速度缓慢,或连接中途断开等现象。我们建议您自行构建镜像,或将现有镜像转移到您的ECR镜像仓库中。
如需自行构建镜像,请参考镜像构建文档。
如需将预构建镜像转移到中国区的ECR,您可以在一台已安装Docker,并有ECR权限的实例上,运行如下命令:
docker pull public.ecr.aws/bingjiao/sd-on-eks/sdwebui:latest
docker pull public.ecr.aws/bingjiao/sd-on-eks/comfyui:latest
docker pull public.ecr.aws/bingjiao/sd-on-eks/queue-agent:latest
aws ecr create-repository --repository-name sd-on-eks/sdwebui
aws ecr create-repository --repository-name sd-on-eks/comfyui
aws ecr create-repository --repository-name sd-on-eks/queue-agent
docker tag public.ecr.aws/bingjiao/sd-on-eks/sdwebui:latest 123456789012.dkr.ecr.cn-northwest.amazonaws.com.cn/sd-on-eks/sdwebui:latest
docker tag public.ecr.aws/bingjiao/sd-on-eks/comfyui:latest 123456789012.dkr.ecr.cn-northwest.amazonaws.com.cn/sd-on-eks/comfyui:latest
docker tag public.ecr.aws/bingjiao/sd-on-eks/queue-agent:latest 123456789012.dkr.ecr.cn-northwest.amazonaws.com.cn/sd-on-eks/queue-agent:latest
aws ecr get-login-password --region cn-northwest-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.cn-northwest-1.amazonaws.com.cn
docker push 123456789012.dkr.ecr.cn-northwest.amazonaws.com.cn/sd-on-eks/sdwebui:latest
docker push 123456789012.dkr.ecr.cn-northwest.amazonaws.com.cn/sd-on-eks/comfyui:latest
docker push 123456789012.dkr.ecr.cn-northwest.amazonaws.com.cn/sd-on-eks/queue-agent:latest
我们建议您按照镜像构建文档提供的方式,将Helm Chart放置在ECR或HTTP服务器中。
下载模型并存储至S3桶
由于在国内无法顺畅访问Hugging Face,请在其他镜像网站下载模型后,按照模型存储文档提供的方式,上传至S3存储桶中。
制作EBS磁盘快照
请按照镜像缓存构建文档提供的方式,创建EBS磁盘快照以加速镜像加载。
生成并修改配置文件
运行以下命令以安装工具并生成初始配置文件。
该命令会在上级目录下生成一个 config.yaml
的模板,但该模板需要进行编辑以在中国区进行部署,编辑该文件,添加以下内容:
stackName: sdoneks
modelBucketArn: arn:aws-cn:s3:::${MODEL_BUCKET} # 此处ARN中aws改为aws-cn
APIGW:
stageName: dev
throttle:
rateLimit: 30
burstLimit: 50
modelsRuntime:
- name: sdruntime
namespace: "default"
modelFilename: "v1-5-pruned-emaonly.safetensors"
dynamicModel: false
# chartRepository: "http://example.com/" # 如您自行托管Helm Chart,请去除此行注释,并将值改为Helm Chart的地址(oci://或http://),否则删除此行。
type: sdwebui
extraValues:
runtime:
inferenceApi:
image:
repository: 123456789012.dkr.ecr.cn-northwest-1.amazonaws.com.cn/sd-on-eks/sdwebui # 此处改为ECR镜像仓库的地址
tag: latest
queueAgent:
image:
repository: 123456789012.dkr.ecr.cn-northwest-1.amazonaws.com.cn/sd-on-eks/queue-agent # 此处改为ECR镜像仓库的地址
tag: latest
karpenter:
nodeTemplate:
amiFamily: Bottlerocket
dataVolume:
volumeSize: 80Gi
volumeType: gp3
deleteOnTermination: true
iops: 4000
throughput: 1000
snapshotID: snap-1234567890 # 此处会自动填入EBS快照的ID
provisioner:
instanceType:
- "g5.xlarge"
- "g4dn.xlarge"
- "g5.2xlarge"
- "g4dn.2xlarge"
capacityType:
onDemand: true
spot: true
scaling:
queueLength: 10
minReplicaCount: 0
maxReplicaCount: 5
cooldownPeriod: 300
完成后,可运行部署命令进行部署: