首页 > 数据库 >存储和数据库

存储和数据库

时间:2023-08-18 09:58:24浏览次数:40  
标签:存储 S3 数据库 Amazon 关系数据库 数据

实例存储和 Amazon Elastic Block Store (Amazon EBS)

实例存储

数据块级存储卷的作用类似于物理硬盘。

实例存储为 Amazon EC2 实例提供临时性数据块级存储。实例存储是指实际挂载到 EC2 实例宿主机的磁盘存储,因而具有与该实例相同的生命周期。当实例终止时,实例存储中的所有数据都将丢失。

具有挂载的实例存储的 Amazon EC2 实例正在运行

image-20230818093534783

实例停止或终止。

image-20230818093542119

挂载的实例存储上的所有数据都被删除。

image-20230818093548607

Amazon Elastic Block Store (Amazon EBS)

image-20230818093554717

Amazon Elastic Block Store (Amazon EBS) 是一项提供数据块级存储卷的服务,这类存储卷可以与 Amazon EC2 实例配合使用。如果您停止或终止 Amazon EC2 实例,则挂载的 EBS 卷上的所有数据仍然可用。

要创建 EBS 卷,您需要定义配置(例如卷大小和类型)并预置它。创建 EBS 卷后,您可以将它挂载到 Amazon EC2 实例。

EBS 卷用于存储需要持久保存的数据,因此备份数据非常重要。您可以通过创建 Amazon EBS 快照来对 EBS 卷进行增量备份。

Amazon EBS 快照

image-20230818093600440

EBS 快照是一种增量备份。这意味着对卷进行的第一次备份会复制所有数据。后续备份则只保存自最近一次快照以来发生更改的数据块。

增量备份不同于完整备份,后者每次备份时都会复制存储卷中的所有数据。完整备份包括自最近一次备份以来未发生更改的数据。

Amazon Simple Storage Service (Amazon S3)

Amazon Simple Storage Service (Amazon S3) 是一项提供对象级存储的服务。Amazon S3 将数据作为对象存储在存储桶中。

您可以将任何类型的文件上传到 Amazon S3,例如图片、视频、文本文件等。举例来说,您可以使用 Amazon S3 存储备份文件、网站的媒体文件或存档文档。Amazon S3 提供无限存储空间。Amazon S3 中对象的最大文件大小为 5TB。

当您将文件上传到 Amazon S3 时,您可以设置权限来控制该文件的可见性和访问权限。您还可以使用 Amazon S3 版本控制功能跟踪随时间过去的对象更改。

对象存储

image-20230818093606680

对象存储中,每个对象都由数据、元数据和键组成。

数据可能是图片、视频、文本文档或任何其他类型的文件。元数据包含有关数据是什么、如何使用数据、对象大小等的信息。对象的键是它的唯一标识符。

前面讲过,修改数据块存储中的文件时,只会更新发生更改的部分。而修改对象存储中的文件时,将更新整个对象。

Amazon S3 存储类

使用 Amazon S3 时,您只需为实际使用量付费。您可以从一系列存储类中选择可以满足您的业务和成本需求的存储类。选择 Amazon S3 存储类时,请考虑以下两个因素:

  • 计划检索数据的频率

  • 需要的数据可用性

S3 标准

  • 专为频繁访问的数据而设计

  • 将数据存储在至少三个可用区中

S3 标准可以为对象提供高可用性。这使得它适用于各种使用案例,例如网站、内容分发和数据分析。S3 标准的成本高于其他适用于不频繁访问的数据和存档存储的存储类。

S3 标准 - 不频繁访问(S3 标准 - S3 IA)

  • 非常适合存储不频繁访问的数据

  • 与 S3 标准类似,但存储价格较低,检索价格较高

S3 标准 – IA 非常适合存储不频繁访问但在需要时要求具有高可用性的数据。S3 标准和 S3 标准 – IA 都将数据存储在至少三个可用区中。S3 标准 – IA 提供与 S3 标准相同的可用性级别,但存储价格较低,检索价格较高。

S3 单区 - 不频繁访问(S3 单区 - IA)

  • 将数据存储在单个可用区中

  • 存储价格低于 S3 标准 – IA

S3 标准和 S3 标准 – IA 将数据存储在至少三个可用区中,而 S3 单区 – IA 将数据存储在单个可用区中。如果符合以下条件,那么这个存储类是个不错的选择:

  • 您希望节省存储成本。

  • 您希望在可用区发生故障时能够轻松重现数据。

S3 智能分层

  • 非常适合存储访问模式未知或不断变化的数据

  • 每个对象每月会产生少量的监控和自动化费用

在 S3 智能分层存储类中,Amazon S3 会监控对象的访问模式。如果您连续 30 天未访问某个对象,Amazon S3 会自动将其移动到不频繁访问层,即 S3 标准 – IA。如果您访问不频繁访问层中的对象,Amazon S3 会自动将其移动到频繁访问层,即 S3 标准。

S3 Glacier

  • 低成本存储,专为数据存档而设计

  • 能够在几分钟到几小时内完成对象检索

S3 Glacier 是一种低成本存储类,非常适合用于数据存档。例如,您可以使用此存储类来存储存档的客户记录或以前的照片和视频文件。

S3 Glacier Deep Archive

  • 成本最低的对象存储类,非常适合用于存档

  • 能够在 12 小时内完成对象检索

在决定选择 Amazon S3 Glacier 还是 Amazon S3 Glacier Deep Archive 时,请考虑您需要以多快的速度检索存档的对象。您可以在几分钟到几小时内完成对存储在 S3 Glacier 存储类中的对象的检索。相比之下,您可以在 12 小时内完成对存储在 S3 Glacier Deep Archive 存储类中的对象的检索。

比较 Amazon EBS 和 Amazon S3

EBS( Amazon Elastic Block Store)块存储,最大可以达到 16 TiB,能够在 Amazon EC2 实例终止后继续保留。采用固态硬盘,也可以使用传统磁盘。

S3(Amazon Simple Storage Service),区域性对象存储,存储空间不受限制。单个对象最大 5000 GBs,支持一次写入、多次读取,持久性达到 99.999999999%。

每种存储类都拥有针对不同存储需求的最佳设定,我们要看具体的使用案例。

案例1

假设您运行着一个照片分析网站,用户上传自己的照片,然后您的应用程序就会找到长得像他们的动物。您可能有数百万张动物图片,所有这些图片都需要建立索引并且可能有几千人同时浏览这些图片,S3 完美适合这种使用案例。S3 支持 Web,并且每个对象都会获得一个 URL,您可以通过这个 URL 来控制,谁可以查看或管理图片。S3 是区域性分布式存储,这意味着它具有 11 个 9 的持久性,因此您无需担心备份策略,S3 本身就是您的备份策略。另外,与 EBS 上同样的存储容量相比,S3 还可以节省大量成本,S3 还具有无服务器这种额外的优势。因此,您不需要使用 Amazon EC2 实例。

案例2

假设您有一个 80GB 的视频文件并且需要对这个文件进行编辑修改,要知道哪种存储类最合适,我们需要了解对象存储和块存储之间的区别。对象存储将任何文件都视为完整的对象。这种存储非常适合作为完整对象来上传和使用的文档、图像和视频文件。但是每次对象发生更改时,您都必须重新上传整个文件。它不支持增量更新,而块存储会将文件分解为较小的组件,也就是数据块。这意味着,对于 80GB 的文件,当您对电影中的一个场景进行编辑并保存修改时,引擎只会更新相关数据所在的数据块。所以,如果您要进行大量微小的编辑,那么 EBS 就是最好的选择。如果使用 S3,那么每次保存更改时,系统每次都必须上传全部 80GB 的数据。

所以,如果您使用的是完整的对象或者只是偶尔进行更改,那么 S3 是您最佳选择。但是如果您要进行复杂的读取、写入和更改操作,那么 EBS 绝对是您的不二之选。

Amazon Elastic File System (Amazon EFS)

文件存储

文件存储中,多个客户端(例如用户、应用程序、服务器等)可以访问存储在共享文件夹中的数据。在这种方法中,存储服务器使用数据块存储和本地文件系统来组织文件。客户端通过文件路径访问数据。

与数据块存储和对象存储相比,文件存储非常适合用于大量服务和资源需要同时访问相同数据的使用案例。

Amazon Elastic File System (Amazon EFS) 是一个可扩展的文件系统,可与 AWS 云服务和本地资源配合使用。当您添加和删除文件时,Amazon EFS 会自动扩展和缩减。它可以在不中断应用程序的情况下按需扩展到 PB 级大小。

比较 Amazon EBS 和 Amazon EFS

  • Amazon EBS 卷将数据存储在单个可用区中。

要将 Amazon EC2 实例挂载到 EBS 卷,Amazon EC2 实例和 EBS 卷必须位于同一可用区内。

  • Amazon EFS 是一项区域性服务。它将数据存储在多个可用区中。

副本存储使您能够从文件系统所在区域中的所有可用区同时访问数据。此外,本地服务器可以使用 AWS Direct Connect 访问 Amazon EFS。

Amazon Relational Database Service (Amazon RDS)

Amazon Relational Database Service,简称 RDS,这项服务不仅支持所有主要的数据库引擎,比如说我们前面所提到的那些,还有其他优势,其中包括自动修补、备份、冗余、故障转移、灾难恢复等,这些通常都需要您自己管理,这使得它对 AWS 客户来说,成为一项极具吸引力的选择。因为客户可以借此专注于业务问题,而不维护数据库,否则,数据库管理员的工作将非常耗时且艰难。

那么,如何更轻松地在云中运行数据库工作负载呢?我们更进一步将数据库迁移或部署到 Amazon Aurora 中,它是我们托管性最强的关系数据库选项,可以兼容两种引擎:MySQL 和 PostgreSQL。它的成本是商用数据库的 1/10,所以说是一款非常经济高效的数据库。它的其他优势包括跨设施复制数据,所以,您在任何指定时间都可以有六个副本,您还可以部署多达 15 个只读副本,将读取负载迁移到只读副本上并扩展性能。此外,您可以连续备份到 S3,所以,始终都有备份可以随时还原。您还可以使用时间点恢复功能来恢复特定时间段内的数据。

关系数据库

关系数据库中,数据以与其他数据相关联的方式进行存储。

关系数据库的一个示例是咖啡店的库存管理系统。数据库中的每条记录都包含单个项目的数据,例如产品名称、大小、价格等。

关系数据库使用结构化查询语言 (SQL) 来存储和查询数据。这种方法让您能够以易于理解、一致且可扩展的方式存储数据。例如,咖啡店店主可以编写 SQL 查询来识别最常购买中杯拿铁的所有顾客。

关系数据库中的数据示例:

ID 产品名称 大小 价格
1 中度烘焙现磨咖啡 12 盎司 5.30 USD
2 深度烘焙现磨咖啡 20 盎司 9.27 USD

 

Amazon Relational Database Service (Amazon RDS) 是一项服务,让您能够在 AWS 云中运行关系数据库。

Amazon RDS 是一项托管服务,可自动执行硬件预置、数据库设置、修补和备份等任务。借助这些功能,您可以减少完成管理任务的时间,将更多的时间用于利用数据实现应用程序创新。您可以将 Amazon RDS 与其他服务集成来满足您的业务和操作需求,例如使用 AWS Lambda 从无服务器应用程序查询您的数据库。

Amazon RDS 提供多种不同的安全选项。许多 Amazon RDS 数据库引擎提供静态加密(在存储数据时保护数据)和传输中加密(在发送和接收数据时保护数据)。

Amazon RDS 数据库引擎

Amazon RDS 可用于六种数据库引擎,这些引擎针对内存、性能或输入/输出 (I/O) 进行了优化。支持的数据库引擎包括:

  • Amazon Aurora

  • PostgreSQL

  • MySQL

  • MariaDB

  • Oracle Database

  • Microsoft SQL Server

Amazon Aurora

Amazon Aurora 是一种企业级关系数据库。它与 MySQL 和 PostgreSQL 关系数据库兼容。它的速度最高可达标准 MySQL 数据库的五倍,标准 PostgreSQL 数据库的三倍。

Amazon Aurora 通过减少不必要的输入/输出 (I/O) 操作,帮助您降低数据库成本,同时确保您的数据库资源保持可靠和可用。

如果您的工作负载需要高可用性,可以考虑使用 Amazon Aurora。它在三个可用区中复制六个数据副本,并持续将您的数据备份到 Amazon S3。

Amazon DynamoDB

非关系数据库

非关系数据库中,您需要创建表。表是可以存储和查询数据的地方。

非关系数据库有时称为“NoSQL 数据库”,因为它们使用行和列以外的结构来组织数据。非关系数据库的一种结构方法是键值对。使用键值对,数据将会组织成项目(键),而项目具有属性(值)。您可以将属性视为数据的不同特征。

在键值数据库中,您可以随时在表中添加或删除项目的属性。此外,并非表中的每个项目都必须具有相同的属性。

非关系数据库中的数据示例:

1 姓名:John Doe地址:123 Any Street最喜欢的饮品:中杯拿铁
2 姓名:Mary Major地址:100 Main Street出生日期:1994 年 7 月 5 日

Amazon DynamoDB

Amazon DynamoDB 是一项键值数据库服务。它可以在任意规模实现不超过 10 毫秒的延迟。

  • 无服务器

    DynamoDB 采用无服务器架构,这意味着您无需预置、修补或管理服务器。

    您也无需安装、维护或运行软件。

  • 自动扩展

    随着数据库大小的缩减或扩展,DynamoDB 会自动扩展以适应容量的变化,同时保持一致的性能。

    这使得它适合用于在扩展时需要高性能的使用案例。

比较RDS与DynamoDB

  • 在关系领域,工程师通过自动高可用性和恢复功能帮助数据库管理员摆脱了无差别的繁重工作。您控制着数据,您控制着架构,您控制着网络,您运行的是 Amazon RDS。

  • 在 NoSQL 领域,使用不需要高级架构的键值对,只需按一下按钮,就可以像全局数据库一样操作。吞吐量巨大、PB 级别扩展潜力、精细的 API 访问,这就是 Amazon DynamoDB。

案例1

从企业开始使用计算机起,关系数据库就已经存在了。能够对分布在多个表中的数据运行复杂的分析是每一个关系系统的强项。在这一回合中,您需要分析一个销售供应链管理系统的薄弱环节。对于这个使用案例,RDS 显然是最佳选择。因为它是为业务分析而构建的,而您需要复杂的关系联接。

案例2

使用案例,几乎其他任何使用案例都可以。这听起来很奇怪。但是,不管您的独立传统数据库供应商说什么,大多数人使用昂贵的关系数据库都与复杂关系毫无相关。事实上,无论人们在这些数据库中存储了什么数据,最后的大多数操作也只是在表里面进行。 假设您要存储员工通讯录,其中包含姓名、电话号码、电子邮件、员工 ID 等,而且是使用一张表。对于这种情况,您可以使用关系数据库。但是,如果您无法真正利用关系数据库的所有复杂功能,就会徒增开销和延迟。这时候您要考虑非关系数据库了。Dynamo DB 在不需要复杂的联接功能的情况下,使用 DynamoDB,不仅可以消除以上所有开销,还可以构建功能强大且速度惊人的数据库。

所以,选用哪种数据库取决于您的工作负载,每种服务都可以满足特定的需求。了解了自己的需求后,您就会知道,哪种服务才是您的最佳选择。

Amazon Redshift

Amazon Redshift 是一项数据仓库服务,可用于进行大数据分析。它让您能够从多个来源收集数据,并帮助您了解数据中的关系和趋势。

它就是数据仓库即服务,可以大规模扩展。数 PB 大小的 Redshift 节点很常见,事实上,利用 Amazon Redshift Spectrum,您可以直接对数据湖中的非结构化数据运行单个的 SQL 查询。

但 Redshift 不仅仅能够大规模处理大型的数据集,它采用了多项的创新技术,在商业智能工作负载方面,性能比传统的数据库高出 10 倍。

AWS Database Migration Service

AWS Database Migration Service (AWS DMS) 让您能够迁移关系数据库、非关系数据库和其他类型的数据存储。

借助 AWS DMS,您可以在源数据库和目标数据库之间移动数据。源数据库和目标数据库可以是相同的类型,也可以是不同的类型。在迁移过程中,源数据库可以保持运行,从而减少依赖该数据库的任何应用程序的停机时间。

例如,假设您有一个 MySQL 数据库,该数据库存储在本地、 Amazon EC2 实例或 Amazon RDS 中。将 MySQL 数据库当作源数据库。使用 AWS DMS,您可以将数据迁移到目标数据库,例如 Amazon Aurora 数据库。

AWS DMS 的其他使用案例

  • 开发和测试数据库迁移

    使开发人员能够根据生产数据测试应用程序而不会影响生产用户。

  • 数据库整合

    将多个数据库合并成一个数据库。

  • 连续复制

    将持续不断的数据副本发送到其他目标源,而不是执行一次性迁移。

其他数据库服务

Amazon DocumentDB

Amazon DocumentDB 是一项支持 MongoDB 工作负载的文档数据库服务。(MongoDB 是一种文档数据库程序。)

Amazon Neptune

Amazon Neptune 是一项图形数据库服务。

您可以使用 Amazon Neptune 来构建和运行需要处理高度互联的数据集的应用程序,例如推荐引擎、欺诈检测和知识图谱等。

Amazon Quantum Ledger Database(Amazon QLDB)

Amazon Quantum Ledger Database (Amazon QLDB) 是一种分类账数据库服务。

您可以使用 Amazon QLDB 查看对您的应用程序数据所做的所有更改的完整历史记录。

Amazon Managed Blockchain

Amazon Managed Blockchain 这项服务可以让您通过开源框架创建和管理区块链网络。

区块链是一个分布式分类账系统,能够让多方在没有中央授权的情况下运行交易和共享数据。

Amazon ElasticCache

Amazon ElastiCache 这项服务可以在数据库上层添加缓存层,从而帮助缩短常见请求的读取时间。

它支持两种类型的数据存储:Redis 和 Memcached。

Amazon DynamoDB Accelerator(DAX)

Amazon DynamoDB Accelerator (DAX) 是一种适用于 DynamoDB 的内存中的缓存。

它可以将响应时间从几毫秒缩短到几微秒。

其他资源

要详细了存储模块中探讨的概念,请查看以下资源。

标签:存储,S3,数据库,Amazon,关系数据库,数据
From: https://www.cnblogs.com/donaver/p/17639588.html

相关文章

  • 解密数据库连接池的奥秘与优化策略
    在后端开发中,数据库是应用程序的核心数据存储和管理部分。为了高效地处理数据库连接,提升应用性能,数据库连接池成为了不可或缺的技术。本文将深入探讨数据库连接池的工作原理,并介绍一些优化策略,帮助你更好地理解和使用数据库连接池。数据库连接池的背景与作用数据库连接是有代价的资......
  • 星瑞格数据库介绍
    随着数字化时代的到来,数据已成为企业发展的核心资产之一。数据库作为存储、管理和查询数据的重要工具,在企业信息化建设中扮演着至关重要的角色。本文将介绍星瑞格数据库,分析其在企业中的应用场景和未来发展趋势。星瑞格数据库概述星瑞格数据库是一种高性能、高可用、可扩展的分布......
  • 密码加密存储
    定义一个SpringSecurity的配置类,SpringSecurity要求这个配置类要继承WebSecurityConfigurerAdapter。packagecom.security.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springfra......
  • 高可用数据库架构:利用主备复制和故障切换保障数据可用性
    在现代的数字化时代,数据库是组织和企业不可或缺的核心基础设施之一。然而,数据库故障和数据不可用性可能会导致严重的业务中断和损失。为了保障数据的高可用性,构建一个强大的高可用数据库架构至关重要。本文将介绍如何利用主备复制和故障切换来保障数据库的可用性。什么是高可用......
  • unable to open database file , EF生成SQLite数据库
    前言:  记录下,忘了再回头看看。unabletoopendatabasefile 错误  如果使用EF生成SQLite数据库,发现报出错误unabletoopendatabasefile,请检查下“存放SQLite数据文件的文件夹是否存在”......
  • MySQL-进阶篇 ( 视图 + 存储过程 + 触发器 )
    MySQL-进阶篇(视图/存储过程/触发器)目录MySQL-进阶篇(视图/存储过程/触发器)视图/存储过程/触发器视图介绍视图大体语法视图的检查选项CASCADED和LOCAL视图的更新作用案例存储过程介绍特点语法变量系统变量用户定义变量局部变量if语句参数case语句三种循......
  • MySQL-进阶篇 ( 存储引擎 + 索引一:结构 + 分类 + 语法 + SQL 性能分析 )
    MySQL-进阶篇(存储引擎+索引一)目录MySQL-进阶篇(存储引擎+索引一)存储引擎MySQL体系结构存储引擎简介存储引擎特点InnoDBMyISAMMemory引擎特点区分存储引擎选择索引索引概述索引结构二叉树B-Tree(B树,多路平衡查找树)B+Tree(B加树)Hash面试思考题索引分类在In......
  • Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!
    DolphinScheduler是一个开源的分布式任务调度系统,拥有分布式架构、多任务类型、可视化操作、分布式调度和高可用等特性,适用于大规模分布式任务调度的场景。目前DolphinScheduler支持的元数据库有Mysql、PostgreSQL、H2,如果在业务中需要更好的性能和扩展性,可以在DolphinScheduler中......
  • 使用数据库的优化版php登陆系统
    title:使用数据库的优化版php登陆系统date:2023-07-3112:56:41categories:CTF-Web入门description:数据库优化版本在学习了MySQL以后,我尝试在原来的简易登陆系统上加入数据库。因为原来的账号密码都存在php文件的数组里嘛,现在存在了数据库里。网站依旧是用phpstudy集成......
  • mysql数据库DeadLock处理分析
    1.问题复现数据库新建一个test表,里面包含id,和name字段然后分别开两个窗口,分别开启事务,然后updatename字段,不提交,然后查看一下三个表,看是否出现锁表情况innodb_trx        ##当前运行的所有事务innodb_locks     ##当前出现的锁innodb_lock_waits......