我个人与网络存储的故事,要追溯起2009年前后,那时候,有一些「网络U盘」的服务,开始走入大家的视线,那时候,我们会把平时最珍贵的电子资产放在网络U盘里,比如,最长常用的word文档、每次换手机或刷机都要重新做的铃声文件、意难平的照片,各种电子书、小电影等等,相比于买了用一次就丢,走到哪里都会中毒的实体优盘而言,那时候的网络U盘简直就是三体人。

再后来,我们开始接触到国内外形形色色的网盘,Dxxxbox、邮箱自带的网络存储、聊天工具自带的存储、再后来的xx5、某D等等,那时候,我们都有一种错觉,我们真的可以把所有的体验搬到网盘里,这里有我们所有感兴趣和珍视的一切。

但是,好景不长,先是来了一波5秒教育视频,再是限容量、最后是限速,大家的郁闷之处不是在意那些VIP费用,而是这些工具商业化之后,再也没有了改善功能和体验的初心,一切迭代都是为了将你圈在某个工具里,不得不为此交保护费,这才是大家诟病个人网盘的关键——但,实话实说,该开还是要开的,这是就是互联网时代的过路费。

我相信,很大一批人因此开始琢磨起Nas了,作为一个5年Nas老手,我真心不建议没时间、没经验的人折腾Nas,Nas的购买成本、Nas的时间成本,将远远超乎你的想象,我建议想要搭建家庭影音中心的可以考虑搞Nas,如果你只是想备份重要文档、重要图片、重要文件等,作为一个保底的网络存储自留地,我的建议是用一些商业+开源的方案做一个个人网盘。

今天,我就教给大家一个拥有30G容量、且拥有良好交互的个人网盘搭建方案——AWS+NextCloud个人网盘解决方案,AWS负责存储,NextCloud负责功能和交互。

1. 创建 AWS 账户

首先,你得有一个AWS账户,长期关注我的小伙伴可能已经有了AWS账户,第一次了解AWS的小伙伴,你可以在看完整篇文章后,注册一个,免费,无门槛,同时还可以免费使用 100 余种云产品或服务。

免费注册 AWS 账号

2. 创建实例

实例,是什么,在这就不展开了,只需要按照下面的方法做。

a. 为了确保网盘打开速度,我建议大家选择一个在中国访问较快的亚马逊云海外区域,比如新加坡。

**备注:**如果您想更改语言,请点击页面右下角语言设置。


b. 点击网页左上角的“ 服务”,找到 EC2,并点击。


c.  点击网页中的“启动实例”按钮


d. 在选择操作系统页面,选择 Ubuntu Server 20.04 LTS 当然也可以选择更高版本,不建议不懂的小伙伴选择 Ubuntu 以外的版本,并且在右侧选择系统版本为ARM。点击蓝色的“选择”按钮。

小提示:如果是免费套餐内的操作系统,会有标注“符合条件的免费套餐”。


e. 在选择实例类型页面,我们选择 t4g.micro,其中的字母g代表采用了 Graviton2 芯片。我们看到这个类型也标注了“可免费试用”。点击“ 下一步:配置实例详细信息”。


f. 去掉“积分规范”后面的复选框,避免产生额外费用。点击“下一步:添加存储”。


g. 在添加存储页面,我们将根卷大小更改为 30GB,为什么不选择更高呢?

亚马逊云科技提供的免费套餐最大为30GB,如果你想获得更多空间,可以考虑付费获得更多空间。


h. 点击“下一步:添加标签”。添加标签页无需任何修改,直接点击“下一步:配置安全组”,选择“创建一个新的安全组”,点击左下角的“添加规则”按钮,类型选择“http”,确认下端口范围为80,来源为0.0.0.0/0,代表任意IP可访问。后面::/0代表IPv6。点击右下蓝色按钮“审核和启动”。


i. 在核查实例启动页面,点击右下按钮“启动”。会让您创建密钥,用于登陆实例,按提示创建并保存即可。

3. 安装 NextCloud

接下来,要开始安装部署NextCloud。

先说说,我为啥要选择NC来搭配AWS来使用,总结起来:

跨平台:它有桌面版,安卓版以及 iOS 版本的客户端
同步盘:可以用于同步备份
协作盘:强大的多用户系统,可以多人协同工作和共享
开放性:WordPress 等很好集成

不得不说,就这几点,换做国内主流的网盘都做不全,即使小一点我也会用,而且之前用国外主流网盘的经验,15G的免费额度我都用不完。

a. 返回 EC2 服务界面,我们观察实例状态为“正在运行”,且状态检查为“2项检查已通过”。则代表已经创建成功,勾选实例前的复选框,点击右侧的“连接“按钮。


b. 我们使用 EC2 Instance Connect 从浏览器就可以登入 EC2 实例,如果失败,使用 console界面左下角语言切换,将 console 界面切换为英语,可以解决此问题。但有部分地区不支持 EC2 Instance Connect,如您碰到不支持 EC2 Instance Connect 的地区,可以参考下面教程中的“连接到实例”部分:启动EC2 Linux实例


c1. 登录到实例后,先安装开源网盘软件NextCloud,运行命令:

sudo snap install nextcloud

复制

c2. 安装完毕后会提示“nextcloud 22.1.1snap2 from Nextcloud✓ installed”,软件安装完成,需要配置用户名和密码,使用以下命令,其中xiayan替换为您的用户名,passw0rd替换为您的密码:

sudo nextcloud.manual-install xiayan passw0rd

复制

c3. 配置完成后,会显示“Nextcloud was successfully installed”。我们现在需要来配置信任域,如果您要使用IP来访问网盘,那么下面命令“value=”后面您写入刚才配置的弹性IP,如果您有自己的域名,后面会使用域名访问,那么下面命令“value=”后面写入您的域名,并将您的域名指向刚才配置的弹性IP。

sudo nextcloud.occ config:system:set trusted_domains 1 --value=替换为您的IP地址或域名

复制


d. 现在我们可以用浏览器打开刚才的IP地址或域名,注意使用 http,如果浏览器打开失败,可以尝试输入完成的地址,http://加上IP地址。用刚才配置的用户名密码登陆。但目前界面为英文,您可以点击右上角的个人设置,更改语言为中文。

5. 配置NextCloud后端存储为S3

a. 目前为止,网盘已经搭建完成,现在使用 30G 免费 EBS 作为网盘存储介质。如果您需要更大的空间,更好的持久性,我们可以配置网盘利用S3进行存储。点击右上角个人设置,选择“应用”,在“已禁用的应用”中找到 External storage support,点击“启用”。


b. 参考使用Amazon S3 存储和检索文件, 创建一个S3存储桶。创建存储桶后,我们还需要创建一个iam user。点击左上的服务,选择IAM。点击左侧“用户”,然后点击“添加用户按钮”。输入一个用户名,在访问类型选择“访问密钥”。


c. 在添加权限时,我们选择“直接附加现有策略”,然后在筛选策略中输入“s3”,勾选”AmazonS3FullAccess”。


d. 后面不用做更改,直接下一步至用户创建。提示用户创建成功后,会显示“访问密钥ID”和“私有访问密钥”。请记录下来。

在个人设置里,找到“外部存储”,选择添加存储,选择Amazon S3。


d. 在指定位置填入刚才创建的存储桶名称,存储桶所在区域代码,应确保S3和EC2实例在同一区域,否则会有额外费用。区域代码查询见此链接:区域和可用区. 另外也需要填入刚才记录的访问密钥ID”和“私有访问密钥”,点右侧的对勾,如果添加成功,左侧会有绿色圆形图标提示,如右图:


EC2 实例主机,并且包含 35GB 存储空间,传入流量完全免费,每月传出流量 1GB 内免费。您可能担心,如果每月的免费额度用尽会造成收费,那么您可以通过以下设置,在您的亚马逊云科技服务使用量接近或超过 AWS 免费套餐使用量限制时接收电子邮件提醒。登陆您海外区亚马逊云科技控制台,打开控制台首选项页面,勾选“接收免费套餐使用量提醒”,填入您的电子邮件地址,这样您就无需担心造成费用。

免费搭建私人网盘

4. 关于IP问题

很多小伙伴,前面几步走完了之后,发现访问不了自己的网盘,大多数人遇到的都是临时IP的问题,在创建完实例之后,需要做一下固定IP。

a. 这样创建出的实例只分配了临时 IP,我们需要给实例分配一个固定IP地址,我们点击左上角“服务”, 找到 VPC


b. 进入到 VPC 点击左侧“ 弹性IP”,再点击右侧“ 分配弹性IP地址”,得到一个固定IP地址。选中这个地址,点击“ 操作”按钮,选择“ 关联弹性IP地址”,在关联页面选择刚才创建的实例,将固定IP与刚才创建实例相关联。请记下这个固定 IP,后面会使用它来访问网盘。

如何衡量采用亚马逊科技AWS云+NextCloud组合方案的费用问题

本来,我们就是采用的免费套餐方案,其实10-15G的免费容量足够满足绝大多数人的需求。亚马逊云的30G搭建一个私人网盘绰绰有余。我们可以从 免费套餐页面看到亚马逊云哪些服务具备免费套餐:

服务名称 免费套餐 套餐有效期
Amazon EC2(主机服务) 免费套餐
Amazon S3(对象存储服务) 5GB标准存储免费,超过部分每GB 约0.023USD(具体取决于区域) 注册起12个月内免费
Amazon EBS (块存储服务) 30GB 注册起12个月内免费
数据传输 数据自互联网传入免费 永久
数据传出互联网每月1GB内免费,超过部分每GB 约0.09USD(具体取决于区域) 永久

EC2实例主机,并且包含35GB存储空间,传入流量完全免费,每月传出流量1GB内免费。您可能担心,如果每月的免费额度用尽会造成收费,那么您可以通过以下设置,在您的亚马逊云科技服务使用量接近或超过 AWS 免费套餐使用量限制时接收电子邮件提醒。登陆您海外区亚马逊云科技控制台,打开控制台首选项页面,勾选“接收免费套餐使用量提醒”,填入您的电子邮件地址,这样您就无需担心造成费用。

配置CloudFront CDN加速网盘的访问,CloudFront也有50GB的免费套餐。也可以将网盘配置为https,访问更为安全。

我相信,绝大多数小伙伴都认可为好的产品付费是值得的,按此方案,即使免费套餐过期,EC2云服务器实例可以转为包年。

免费搭建私人网盘

© 版权声明