利用Graviton2和S3免费套餐搭建私人网盘
成本优势
由于亚马逊云科技服务种类较多,且计费详细,很多用户有些看不懂,所以对使用亚马逊云望而却步。其实亚马逊云科技很多服务都有免费套餐,以让用户体验,这些服务的免费套餐,搭建一个私人网盘绰绰有余。由于亚马逊云海外区仅需个人信用卡就可以注册,所以我们以海外区为例。我们可以从以下链接亚马逊AWS海外区域账户免费套餐_免费云服务-AWS云服务 看到亚马逊云哪些服务具备免费套餐:
| 服务名称 | 免费套餐 | 套餐有效期 |
| Amazon EC2(主机服务) | 每月750小时的Linux或Windows t2.micro、t3.micro、t4g.micro实例(具体取决于区域) | 注册起12个月内免费 |
| Amazon S3(对象存储服务) | 5GB标准存储免费,超过部分每GB 约0.023USD(具体取决于区域) | 注册起12个月内免费 |
| Amazon EBS (块存储服务) | 30GB | 注册起12个月内免费 |
| 数据传输 | 数据自互联网传入免费 | 永久 |
| 数据传出互联网每月1GB内免费,超过部分每GB 约0.09USD(具体取决于区域) | 永久 |
上表列出了一部分亚马逊云的免费服务额度,可以看出,如果您新注册了一个亚马逊云账号,就可以免费使用一年一台EC2实例主机,并且包含35GB存储空间,传入流量完全免费,每月传出流量1GB内免费。您可能担心,如果每月的免费额度用尽会造成收费,那么您可以通过以下设置,在您的亚马逊云科技服务使用量接近或超过 AWS 免费套餐使用量限制时接收电子邮件提醒。登陆您海外区亚马逊云科技控制台,打开下面链接:https://console.aws.amazon.com/billing/home#/preferences ,勾选“接收免费套餐使用量提醒”,填入您的电子邮件地址,这样您就无需担心造成费用。

技术优势
众所周知,亚马逊云科技为很多跨国公司提供稳定的企业级云服务。将网盘架设在亚马逊云上,依托亚马逊云提供的企业级服务,使网盘性能更加卓越和稳定。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地址或域名
- 现在我们可以用浏览器打开刚才的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”和“私有访问密钥”,点右侧的对勾,如果添加成功,左侧会有绿色圆形图标提示,如下图:

- 我们可以在网盘列表中找到新建的AmazonS3目录,存在此目录的文件是放置于S3之上,拥有11个9的持久性。
结论
至此基于Graviton2和S3免费套餐的私有网盘就已经搭建成功了。NextCloud有桌面版,安卓版以及iOS版本的客户端,可以用于同步备份,也有强大的多用户系统,可以多人协同工作和共享,也能和wordpress等很好集成。本文只是做了抛砖引玉,还有很多提高的地方,比如配置CloudFront CDN加速网盘的访问,CloudFront也有50GB的免费套餐。也可以将网盘配置为https,访问更为安全。为好的产品付费是值得的,按此方案,即使免费套餐过期,EC2实例可以转为包年,每月仅需4.58USD,S3存储每月每GB仅需0.023USD。
from:亚马逊
相关文章:
利用Graviton2和S3免费套餐搭建私人网盘
网盘是一种在线存储服务,提供文件存储,访问,备份,贡献等功能,是我们日常中不可或缺的一种服务。很多互联网公司都为个人和企业提供免费的网盘服务。但这些免费服务都有一些限制,比如限制下载速度࿰…...
跟着GPT学设计模式之单例模式
单例设计模式(Singleton Design Pattern)一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。 单例有几种经典的实现方式,…...
【MySQL索引与优化篇】数据库调优策略
数据库调优策略 文章目录 数据库调优策略1. 数据库调优的措施1.1 调优目标1.2 如何定位调优问题1.3 调优的维度和步骤第1步:选择合适的DBMS第2步:优化表设计第3步:优化逻辑查询第4步:优化物理查询第5步:使用 Redis 或 …...
基于BP神经网络的风险等级预测,BP神经网络的详细原理,
目录 背影 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 代码链接:基于BP神经网络的风险等级评价,基于BP神经网络的风险等级预测(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.n…...
最新Ai智能创作系统源码V3.0,AI绘画系统/支持GPT联网提问/支持Prompt应用+搭建部署教程
一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...
项目资源不足,常见的5种处理方式
软件开发中,经常会遇到项目资源不足的情况,项目团队如果无法及时获得所需的人力、财力、物力等资源,往往会影响团队士气以及任务质量,造成无法按时完成任务,进而影响项目进度。 因此及时处理和应对资源不足的情况&…...
ER图设计神器,帮你省时省力,高效完成工作!
ER图(Entity-Relationship Diagram)工具用于设计数据库模型,通常用于表示数据实体、关系和属性之间的关系。以下是10个好用的ER图工具。 一、Lucidchart Lucidchart 是一款基于云的协作式图表设计工具,它允许用户创建、编辑和共享…...
Notepad++下载、使用
下载 https://notepad-plus-plus.org/downloads/ 安装 双击安装 选择安装路径 使用 在文件夹中搜索 文件类型可以根据需要设置 如 *.* 说明是所有文件类型; *.tar 说明是所有文件后缀是是tar的文件‘;...
基于若依的ruoyi-nbcio流程管理系统增加仿钉钉流程设计(一)
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 仿钉钉的开源项目网上也不少,而且很多功能已经也比较完善了,但大部分都不是MIT协议…...
【知网检索征稿】第九届社会科学与经济发展国际学术会议 (ICSSED 2024)
第九届社会科学与经济发展国际学术会议 (ICSSED 2024) 2024 9th International Conference on Social Sciences and Economic Development 第九届社会科学与经济发展国际学术会议(ICSSED 2024)定于2024年3月22-24日在中国北京隆重举行。会议主要围绕社会科学与经济发展等研究…...
带你人工识别C#开源库BarcodeLib生成的一维码Code128
我们是做HIS系统开发的,前段时间发现某些处方的一维码出现无法识别的情况。看了一下一维码生成的逻辑,使用到了BarcodeLib库,经过反复确认,我们程序是没有问题的。后面不得不反编译看一下BarcodeLib生成一维码的逻辑。最后调整一维…...
软考 系统架构设计师系列知识点之系统架构评估(6)
接前一篇文章:软考 系统架构设计师系列知识点之系统架构评估(5) 所属章节: 第8章. 系统质量属性与架构评估 第2节. 系统架构评估 8.2.1 系统架构评估中的重要概念 相关试题 3. 正确识别风险点、非风险点、敏感点和权衡点是进行软…...
指挥通信车360度3d虚拟互动展示系统的优势及特点
通信车是装有通信装备,用于保障通信联络的专用车辆,用于偏僻/特殊环境下的机动通信。并且机动通信局装备通常分为应急综合通信车、网络管理车、程控电话车、自适应跳频电台车、数字扩频接力车、散射通信车、卫星通信车、光缆引接车、线缆收放车和通信电源…...
根据Aurora发送时序,造Aurora 发送数据包
首先Aurora采用AXIS接口 由于后续需要进行AXIS接口 不同时钟域的数据位宽转换(64bit和256bit之间的转换),因此分两次走。 第一种方法:采用AXIS数据位宽转换IP AXIS跨时钟域IP 第二种方法:逻辑完成 下面记录逻辑…...
vue实现一个账号在同一时间只有一个能登录的效果
目录 1.实现方法 2.实现示例 1.实现方法 要实现一个账号在同一时间只有一个能登录的效果,你可以使用以下步骤来实现: 在后端服务器端设置一个标志位,用于标记用户是否已登录。这个标志位可以存储在数据库中或者缓存在服务器内存中。当用户…...
react-hook-form。 useFieldArray Controller 必填,报错自动获取较多疑问记录
背景 动态多个数据Controller包裹时候,原生html标签input可以add时候自动获取焦点,聚焦到最近不符合要求的元素上面 matiral的TextField同样可以可是x-date-pickers/DatePicker不可以❌ 是什么原因呢,内部提供foucs??属…...
最近收藏的各类好用API接口,含免费次数
IP应用场景- IPv4:IPv4应用场景是获取IP场景属性的在线调用接口,具备识别IP真人度,提升风控和反欺诈等业务能力。IP应用场景基于地理和网络特征的IP场景划分技术,将IP划分为含数据中心、交换中心、家庭宽带、CDN、云网络等共计18类…...
第01章 Linux下MySQL的安装与使用
第01章 Linux下MySQL的安装与使用 1. 安装前说明 1.1 查看是否安装过MySQL 如果你是用rpm安装, 检查一下RPM PACKAGE: rpm -qa | grep -i mysql # -i 忽略大小写检查mysql service: systemctl status mysqld.service1.2 MySQL的卸载 1. 关闭 mysql…...
kafka入门教程,介绍全面
1、官网下载最新版本的kafka,里面已经集成zookeeper。直接解压到D盘 2、配置文件修改,config目录下面的zookeeper.properties. 设置zookeeper数据目录 dataDirD:/kafka_2.12-3.6.0/tmp/zookeeper 3、修改kafka的配置文件server.properties. 主要修…...
万字解析设计模式之原型模式与建造者模式
一、原型模式 1.1概述 原型模式是一种创建型设计模式,其目的是使用已有对象作为原型来创建新的对象。原型模式的核心是克隆,即通过复制已有对象来创建新对象,而不是通过创建新对象的过程中独立地分配和初始化所有需要的资源。这种方式可以节…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
