跳到主要内容
版本号:Next

亚马逊网络服务

该篇文档描述了在 AWS 云服务上部署 Verdaccio 的几种方式

EC2

用于部署此堆栈的 CloudFormation 模板

架构:

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

查看 KubernetesDocker 的文档页面。

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.yamlnano ~/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 你将会在这里看到新的库