利用亚马逊 云服务器 EC2 和S3免费套餐搭建私人网盘

网盘是一种在线存储服务,提供文件存储,访问,备份,贡献等功能,是我们日常中不可或缺的一种服务。很多互联网公司都为个人和企业提供免费的网盘服务。但这些免费服务都有一些限制,比如限制下载速度,限制文件大小,不能多人同时管理,不能实现一些定制化功能。如果想取消这些限制,就要付费。现在我给大家介绍一种免费,且功能无限制的私人网盘。我们可以利用开源的网盘软件 NextCloud:Nextcloud - Open source content collaboration platform,配合亚马逊云科技提供的免费服务额度,来搭建一个没有使用限制的私人网盘。教程非常简单,这个安装过程仅需三行命令,希望可以帮助到您。

成本优势

由于亚马逊云科技服务种类较多,且计费详细,很多用户有些看不懂,所以对使用亚马逊云望而却步。其实亚马逊云科技很多服务都有免费套餐,以让用户体验,这些服务的免费套餐,搭建一个私人网盘绰绰有余。由于亚马逊云海外区仅需个人信用卡就可以注册,所以我们以海外区为例。我们可以从以下链接亚马逊AWS海外区域账户免费套餐_免费云服务-AWS云服务 看到亚马逊云哪些服务具备免费套餐:

image.png

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

上表列出了一部分亚马逊云的免费服务额度,可以看出,如果您新注册了一个亚马逊云账号,就可以免费使用一年一台 EC2 实例主机,并且包含35GB 存储空间,传入流量完全免费,每月传出流量 1GB 内免费。您可能担心,如果每月的免费额度用尽会造成收费,那么您可以通过以下设置,在您的亚马逊云科技服务使用量接近或超过 Amazon Web Services 免费套餐使用量限制时接收电子邮件提醒。登陆您海外区亚马逊云科技控制台,打开下面链接:https://console.aws.amazon.com/billing/home#/preferences?trk=cndc-detail ,勾选“接收免费套餐使用量提醒”,填入您的电子邮件地址,这样您就无需担心造成费用。

技术优势

众所周知,亚马逊云科技为很多跨国公司提供稳定的企业级云服务。将网盘架设在亚马逊云上,依托亚马逊云提供的企业级服务,使网盘性能更加卓越和稳定。NextCloud 是一款基于 php 开发的开源网盘应用。当您选择亚马逊云科技的 Graviton2 运行 php7.4 版本代码时,性能提升多达30%。(数据来源:Improving performance of PHP for Arm64 and impact on AWS Graviton2 based EC2 instances | AWS Compute Blog )另外,作为网盘存储介质的Amazon S3 可达到 99.999999999%(11 个 9)的持久性,并为全球各地的公司存储数百万个应用程序的数据。所以,您无需担心数据丢失。

操作指南:创建实例:

  • 首先我们先选择一个在中国访问较快的亚马逊云海外区域,这里拿新加坡为例。 在网页右上角切换区域为新加坡。

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

  • 点击网页中的“启动实例”按钮。

  • 在选择操作系统页面,我们选择 Ubuntu Server 20.04 LTS,并且在右侧选择系统版本为 ARM。点击蓝色的“选择”按钮。在这里我们注意到,如果是免费套餐内的操作系统,会有标注“符合条件的免费套餐”。

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

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

  • 在添加存储页面,我们将根卷大小更改为 30GB,因为亚马逊云提供的免费套餐最大为 30GB。点击“下一步:添加标签”。

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

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

操作指南:分配固定 IP

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

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

操作指南:安装 NextCloud

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

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

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

sudo snap install nextcloud

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

sudo nextcloud.manual-install xiayan passw0rd

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

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

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

操作指南:配置 NextCloud 后端存储为 S3

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

  • 参考 ent-M-DET如何将文件备份到 Amazon S3 – Amazon Web Services 创建一个 S3 存储桶。创建存储桶后,我们还需要创建一个 iam user。点击左上的服务,选择 IAM。点击左侧“用户”,然后点击“添加用户按钮”。输入一个用户名,在访问类型选择“访问密钥”。

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

  • 后面不用做更改,直接下一步至用户创建。提示用户创建成功后,会显示“访问密钥 ID”和“私有访问密钥”。请记录下来。
  • 在个人设置里,找到“外部存储”,选择添加存储,选择 Amazon S3。

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

  • 我们可以在网盘列表中找到新建的 Amazon S3 目录,存在此目录的文件是放置于 S3 之上,拥有11个9的持久性。

结论

至此基于 Graviton2 和 S3 免费套餐的私有网盘就已经搭建成功了。NextCloud 有桌面版,安卓版以及 iOS 版本的客户端,可以用于同步备份,也有强大的多用户系统,可以多人协同工作和共享,也能和 wordpress 等很好集成。本文只是做了抛砖引玉,还有很多提高的地方,比如配置 CloudFront CDN 加速网盘的访问,CloudFront 也有50GB 的免费套餐。也可以将网盘配置为 https,访问更为安全。为好的产品付费是值得的,按此方案,即使免费套餐过期,EC2 实例可以转为包年,每月仅需4.58USD,S3 存储每月每 GB 仅需0.023USD。

文章来源:
https://dev.amazoncloud.cn/column/article/650a7cf921a60a3e627e6b25?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/141131.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3 封装 element-plus 图标选择器

一、实现效果 二、实现步骤 2.1. 全局注册 icon 组件 // main.ts import App from ./App.vue; import { createApp } from vue; import * as ElementPlusIconsVue from element-plus/icons-vueconst app createApp(App);// 全局挂载和注册 element-plus 的所有 icon app.con…

WebGL 选中物体

目录 前言 如何实现选中物体 示例程序(PickObject.js) 代码详解 gl.readPixels()函数规范 示例效果 前言 有些三维应用程序需要允许用户能够交互地操纵三维物体,要这样做首先就得允许用户选中某个物体。对物体…

大模型存在“反转诅咒”现象,无法处理反向问题;Langchain课程资源

🦉 AI新闻 🚀 大模型存在“反转诅咒”现象,无法处理反向问题 摘要:最新研究发现,大语言模型存在“反转诅咒”现象,即明知道“A 是 B”,却答不出“B 是 A”。研究人员进行了两项实验&#xff0…

php万能表单系统源码 支持自定义+收费表单活动报名 适合多行业

在众多的表单系统中,PHP万能表单系统因其灵活性和可扩展性备受开发者的青睐。PHP万能表单系统是一款基于PHP语言的表单生成器,它可以帮助开发者快速生成各种类型的表单,如注册、登录、留言等。下面给大家分享一款php万能表单系统源码&#xf…

【详细图文】Windows下安装RustRover和配置Rust环境

前言 Rust已经火了挺长时间了,连微软的Windows内核都用它来重新改写,可想而知其厉害之处。之前有看过Rust的教程,但一直没有去尝试。今天看到JetBrains出了Rust 专用的IDE:RustRover。作为JetBrains的粉丝,决定进行一…

Linux环境下使用SVN快速访问资料库?试试使用cpolar端口映射

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

Kotlin | 在for、forEach循环中正确的使用break、continue

文章目录 for循环中使用break、continueLabel标签forEach中模拟break、continue资料 Kotlin 有三种结构化跳转表达式: return:默认从最直接包围它的函数或者匿名函数返回。break:终止最直接包围它的循环。continue:继续下一次最直…

git 常用命令分享

git官网地址:https://git-scm.com/ 1.设置用户名 邮箱 设置用户名: git config --global user.name “name” 设置邮箱: git config --global user.email "email" 2.查看设置的信息 git config --list 以上设置的信息在用户目录下&#xff1…

lazada商品详情数据接口,支持多个国家站点

Lazada商品详情数据接口是一个RESTful风格的接口,通过HTTP协议来访问和操作资源。 Lazada商品详情API接口的使用方法如下: 获取Lazada平台上指定商品的详细信息,包括商品名称、价格、库存、分类、描述、图片等。支持通过商品ID、SKU、Selle…

有效的括号(栈的高频面试题)

一、题目描述 题目连接:有效的括号 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺…

Generative AI 新世界 | 扩散模型原理的代码实践之采样篇

在上一期的文章中,探讨了在 Amazon SageMaker Studio 上使用 QLoRA 等量化技术微调 Falcon 40B 大语言模型。而从本期开始,我们将一起尝试在更深的知识维度,继续探究生成式 AI 这一火热的新知识领域。 亚马逊云科技开发者社区为开发者们提供全…

工作薄代码之将活动工作表复制到新工作簿等

【分享成果,随喜正能量】得失,可以说是人类事业上的考验,不要因一时的得失影响一生的期许。得失是一时的,理想是一生的。。 我给VBA下的定义:VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xf…

定时器之输出捕获

简介 • IC ( Input Capture )输入捕获 • 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前 CNT 的值将被锁存到 CCR 中,可用于测量 PWM 波形的频率、占空比、脉冲间隔、电平持续时间等参数 • 每个高级定时器和…

多线程进阶:Callable和JUC的常见类

Callable 这是一个接口,类似于Runnable。 Runnable用来描述一个任务,描述的任务没有返回值。 Callable也是用来描述一个任务,描述的任务是有返回值的。 如果需要使用一个线程单独的计算出某个结果来,此时用Callable是比较合适…

【好玩的开源项目】Windows 12网页版的部署与使用体验

【好玩的开源项目】Windows 12网页版的部署与使用体验 一、Windows 12网页版介绍1.1 Windows 12网页版简介1.2 项目地址 二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍 三、安装httpd软件3.1 检查yum仓库3.2 安装httpd软件3.3 启动httpd服务3.4 查看httpd服务3.5 防火墙和…

springboot+canal+mysql+redis缓存双写一致性

canal官网地址:https://github.com/alibaba/canal/wiki/QuickStart 基本上按照官网的步骤来就行 准备 首先服务器上要安装好jdk,因为canal运行需要jdk,同时把canal对应的端口在服务中开放,否则连接不上 对于自建 MySQL , 需要先开启 Binl…

QT-day5

1、添加注册功能到数据库 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMessageBox> //消息对话框类头文件 #include <QDebug> #include <QPushButton> #include <QSqlDatabase> //数据库管理类 #include…

ChatGPT详细搭建教程+支持AI绘画

一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统&#xff1f;小编这里写一个详细图文教程吧&#x…

SpringBoot 之配置加密

Jasypt库的使用 Jasypt是一个Java简易加密库&#xff0c;用于加密配置文件中的敏感信息&#xff0c;如数据库密码。 Jasypt库与springboot集成&#xff0c;在实际开发中非常方便。 1、引入依赖 <dependency><groupId>com.github.ulisesbocchio</groupId>&…

构建工具Webpack简介

一、构建工具 当我们习惯了Node中使用ES模块化编写代码以后&#xff0c;用原生的HTML、CSS、JS这些东西会感觉到各种不便。比如&#xff1a;不能放心的使用模块化规范&#xff08;浏览器兼容性问题&#xff09;、即使可以使用模块化规范也会面临模块过多时的加载问题。 这时候…