使用公有云服务搭建私有云盘

本文指导用户使用悦库网盘集群版搭建基于公有云服务的企业私有云盘,需要使用阿里云、AWS或其他云服务商提供的ECS(云主机)、OSS(对象存储)、云数据库三个基础云服务。

如果访问人数较多,安全性要求高,推荐使用阿里云、AWS的对象存储服务,因为其他云服务商对AWS STS(临时访问凭证)标准兼容性支持不友好,我们没有逐一验证适配。悦库的STS配置并不是必选项,但如果不启用STS,多用户访问悦库系统可能会有安全隐患。

悦库私有云盘部署架构

悦库私有云盘优点

  1. 安全性高
    用户数据由云服务商托管,安全性高,无需备份。
  2. 成本低
    对比市面上主流企业云盘产品,悦库私有云盘费用只有其20%左右,但整体性能和传输速度无差别。
    以100用户数,2022年4月阿里云报价为例:
服务名称费用
云主机 (双核/4G/60G云盘/5M带宽)2281元/年
云数据库基础版(双核/4G)1584元/年
1T存储空间999元/年
1T/月下载流量、上传免费4545元/年
合计9409元/年
以上表格是官方标准价格,购买云主机/云数据库价格水分大,新用户便宜到令人发指:

3. 公网传输速度快
公网下用户将直接访问云存储OSS服务,不受服务端带宽影响,上传下载速度快,大多数网络实际下载速度可达10MB/S。

4. 私密性好
企业云盘系统和数据完全独立私有化,文件数据分片离散存储,云服务商无法还原用户数据。

悦库私有云盘效果

根据本文部署完成后,在公网环境下同时上传/下载任务时的实际效果展示:

由于文件传输使用公网OSS云服务,对于每个客户端的下载速度都是可以跑满带宽的,并不受悦库服务端带宽和使用人数影响。

在虚拟盘中的同步展示效果:

文件数据在云服务商的OSS服务中存储状态:

文件被分片存储,服务商无法还原数据。

部署前的准备

  • 在一个阿里云账号下,开通云服务产品:ECS(云主机)、MySql云数据库、OSS(对象存储)。

下面我们以阿里云为例,介绍私有云盘的搭建过程。本示例中展示的所有公网云服务配置信息仅供参考,不能实际使用。

开通云服务

开通过程中需要您记录一些配置信息,以供后续在悦库服务端中进行配置。

为了方便记录和识别,我们为您创建了一个注释模板,请新建一个文本文件,并将以下内容复制进去,后续配置过程中我们将在此模板中临时记录一些配置信息。

 ############################ECS云主机配置信息##############################
 #云主机公网IP
 ​
 #开启2020、2021、2022端口公网访问
 ​
 ############################云数据库配置信息##############################
 #数据库主机名称(内网)
 ​
 #数据库主机端口
 ​
 #数据库用户名称
 ​
 #数据库密码
 ​
 ############################OSS配置信息##############################
 #Bucket(桶)名称
 ​
 #桶的Endpoint URL,例如:oss-cn-beijing.aliyuncs.com
 ​
 #区域名称就是上面Endpoint URL的前面部分,例如:oss-cn-beijing
 ​
 #AcessKeyID(访问ID)
 ​
 #AcessKeySecret(安全ID )
 ​
 #STS服务URL,是固定不变的,不需要额外获取。
 sts.aliyuncs.com
 ​
 #ARN(角色的资源名称)
 ​


配置ECS云主机

必须用同一账号购买云服务商产品:MySql云数据库、ECS(云主机),需要选择同一地域,这可以确保两个服务在同一个内部专有网络中,否则跨地域访问数据库,延迟太大,会造成应用程序卡顿。
  1. 通过官方文档指导,创建ECS云主机
  2. 进入"云服务器 ECS" 控制台,点击刚创建的实例名称,进入详情页面。
    复制云主机公网IP,复制到文本文件中,后续备用。

3. 进入安全组,添加 2020、2021、2022端口。

4. 核对云主机配置信息。

 ############################ECS云主机配置信息##############################
 #云主机公网IP
 47.111.99.48
 #开启2020、2021、2022端口公网访问
 已完成


配置云数据库

  1. 创建MySql实例
    开通云数据库服务,创建RDS MySQL实例,数据库版本为:MySql8.0 ,注意地域要和上面创建的云主机ECS地域一致,否则阿里云内网无法通信。

2. 创建数据库账号
创建数据库账号名称为:"ydisk" , 类型为: "高权限账号"。
记录数据库的 账号(用户名称)、密码到文本文件中,后续备用。

3. 获取数据库内网访问地址
在基本信息中,点击网络类型中的 "查看连接详情"。将内网地址(主机名称)和内网端口(主机端口)复制到文本文件中,后续备用。

4. 核对已获取的云数据库配置信息

 ############################云数据库配置信息##############################
 #主机名称
 rm-bp1eu43om2c8651rg.mysql.rds.aliyuncs.com
 #主机端口
 3306
 #用户名称
 ydisk
 #密码
 1+-ydisk.cn

配置OSS对象存储

  1. 通过阿里云官方文档指导,开通OSS服务
  2. 创建Bucket(存储桶)
    创建Bucket,例如名称为:"ydisk-test" ; 存储类型为:"标准存储"; 读写权限为:"私有"。
    将Bucket名称和Endpoint URL,复制到文本文件中,后续备用。

3. 设置Bucket跨域访问
在Bucket列表中,点击 "ydisk-test" ,进入详情页面;点击左侧"权限管理"标签进入"跨域设置"项。
创建规则:来源:* ; 允许Methods:勾选所有。

4. 创建RAM(访问控制)用户
点击左侧"权限管理"标签进入"访问控制 RAM"项,打开"RAM访问控制"页面。
创建RAM用户,例如用户名为:"ydisk"; 显示名称为:"悦库网盘"; 访问方式为:"Open API 调用访问"。

5. 创建用户AcessKey
创建用户AcessKey后,将AcessKeyID和AcessKeySecret复制到文本文件中,后续备用。

6. 为用户添加访问权限
为用户添加 "AliyunOSSFullAccess" 和 "AliyunSTSAssumeRoleAccess" 权限。

7. 创建RAM角色,并添加权限
创建可信实体为阿里云账号的RAM角色,例如角色名称为:"ydiskRole"。创建成功后,为角色添加"AliyunOSSFullAccess"权限。
复制"ARN",记录到文本文件中,后续备用。

8. 核对已获取的OSS服务配置信息

 ############################OSS配置信息##############################
 #Bucket(桶)名称
 ydisk-test
 ​
 #桶的Endpoint URL,例如:oss-cn-beijing.aliyuncs.com
 oss-cn-beijing.aliyuncs.com
 ​
 #区域名称就是上面Endpoint URL的开头部分,例如:oss-cn-beijing
 oss-cn-beijing
 ​
 #AcessKeyID(访问ID)
 sC5gAPDRLyxVEFMOlwFurDdTUremDo
 ​
 #AcessKeySecret(安全ID )
 sC5gAPDRLyxVEFMOlwFurDdTUremDo
 ​
 #STS服务URL,是固定不变的,不需要额外获取。
 sts.aliyuncs.com
 ​
 #ARN(角色的资源名称)
 acs:ram::1179636438064388:role/ydiskrole

部署悦库集群版

到此为止,云服务就配置好了,下面请参考官网手册进行悦库集群版部署。部署过程中,根据手册提示,将您开通云服务时在模板文件中记录的云服务信息配置到悦库网盘服务端中。

例如我实际配置后的悦库服务端config.json文件是这样的:

 {
     "service": {
         "web": {
             "scheme": "http",
             "hostname": "47.111.99.48",
             "port": 2020
         },
         "api": {
             "scheme": "http",
             "hostname": "47.111.99.48",
             "port": 2010
         },
         "doc": {
             "scheme": "http",
             "hostname": "47.111.99.48",
             "port": 2022
         },
         "oss": {
             "scheme": "http",
             "hostname": "oss-cn-beijing.aliyuncs.com",
             "port":80,
             "region": "oss-cn-beijing",
             "bucket": "ydisk-test",
             "accessKey": "LTAI5tMniSesFkj7hC4Tnb8L",
             "secretKey": "sC5gAPDRLyxVEFMOlwFurDdTUremDo",
             "sts": "sts.aliyuncs.com",
             "arn": "acs:ram::1179636438064388:role/ydiskrole"
         },
         "db": {
             "hostname": "rm-bp1eu43om2c8651rg.mysql.rds.aliyuncs.com",
             "port":3306,
             "user": "ydisk",
             "password": "1+-ydisk.cn"
         }
     }
 } ​


与我们交流和获得帮助

如果您遇到问题可以联系我们,我们和其他老用户会帮助您,不要一个人孤独的努力。

QQ群450448657

微信 : 19963860417

编辑于 2022-04-21 09:09