【数据库】如何创建一个非常便宜的无服务器数据库

2023-11-19

云对象存储可以用作功能强大且非常便宜的数据库

c5a89a563739ac195964b469e7ccc203.jpeg

您是否相信您可以使用完全托管、可大规模扩展、高度可用且价格低廉的无服务器数据库,每月只需 5 美元,您就可以存储数亿条记录并读写数十亿条记录?如果您的数据库需求可以通过非常简单的键值存储来满足,则可以。解决方案是使用廉价的云对象存储。

亚马逊于 2006 年发布了他们的 S3(简单存储服务)对象存储产品。从那时起,所有其他主要的云服务提供商以及许多其他云提供商都提供了对象存储解决方案。
对象存储可用于存储照片、视频、备份等,但也可用于存储数据。数据可以以任何您想要的格式存储,例如 JSON、BSON、XML、CSV、协议缓冲区、MessagePack、纯文本或任何其他数据序列化格式。
对象存储在桶中。存储桶通常可以在全球特定区域的数据中心创建。这使您可以使您的数据更接近将要访问数据的用户。对于某些提供商,可以将存储桶配置为网站,从而允许您将对象存储用作廉价的网站主机。


价钱


对象存储相对于无服务器数据库的主要优势在于价格。存储成本通常为每 GB 1 美分至 2 美分,而最便宜选项的出站网络成本通常为每 GB 1 美分。
许多对象存储产品还对读取和写入 API 请求收费。如果你使用对象存储作为数据库解决方案,如果你每个月收到数亿或数十亿的请求,这可能会大大增加你的成本,所以最好避免对读写请求收费的产品。有很多解决方案不对请求收费。在下表中,Read 和 Write 列表示每百万请求中的美分。带有“-”的产品没有请求费用。

5ecb218a372ce59524cc485175f08e3b.png

为了进行比较,以下是一些无服务器数据库的相同定价。(请参阅“移动或Web应用的无服务器数据库”。)budget object存储产品的价格只是无服务器数据库的一小部分。

0d7bcd6863872641d80c1ca89bda18bd.png

下表显示了一些具有不同存储量和读写请求的对象存储服务和数据库的每月成本。记录大小假定为 500,但最后两列除外,它们的记录大小为 100 小和 4000 大。这表明,在您开始存储和读取和写入数亿条记录之前,定价实际上变化不大。然而,除此之外,您选择的产品可能会产生很大的不同。

bd633ed964fe43cd57d0dae1ce7dfbf3.png

访问数据


大多数对象存储产品都与亚马逊的 S3 REST API 兼容。两个主要的例外是 Google 和 Azure。S3 兼容性意味着您可以使用为 S3 构建的工具和 SDK。您还可以轻松切换供应商,避免供应商锁定,或者只需更改访问 URL 即可使用多个供应商。


简单的 S3 REST API 非常适合移动和 Web 应用程序使用,无需单独的 API 服务器即可直接访问数据。
对象以扁平结构存储在存储桶中,没有文件系统中的层次结构。但是,您可以使用路径分隔符来模拟这种情况,通常是“/”。例如,“photos/photo1.jpg”创建一个模拟的“photos”文件夹,其中包含“photo1.jpg”。
S3 API 允许您读取、写入和删除对象。对象通过其唯一键访问,可能类似于文件名。无法进行诸如“SELECT * FROM Employees WHERE City='San Diego'”之类的查询。这可能会极大地限制您将对象存储用作数据库的方式,但是在许多应用程序中,您所需要的只是通过 id 访问数据。


使用对象存储也无法进行记录更新。对记录的任何更改都是通过重写整个记录来完成的。


存储桶和对象具有访问权限来限制谁可以读取和写入。可以向存储桶和/或对象授予公共访问权限,以允许任何人读取或写入。


性能


对象存储性能通常非常好,即使与常规数据库相比也是如此。我验证了一些对象存储产品的响应时间,发现时间为 50 毫秒 - 300 毫秒。我在无服务器数据库中发现了类似的结果。尽管数据库通常可以在不到 10 毫秒的时间内访问数据,但当请求和响应通过 Internet 传输时,访问时间会大大增加。


速率限制


请注意,提供商通常对每秒可以发出的请求数有限制。限制可能足够高,您不会受到影响。并非所有提供商都指定其速率限制。谷歌是唯一声称他们会扩展以满足您的请求率的公司。
AWS 每个前缀(文件夹)每秒可以读取 5,500 个对象并写入 3,500 个对象。如果您需要更多请求,请将数据拆分到文件夹中。


备份


执行数据库备份通常是为了避免在服务器故障的情况下丢失数据或从用户或应用程序错误中恢复数据。
数据库持久性是衡量提供商可以保证您的数据不会丢失的程度,通常表示为包含许多 9 的百分比。例如,10 个九的持久性将是 99.999999%。在主要供应商中,AWS 和 Google 获得 11 个 9,Azure 获得 12 个。通过在位于不同地理区域的数据中心复制数据来增强耐用性。由于高持久性,可能不需要备份对象存储数据。
几乎每个对象存储提供程序都允许您对对象进行版本控制。这意味着每次用更新替换对象时,旧对象都会保留一个版本号,从而可以返回到以前的版本。这在用户或应用程序错误的情况下提供了自动备份。

产品详情


AWS S3


AWS S3 是比较所有其他对象存储产品的黄金标准。S3 的定价与其他供应商的同类产品类似。

  • 优点:庞大的 AWS 系统的一部分;稳定安全;非常高的速率限制;世界各地的许多数据中心

  • 缺点:请求费用


AWS Lightsail


Lightsail 是 AWS 的一个部门,拥有服务器和其他一些云产品,这些产品的定价可以与 DigitalOcean 等预算云提供商竞争。与常规 AWS 产品相比,Lightstail 产品通常也更容易设置和使用。
2021 年 7 月,Lightsail 宣布了一款基于 AWS S3 的廉价对象存储产品。这在某种程度上改变了游戏规则。您似乎以更低的价格获得了 S3 的所有好处。捆绑包每月 1、3 或 5 美元,存储空间为 5、100 或 250 GB,网络传输为 25、250 或 500 GB。超出这些限制的存储和网络按正常 S3 费率收费。但是,在捆绑限制之内或之外都没有请求费用。
5 美元的计划使 S3 的价格类似于 DigitalOcean、Linode 和 Vultr 提供的预算计划。但是,与其他预算提供商的计划不同,Lightsail 捆绑包似乎仅限于单个存储桶。如果您需要在世界各地设置多个存储桶,一个好的定价策略可能是设置多个 1 美元存储桶,然后根据需要增加到 3 美元或 5 美元存储桶。Lightsail 允许您在计费期间切换一次定价计划。

  • 优点:与 S3 相同,但价格便宜得多;无申请费;低 1 美元的最低价格


Azure Blob 存储


Azure 对象存储称为 blob 存储。

  • 优点:庞大的 Azure 系统的一部分;稳定安全;非常高的速率限制;世界各地的许多数据中心

  • 缺点:请求费用;不兼容 S3


谷歌云存储


谷歌云存储是谷歌的对象存储产品。

  • 优点:庞大的 Google Cloud 系统的一部分,稳定且安全,无限制的速率限制,遍布全球的许多数据中心,3 个区域的免费选项(5GB 存储,5,000 次写入/月,50,000 次读取/月,1GB 网络/月)

  • 缺点:总是免费限制后的请求费用;任何提供商的最高网络费率;不兼容 s3


Firebase


Firebase 是一家 Google 公司,以合理的价格提供大量云产品,这些产品通常易于设置和使用。凭借大量的免费选项,许多公司可以免费使用 Firebase Cloud Storage。

  • 优点:与 Google 相同,但有更好的免费选项(每天 20K 写入、每天 50K 读取、每天 1GB 网络)

甲骨文云


Oracle 云对象存储的定价比其他大型提供商更优惠。

  • 优点:写请求的价值;前 10TB/月没有网络费用,之后非常便宜

  • 缺点:请求费用;高存储价格

阿里巴巴


阿里巴巴的对象存储服务(OSS)是一个非常划算的选择。有一个即用即付计划或具有存储和网络限制的计划,可以节省一点成本。中国有21个数据中心,其中10个。

  • 优点:世界各地的许多数据中心;除非您达到每月 5 亿次请求,否则没有请求费用的良好定价


DigitalOcean


DigitalOcean 是一家规模较小的云公司,提供易于快速部署且价格低于大型云提供商的服务器和数据库。他们的对象存储被称为 Spaces,是第一个提供 250GB 存储、1TB 出站传输和无请求费用且每月 5 美元的惊人低价。任何超出限制的存储或网络都以非常损失的价格收费。这种费用结构非常适合将对象存储用作非常便宜的数据库。
Spaces 的一个问题是速率限制。每个空间(存储桶)限制为大约 200 个请求/秒。如果这是一个问题,您可以通过使用多个空格来解决这个问题。您最多可以在同一帐户中创建 100 个空间。(我发现一些用户在访问 Spaces 的速度远低于 200/秒时遇到了问题。)

  • 优点:难以置信的价值

  • 缺点:速率限制可能会限制某些用户;只有 5 个数据中心

Linode


Linode 类似于 DigitalOcean,以易于部署的高价格提供云服务。他们的对象存储产品定价与 DigitalOcean 相同。

  • 优点:难以置信的价值

  • 缺点:只有 4 个数据中心

Vultr


Vultr 类似于 DigitalOcean 和 Linode。他们的对象存储产品的价格与其他两个相同。

  • 优点:难以置信的价值

  • 缺点:新泽西州只有 1 个数据中心

Exoscale


Exoscale 的对象存储在欧洲的 6 个数据中心中具有竞争力的价格。

  • 优点:物有所值

  • 缺点:数据中心仅在欧洲

Scaleway


Scaleway 的对象存储在欧洲拥有 3 个数据中心,价格极具竞争力。您每月可获得 75GB 的存储空间和免费网络。

  • 优点:非常好的定价和免费套餐

  • 缺点:数据中心仅在欧洲

Wasabi


Wasabi 只做一件事,那就是对象存储。他们提供任何其他提供商的最优惠价格。读取、写入或网络不收取任何费用。唯一的成本是 0.006 美元/GB 的存储成本,这非常便宜。
但是,定价常见问题解答揭示了一些可能使 Wasabi 不适合用作数据库的细节。对象的最短持续时间为 90 天。如果一个对象在 90 天之前被删除,它仍被计为整个 90 天的存储。如果在 90 天内多次更新对象会发生什么,似乎没有任何文档说明。
然后是这样的:“如果您每月的出口数据传输量大于您的活动存储量,那么您的存储用例就不适合 Wasabi 的免费出口政策。”并且:“如果您的用例经常超出我们免费 API 请求政策的指导方针,我们保留限制或暂停您的服务的权利。”

  • 优点:总体最优价格

  • 缺点:限制可能禁止使用芥末作为数据库

Backblaze B2


Backblaze 进行计算机备份和 B2 对象存储。B2 的存储价格最低,为 0.005GB/月,下载价格非常低,为 0.01GB/月。但是,它确实会为读取请求收取典型的每百万美元 0.40 美元。如果您每月不处理数亿或数十亿个请求,这可能是一个不错的选择。

  • 优点:价格优惠

  • 缺点:阅读请求费;只有 3 个数据中心;无法选择数据中心

Tebi


Tebi 是一个非常新的组织,只做对象存储。它们的主要功能是实时复制到其他服务器,以使数据更接近用户。不幸的是,他们目前只有 4 个数据中心。

  • 优点:价格优惠;免费提供 25GB 存储空间和 250GB 网络

  • 缺点:只有 4 个数据中心;很新,所以没有经过时间的考验

注释


如果您使用对象存储作为数据库解决方案,我很想听听您的意见。我目前只在一个使用 Cloud Storage for Firebase 的网络应用程序上完成了这项工作,而且效果非常好。我目前正在评估一种产品的对象存储选项,该产品需要相当多的存储空间,每月可能有数亿个请求。

本文 :https://architect.pub/how-create-very-inexpensive-serverless-database
讨论:知识星球【首席架构师圈】或者加微信小号【ca_cto】或者加QQ群【792862318】
公众号
 
【jiagoushipro】
【超级架构师】
精彩图文详解架构方法论,架构实践,技术原理,技术趋势。
我们在等你,赶快扫描关注吧。
微信小号
 
【ca_cea】
50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.
 

QQ群
 
【285069459】深度交流企业架构,业务架构,应用架构,数据架构,技术架构,集成架构,安全架构。以及大数据,云计算,物联网,人工智能等各种新兴技术。
加QQ群,有珍贵的报告和干货资料分享。

视频号 【超级架构师】
1分钟快速了解架构相关的基本概念,模型,方法,经验。
每天1分钟,架构心中熟。

知识星球 【首席架构师圈】向大咖提问,近距离接触,或者获得私密资料分享。  

喜马拉雅 【超级架构师】路上或者车上了解最新黑科技资讯,架构心得。 【智能时刻,架构君和你聊黑科技】
知识星球 认识更多朋友,职场和技术闲聊。 知识星球【职场和技术】
领英 Harry https://www.linkedin.com/in/architect-harry/
领英群组 领英架构群组 https://www.linkedin.com/groups/14209750/
微博‍‍ 【超级架构师】 智能时刻‍
哔哩哔哩 【超级架构师】

抖音 【cea_cio】超级架构师

快手 【cea_cio_cto】超级架构师

小红书 【cea_csa_cto】超级架构师  

网站 CIO(首席信息官) https://cio.ceo
网站 CIO,CTO和CDO https://cioctocdo.com
网站 架构师实战分享 https://architect.pub   
网站 程序员云开发分享 https://pgmr.cloud
网站 首席架构师社区 https://jiagoushi.pro
网站 应用开发和开发平台 https://apaas.dev
网站 开发信息网 https://xinxi.dev
网站 超级架构师 https://jiagou.dev
网站 企业技术培训 https://peixun.dev
网站 程序员宝典 https://pgmr.pub    
网站 开发者闲谈 https://blog.developer.chat
网站 CPO宝典 https://cpo.work
网站 首席安全官 https://cso.pub    ‍
网站 CIO酷 https://cio.cool
网站 CDO信息 https://cdo.fyi
网站 CXO信息 https://cxo.pub

谢谢大家关注,转发,点赞和点在看。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【数据库】如何创建一个非常便宜的无服务器数据库 的相关文章

随机推荐

  • Linux查看当前文件夹的大小

    在Linux中 可以使用du disk usage 命令来查看当前文件夹的大小 以下是一些使用du的方法 查看当前文件夹的大小 为了查看当前文件夹的总大小 可以在文件夹中运行 du sh 这里 s 表示摘要模式 只显示总计 h 表示人类可读
  • ElasticSearch - function_score 实例说明

    官方说明 function score 通过实例说明 先准备数据和索引 在ES插入三笔数据 其中language是keywork类型 like是integer类型 代表点赞量 language java like 5 language py
  • 《QDebug 2023年3月》

    一 Qt Widgets 问题交流 二 Qt Quick 问题交流 三 其他 1 Qt qmake 在 Mac 上生成 dylib 相关的问题 默认的 lib 工程 qmake 输出如图 会生成带版本号的软链接 一般我们只需要一个 lib
  • 二分法求左右边界

    二分法求左右边界搞定 鉴于本人每次做二分的题都被二分的边界搞的云里雾里的 所以这次直接一劳永逸 道理我都懂 就是之前不想整理 直接定义left和right为左闭右闭 这个很重要 当然二分也要求数组必须是有序的 比如 数组长度为10 则lef
  • 新唐NUC980使用记录(5.10.y内核):u-boot & linux & rootfs 编译与烧录测试(基于SD1位置SD卡)

    文章目录 目的 基础准备 烧录环境 开发编译环境 SD卡分区 制作和设置编译工具链 制作toolchain和rootfs 拷贝rootfs内容到SD卡 设置编译工具链 u boot编译与测试 下载 配置与编译 烧录u boot与环境变量 l
  • Java 正则表达式工具类大全

    import java util regex Matcher import java util regex Pattern author nql Description 验证工具类 date now public class Validat
  • Matlab 超前滞后相关,自相关xcorr

    Matlab提供了计算互相关和自相关的函数xcorr函数 1 使用方法 c xcorr x y c xcorr x c xcorr x y option c xcorr x option c xcorr x y maxlag
  • linux函数库之htons(), ntohl(), ntohs(),htons() 函数

    linux疑难问题排查实战 分享了作为公司专家 在项目开发过程中内存优化 堆 栈 代码段 数据段 性能优化 死机 栈越界 堆越界 死锁等疑难问题排查的案例 使用的工具 perf asan strace memleak等 工作经验 大家可以点
  • Linux中的firewall-cmd

    2023年8月4日 周五上午 目录 打开端口 关闭端口 查看某个端口是否打开 查看当前防火墙设置 firewall cmd中的服务 在防火墙中什么是服务 为什么会有服务 打开或关闭服务 查看某个服务是否打开 firewall cmd中的 z
  • Unity MRTK使用详解(Htc vive+LeapMotion)

    MRTK Unity是一个由Microsoft驱动的开源项目 提供了多种组件和功能 用于加速Unity中的跨平台MR应用程序开发 以下是其一些功能 提供跨平台输入系统和用于空间交互和UI组件 启用快速原型通过在编辑器中的模拟 让你马上看到变
  • 在vscode内运行php代码文件

    一 下载php 下载php链接 下载后解压缩文件 我新建了一个php文件夹在解压缩到这里 二 下载Xdebug 下载Xdebug链接 下载后复制粘贴到php文件夹下的ext文件夹 三 修改 在php文件夹下找到这两个文件夹 复制第一个文件夹
  • Hudi原理

    1 摘要 Apache Hudi提供了不同的表类型供根据不同的需求进行选择 提供了两种类型的表 Copy On Write COW Merge On Read MOR 2 术语介绍 在深入研究 COW 和 MOR 之前 让我们先了解一下 H
  • checking for module ‘sqlite3‘ package ‘sqlite3‘ not found

    checking for module sqlite3 package sqlite3 gt 某个版本号 not found 在编译安装其他源码包的时候遇到缺少sqlite3库的问题 这里字面上的意思是没有安装sqlite3 但是造成这个问
  • (python)常见面试题

    1 一行代码实现1 100之和 2 如何在一个函数内部修改全局变量 3 列出5个python标准库 os 提供了不少与操作系统相关联的函数 sys 通常用于命令行参数 re 正则匹配 math 数学运算 datetime 处理日期时间 4
  • Redis数据实战之“万金油”的String,为什么不好用了?

    Redis数据实战之 万金油 的String 为什么不好用了 引言 为什么 String 类型内存开销大 用什么数据结构可以节省内存 如何用集合类型保存单值的键值对 引言 以一个项目需要为例 需要开发一个图片存储系统 要求这个系统能快速地记
  • DNS使用TCP与UDP

    DNS同时占用UDP和TCP端口53是公认的 这种单个应用协议同时使用两种传输协议的情况在TCP IP栈也算是个另类 但很少有人知道DNS分别在什么情况下使用这两种协议 先简单介绍下TCP与UDP TCP是一种面向连接的协议 提供可靠的数据
  • tensorflow-ssd 实现纸张缺陷检测

    环境 win10 tensorflow1 10 python3 6 9 下载https github com balancap SSD Tensorflow到本地 1 解压并测试demo 打开Anaconda prompt 切换到SSD T
  • 我又把HTMLTestRunner改了一下,支持Python3,添加echarts统计饼图

    之前用Bootstrap把HTMLTestRunner改的美观了一点 同时改成了中文的报告 但那个是基于Python2的 见这篇博文 selenium之 输出报告 对HTMLTestRunner进行样式调整后的示例 这次呢 博主又给它改成了
  • mac编译安装Nginx

    一 安装wget 使用homebrew安装wget brew install wget 安装wget时报错 tar Error opening archive Failed to open Users xxx Library Caches
  • 【数据库】如何创建一个非常便宜的无服务器数据库

    云对象存储可以用作功能强大且非常便宜的数据库 您是否相信您可以使用完全托管 可大规模扩展 高度可用且价格低廉的无服务器数据库 每月只需 5 美元 您就可以存储数亿条记录并读写数十亿条记录 如果您的数据库需求可以通过非常简单的键值存储来满足