Day 27 - 成本估计与 Amazon DynamoDB

33 篇文章 6 订阅
12 篇文章 0 订阅
本文讲述了将观赏鱼辨识系统从Amazon EC2主机迁移至Amazon DynamoDB的过程,以降低服务成本。DynamoDB作为AWS的托管非关联型数据库服务,提供了完全托管、高性能、精细访问控制和灵活性等优势。相较于Amazon RDS,DynamoDB在低容量使用情况下更具成本效益。文中详细介绍了DynamoDB的基本组件、主键类型以及如何建立和写入数据到DynamoDB表格的操作步骤。
摘要由CSDN通过智能技术生成

Day 27 - 成本估计与 Amazon DynamoDB

观赏鱼辨识成本估计

根据 Day 01 - 观赏鱼辨识系统说明所介绍的服务,这个系统需要一个 g4dn.2xlarge 的 Amazon EC2 主机,以及一个 Amazon Elastic IP 的固定 IP 位置,在不考虑流量的情况下,一年的固定成本为 4,393.56 USD,这是以主机建置在 US East (Ohio) 地区来计算的, AWS 提供一个 AWS 价钱计算机 (AWS Pricing Calculator),计算结果如下图。

在这里插入图片描述
图 1、AWS 价钱计算机 (AWS Pricing Calculator)

这样的成本对于一个建立雏形系统的开发人员来说十分昂贵,因为整个架构一开始就是以微服务的方式建构,所以现在尝试将所有服务转换成 AWS 的托管服务,形成无服务器 (serverless) 的方式。首先考虑的是将资料库独立出来,AWS 提供的资料库有分关联型资料库 (RDS) 与非关联型资料库 (DynamoDB),Amazon RDS 的收费方式与 Amazon EC2 一样,是需要租赁一台主机;而 DynamoDB 则是与服务请求数量与存储容量相关。下图是 Amazon RDS 与 DynamoDB 的价格比较, Amazon RDS 的预留一年主机租用费用是 203.00 USD ,而硬碟 10GB 每月费用是 2.3 USD;DynamoDB 则是每月需要 2.51 USD。所以选择 DynamoDB 是比较划算的,主要是因为我们使用的容量其实是很低的。

在这里插入图片描述
图 2、Amazon RDS 与 DynamoDB 的价格比较

Amazon DynamoDB 简介

Amazon DynamoDB 是一项快速灵活的非关联型资料库服务,适合所有需要一致性和个位数毫秒级延迟的任何规模的应用程序。它是完全托管的云端资料库,支持文档和键值存储模型。

Amazon DynamoDB 提供以下优势:

  • 完全托管 – DynamoDB 是一项完全托管的非关联型资料库服务,只需创建资料库表并设置自动扩容 (Auto Scaling) 的目标使用率,其余事情都可交由该服务来代劳。您无需再担心资料库管理任务,例如硬体或软体预置、设置和配置、软件修补、操作分布式资料库集群,或者根据扩展需求在多个实例间对数据进行分区等问题。还可以使用 DynamoDB 对您的所有表执行时间点恢复、备份和还原,这可帮助满足公司和法规存档要求。
  • 性能快速稳定 – 服务端平均延迟通常不超过个位数毫秒 (ms)。随着您的资料量不断增多、应用程序性能要求不断提升,DynamoDB 会使用自动分区和固态硬盘 (SSD) 技术来满足您的吞吐量需求,并针对任意规模的数据库提供低延迟。
  • 精细的访问控制 – DynamoDB 与 AWS Identity and Access Management (IAM) 集成,对组织内的用户实现精细的访问控制。您可以为每名用户分配唯一的安全证书,控制每名用户对服务和资源的访问。
  • 灵活 – DynamoDB 支持存储、查询和更新文档。使用 AWS 开发工具包 (SDK),可以编写将 JavaScript 对象表示法 (JSON) 文档直接储存到 Amazon DynamoDB 表中的应用程序。此功能减少了为插入、更新和检索 JSON 文档必须编写的新代码量。您还可以通过使用几行代码来执行强大的资料库操作,例如嵌套 JSON 查询。

在这里插入图片描述
图 3、Amazon DynamoDB 的优势

如果与关系资料库表的元件进行比较,项目类似于行(记录),属性类似于列(栏位),DynamoDB 的基本元件包括下列元件,图示如下图:

  • 资料表 – DynamoDB 将资料存储在表中,表中包含具有属性的项目。
  • 项目 – 每个表包含零个或更多个项目,项目是一组属性,具有不同于所有其他项目的唯一标识。
  • 属性 – 每个项目包含一个或多个属性,属性是基础的数据元素,无需进一步分解。
  • 主键 – 表具有一个主键,用于唯一标识表中的每个项目,每个项目的键都不同。

在这里插入图片描述
图 4、Amazon DynamoDB 的基本组件

DynamoDB 支援两种类型的主键:
简单主键 – 简单主键由一个称为分区键的属性构成。 DynamoDB 基于此主键属性构建无序的索引,表中的每个项目由其分区键值进行唯一标识。在下图中 SensorLocation 表中,主键是分区键,因为它由单个属性 SensorId 组成,该属性是分区键。表中的每个项目由其分区键值(SensorA 和 SensorB)进行唯一标识,同样,每个感测器都只有一个位置,以纬度和经度表示。
复合主键 – 复合主键由两个属性组成:分区键和排序键。 DynamoDB 基于分区键属性和排序键属性分别构建无序索引和有序索引,在具有分区键和排序键的表中,两个项目可能具有相同的分区键值;但是,这两个项目必须具有不同的排序键值。在下图中 SensorReadings 表中,主键是分区和排序主键,因为它由 SensorId 属性(分区键)和 Time 属性(排序键)组成。对于每个 SensorId,在不同时间可能有多个项目对应于感测器读数。 SensorId 和 Time 的组合唯一识别表中的专案。

在这里插入图片描述
图 5、Amazon DynamoDB 支援的主键类型

Amazon DynamoDB 操作

步骤 1:建立资料表

透过 AWS 管理控制台 (AWS Management Console) 新增一个表格,以及分区索引键,设定如下,图片如下:

  • 表格: fishInfoTbl
  • 分割区索引键: LatinName

在这里插入图片描述
图 6、建立 Amazon DynamoDB 资料表

步骤 2:写入资料至资料表

来到 DynamoDB 的管理介面,点击左边功能选单的 项目,选定资料表 fishInfoTbl,点击 建立项目,如下图所示。

在这里插入图片描述
图 7、建立 Amazon DynamoDB 项目

建立项目的方式有两种,一种是表单另一种则是 JSON 方式,下图使用 JSON 建立 Amazon DynamoDB 项目。

在这里插入图片描述
图 8、使用 JSON 建立 Amazon DynamoDB 项目

最后检视 Amazon DynamoDB 中,fishInfoTbl 表格内的所有项目,如下图所示。

在这里插入图片描述
图 9、检视 Amazon DynamoDB 项目

参考资料

  • AWS Pricing Calculator,https://calculator.aws/#/estimate
  • Amazon DynamoDB,https://aws.amazon.com/tw/dynamodb/
  • 事前准备 - 入门教学,https://docs.aws.amazon.com/zh_tw/amazondynamodb/latest/developerguide/GettingStarted.SettingUp.DynamoWebService.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值