独立开发者的福音:Amazon DynamoDB 数据库
XPoet 自由程序猿

对于很多独立开发者朋友来说,往往总是需要一个稳定的云数据库来存储自己的个人数据。从零开始搭建一个云数据库,需要花费大量时间、精力,并且需要自己管理数据库的维护,在巨大的成本面前,显然这并不是明智之选。作者在偶然的机会下发现到亚马逊云科技 Amazon DynamoDB 数据库,可以永久免费提供 25GB 的存储量以及每月最多 2 亿次读/写请求,一番体验下来,太良心了,简直就是独立开发者和个人网站站长的福音。

什么是 Amazon DynamoDB 数据库?

image

Amazon DynamoDB 数据库是亚马逊云科技提供的一款无服务器、NoSQL、完全托管的数据库,在任何规模下均具有个位数毫秒级的性能,你可以通过它来开发任何规模的现代应用程序。

作为无服务器数据库,Amazon Free Tier 永久免费提供 25GB 的存储量以及每月最多 2 亿次读/写请求,超出部分,只需按使用量为其付费,Amazon DynamoDB 可以扩展到零,没有冷启动,没有版本升级,没有维护窗口,没有修补,也没有停机维护。Amazon DynamoDB 提供一系列广泛的安全控制措施和合规性标准。对于全球分布式应用程序,Amazon DynamoDB 全局表是一个多区域、多活动数据库,具有 99.999% 的可用性 SLA 和更高的弹性。托管备份、时间点恢复等功能有助于确保 Amazon DynamoDB 的可靠性。借助 Amazon DynamoDB 流,你可以构建无服务器的事件驱动型应用程序。

Amazon DynamoDB 的优势

  • 简单易用:Amazon DynamoDB 使用简单的 API 和数据模型,易于使用和学习。
  • 规模性能:提供具有稳定、高性能和几乎无限吞吐量和存储空间的应用程序。
  • 快速响应:支持读写操作的低延迟,读取操作的平均响应时间可以在几毫秒内完成。
  • 高可扩展性:可以根据需要自动增加或减少容量,从而满足不同的负载需求。
  • 高可用性:提供了多种数据备份和复原功能,使其在遇到任何故障或灾难时都能够快速恢复。
  • 高灵活性:Amazon DynamoDB 支持多种数据类型和数据模型,并支持多种查询和索引方式。

Amazon DynamoDB 的适用场景

Amazon DynamoDB 数据库的适用场景非常广泛,例如金融服务应用程序、游戏应用程序、日志挖掘、分析社交计算、外部数据聚合、前端订单处理系统、企业内容管理等等。对我们这些独立开发者或者个人网站站长而言,用 Amazon DynamoDB 数据库提供的免费套餐的来存储我们评论系统的数据、博客文章的数据,或者其他一些简单的数据,再合适不过了,无需额外的成本开销。

Amazon DynamoDB 的免费套餐提供 25GB 的存储空间,以及 25 个预置的写入容量单位和 25 个预置的读取容量单位 (WCU、RCU),足以处理每月 2 亿个请求,对个人用户来讲,完全是够用的。

写入和读取容量单位可以通过表的其他设置选项卡中进行查看,注意不要超过免费额度,不然会产生费用。

image

Amazon DynamoDB 快速上手使用示例

注册亚马逊云科技账户

  1. 访问亚马逊云科技官网
  2. 创建一个亚马逊云科技账户。
  3. 按照指示填写个人信息,包括姓名、邮箱、密码等。
  4. 完成验证后,设置支付方式(在账单登记页可以使用国内的信用卡)。
  5. 完成注册流程。

image

开始使用 Amazon DynamoDB

登录亚马逊云科技管理控制台

使用我们前面注册的亚马逊云科技账号和密码登录到亚马逊云科技管理控制台

选择 Amazon DynamoDB

在亚马逊云科技管理控制台页面的服务搜索栏中输入“DynamoDB”,然后选择使用 Amazon DynamoDB。

创建 Amazon DynamoDB 表

此处为了方便演示,直接采用控制台的可视化方式进行创建,我们当然也可以使用 Amazon 提供的 SDK 等方式。进入 DynamoDB 的控制台页面,点击创建表,按照页面提示输入信息即可。

image

输入表的名称,因为 DynamoDB 是一个无模式数据库,在创建表时只需要表名和主键即可,主键代表数据的唯一性,记住这两个配置项目,后面的程序代码中需要使用到。其他的配置暂时按照默认推荐的参数即可。

Amazon DynamoDB 表的增删改查

我们使用 Node.js 演示如何连接到 Amazon DynamoDB 数据库,以及对 Amazon DynamoDB 表进行增删改查等操作。

安装 Amazon SDK

我们在项目目录中初始化一个 Node.js 项目:

1
2
3
mkdir dynamodb-example
cd dynamodb-example
npm init -y

安装 Amazon SDK:

1
npm install aws-sdk

配置 Amazon SDK 凭证

在与 Amazon DynamoDB 交互前,需要配置 Amazon SDK 凭证。我们可以通过以下方式配置:

~/.aws/credentials 文件中添加以下内容:

1
2
3
[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

创建 DynamoDB 客户端

在项目中创建一个文件 index.js,并初始化 DynamoDB 客户端:

1
2
3
4
5
6
7
8
9
10
const AWS = require('aws-sdk');

// 配置区域
AWS.config.update({
region: 'us-west-2' // 替换为你的区域
});

// 初始化 DynamoDB 客户端
const dynamodb = new AWS.DynamoDB();
const docClient = new AWS.DynamoDB.DocumentClient(); // 使用文档客户端更方便操作数据

向表中插入数据

在 Amazon DynamoDB 数据库的控制台页面也提供了给 Amazon DynamoDB 表增加数据的可视化操作,但是在实际应用中,一般都是由应用程序自动产生需要增加的数据,并推送到数据库进行数据的存储。

使用 DocumentClient 插入数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const params = {
TableName: "demo",
Item: {
"id": "1000"
}
};

docClient.put(params, function(err, data) {
if (err) {
console.error(err);
} else {
console.log(JSON.stringify(data, null, 2));
}
});

从表中查询数据

使用 DocumentClient 通过主键查询数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const params = {
TableName: "demo",
Key: {
"id": "1000",
"name": "AA"
}
};

docClient.get(params, function(err, data) {
if (err) {
console.error(err);
} else {
console.log(JSON.stringify(data));
}
});

删除表中的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
const params = {
TableName: "demo",
Key: {
"id": "1000"
}
};

docClient.delete(params, function(err, data) {
if (err) {
console.error(err);
} else {
console.log(data);
}
});

最后

以上对 Amazon DynamoDB 数据库做了一个大概的介绍,演示了 Amazon DynamoDB 的基本操作以及结合 Node.js 的入门使用,Amazon DynamoDB 永久免费提供 25GB 的存储量以及每月最多 2 亿次读/写请求,足以满足个人开发者需求,小伙伴可以体验一下,相信是一个非常不错的 NoSQL 数据库的替代。

除 Amazon DynamoDB 数据库外,亚马逊云科技还提供众多永久免费的云产品,例如:无服务器计算服务 Amazon Lambda、消息传送的完全托管的 Pub/Sub 服务 Amazon SNS、内容分发网络 (CDN) 服务 Amazon CloudFront 等等几十款免费的云产品服务,感兴趣小伙伴可以访问:亚马逊云科技

image

另外,亚马逊云科技还有个福利活动,在 2024 年 8 月 20 日 0 时至 2024 年 9 月 30 日 24 时期间的新注册用户,可以获得亚马逊云科技赠送的礼品 (无线耳机或无线键盘),详情请查看亚马逊云科技官网活动页面

image

 REWARD AUTHOR
 Comments
Comment plugin failed to load
Loading comment plugin