亚马逊网络服务
该篇文档描述了在 AWS 云服务上部署 Verdaccio 的几种方式
EC2
架构:
Clients
|
| (HTTPS)
v
Application Load Balancer
|
| (HTTP)
v
EC2 Auto Scaling Group (Amazon Linux 2)
Docker image (Verdaccio)
|
| (NFS)
v
Elastic File System
架构说明:
- 将这个堆栈部署到离你的用户最近的区域,以获得最大的性能。
- 我们使用一个自动缩放组主要是为了自我修复。 Verdaccio 的系统要求相当低,所以你不太可能需要多个实例来处理流量负荷。
- 由于亚马逊 Linux 2 不包括 Node,我们将 Verdaccio 作为 Docker 镜像运行,而不是在实例上原生运行。 这比依赖 Node 的第三方包源更快、更安全。
- Elastic File System 便宜且有状态,并且可以跨可用区工作。 另一个选择是 第三方 S3 存储插件。
- 对于备份,使用 AWS Backup
一个小规模安装的每月预估成本 (在 us-east-1 区域):
- ALB (平均 1 个 LCU):22.265 美元/月
- EC2 (t3.nano):3.796 美元/月
- EBS (8gb):0.80 美元/月
- EFS (5gb):1.5 美元/月
- 数据传输:(10gb):0.9 美元/月
- 总计:低于 30 美元/月
ECS
您可以将 Verdaccio 部署为具有 ECS Volume 的任务以进行持久存储。
注意:Fargate 不支持持久性卷,所以你必须使用 S3 存储插件。
EKS
查看 Kubernetes 和 Docker 的文档页面。
Deploying Verdaccio on AWS
安装 & 配置
第一步: 打开 SSH & 使用您的 EC2 秘钥登录.
**第二步:**请先安装 Node 版本管理工具(nvm),安装完成后关闭并使用你的 EC2 密钥重新连接 SSH
sudo apt update
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
exit
**第三步:**使用 nvm 安装 Node
nvm install node
**第四步:**安装 Verdaccio & pm2,我们需要通过 pm2 在后台运行 Verdaccio 服务
npm i -g verdaccio pm2
**第五步:**将 Verdaccio registry 设置为 npm 源 默认情况下使用的是 NPM registry
npm set registry http://localhost:4873
npm set ca null
**第六步:**运行 Verdaccio 然后停止它(ctrl+c) 这会创建一个我们需要使用的配置文件。
verdaccio
**第七步:**现在执行以下配置来监听该服务器/EC2 实例上的所有地址。 (查看更多)
打开并且编辑 config.yaml
文件:
nano .config/verdaccio/config.yaml
或 nano ~/verdaccio/config.yaml
在最后添加以下几行。 (查看更多)
listen:
- 0.0.0.0:4873
更改以下行,以便只有经过身份验证的人才能访问我们的 registry
将 "access: $all" 替换为 "access: $authenticated"
(可选)根据您希望授予范围注册表访问权限的用户数量更改以下行
将 "#max_users: 1000" 替换为 "max_users: 1"
还有一些参数可用于配置它。 像修改存储方式,代理,默认端口。 (查看更多)
**第八步:**使用 pm2 在后台运行 Verdaccio:
pm2 start verdaccio
**第九步:**现 在,你可以访问你的 Verdaccio 网页界面了。
URL 看起来像是这样的:
http://ec2-..compute.amazonaws.com:4873
or
http://your-ec2-public-ip-address:4873 (你可以在你的 AWS 控制台查看你的 EC2 实例开放的 ip)
为了确认 Verdaccio 的运行状态,请运行以下命令:
pm2 list
为了在开机时运行 Verdaccio,请执行以下命令:
pm2 stop verdaccio
pm2 delete verdaccio
pm2 startup
这将在您的终端中显示一个命令。 复制/粘贴并执行它,让 pm2 为您创建启动服务。
which verdaccio
复制此命令显示的路径。
pm2 start /home/ubuntu/.nvm/versions/node/v17.1.0/bin/verdaccio
(输入您从上面的命令复制的路径)。
pm2 status
这应该会显示 Verdaccio 服务的状态为“在线”。
pm2 save
现在,当您重新启动 EC2 实例时,它会直接启动 verdaccio。
第十步: 在 Verdaccio registry 中注册用户
npm adduser
请输入用户名、密码和有效的电子邮件 ID。 记下这些详细信息,稍后将用于登录 Verdaccio registry 来发布我们的库。
第十一步: 现在我们准备将我们的 AWS 服务器实例用作私有 registry。
登录 Verdaccio registry。 输入上面步骤中设置的相同用户名、密码和电子邮件 ID。
npm set registry http://your-ec2-public-ip-address:4873
npm login
**第十二步:**前往您的自定义库包路径。 在我的例子中,这是我的 Angular 7 包路径 -> /libraries/dist/your-library-name/your-library-name-0.0.1.tgz
如果您想了解如何创建 angular 7 库/包,请(点击此处)
cd [custom library package path]
第十三步: 最后在 Verdaccio registry 上发布我们的库 your-library-name-0.0.1.tgz
[custom library package path] >> npm publish your-library-name-0.0.1.tgz
or
[custom library package path] >> npm publish
or
[custom library package path] >> npm publish --registry http://your-ec2-public-ip-address:4873
现在,访问 http://your-ec2-public-ip-address:4873
你将会在这里看到新的库