AWS S3 基本概念
引言
最近工作中有接触到 S3,往 S3 写入数据,从 S3 访问数据,所以花点时间整理一下有关 S3 的基本概念。
什么是 AWS S3
AWS S3 (Amazon Simple Storage Service) 是一个由 Amazon Web Services 提供的对象存储服务,专为存储和检索任意数量的数据而设计。与传统的文件系统和块存储不同,对象存储将数据存储为对象,每个对象包含数据、可变数量的元数据以及唯一的标识符。它提供了高度可扩展、可用性高且安全的数据存储解决方案,广泛应用于各种数据存储需求。
主要特点
高度可扩展:S3 可以处理几乎无限数量的数据,并且能够在需求增加时自动扩展以处理更多的存储需求。
高可用性和耐用性:S3 提供 99.999999999%(11个9)的数据耐用性,确保数据几乎不会丢失。它还提供高可用性,确保数据始终可访问。
安全性:S3 提供多层次的安全功能,包括数据加密(传输中和静态存储时)、访问控制、审计日志等,确保数据的安全性和隐私性。
低成本:S3 提供按需付费的定价模式,根据存储的数据量和请求次数收费,没有预付费用或最低消费。
多种存储类别:S3 提供多种存储类别,如标准存储(S3 Standard)、低频访问存储(S3 Standard-IA)、归档存储(S3 Glacier)等,以满足不同数据存储和访问需求。
灵活的数据访问:S3 支持 REST 和 SOAP 接口,这意味着几乎任何互联网连接的应用程序都可以使用 HTTP 协议访问 Amazon S3 中的数据。
S3 应用
S3 用途
数据备份和恢复:S3 是一种理想的数据备份和恢复解决方案,可以安全地存储大量备份数据,并在需要时快速恢复。
内容存储和分发:网站、移动应用和其他在线服务可以使用 S3 存储和分发静态内容,如图像、视频、文档等。
大数据分析:与其他 AWS 服务(如 Amazon Redshift、Amazon EMR)集成,S3 可以用作大数据分析的存储库。
数据归档:通过使用 S3 Glacier 等低成本存储类别,用户可以将不经常访问但需要长期保存的数据进行归档。
应用程序数据存储:各种应用程序可以利用 S3 作为其数据存储后端,以便于数据管理和访问。
使用场景示例
- 企业备份:企业可以使用 S3 存储重要的业务数据备份,以防止数据丢失。
- 内容分发网络(CDN):使用 S3 存储和分发网站内容,并通过 Amazon CloudFront 提高内容交付速度和性能。
- 数据湖 Data lake:将结构化和非结构化数据存储在 S3 中,作为大数据分析的数据湖。
- 应用日志存储:应用程序可以将日志文件存储在 S3 中,便于集中管理和分析。
总的来说,AWS S3 是一种功能强大且灵活的数据存储服务,适用于各种规模和类型的存储需求。它的高可用性、安全性、成本效益和与其他 AWS 服务的紧密集成,使其成为许多企业和开发者的首选存储解决方案。
S3 的核心概念
架构概述
存储桶(Buckets):存储桶是 S3 中存储数据的容器。每个存储桶都有一个在 Amazon S3 中全局唯一的名称,并且可以配置为在多个 AWS 区域之间复制数据。
对象(Objects):对象是存储在 S3 存储桶中的基本实体。每个对象由数据和元数据组成。数据部分是对象的主体内容,而元数据是一组描述对象的名称-值对。
键(Keys):每个 S3 对象都有一个键,这是对象在存储桶中的唯一标识符。键和存储桶名称的组合定义了对象在 S3 中的唯一地址。
区域(Regions):Amazon S3 在全球多个区域提供服务。选择存储数据的区域可以最小化延迟,满足法规要求,并降低成本。
存储类
- 标准存储(Standard):适用于频繁访问的数据,提供低延迟和高吞吐量。
- 标准 - 不常访问存储(Standard - IA):适用于不常访问但需要快速访问的数据,存储成本低,但访问费用较高。
- 单区不常访问存储(One Zone - IA):类似于标准 - IA,但仅在单一可用区内存储数据,适用于可容忍数据丢失的应用。
- 归档存储(Glacier):低成本存储,适用于长期归档数据,数据恢复时间在几分钟到数小时不等。
- 深度归档存储(Glacier Deep Archive):更低成本的归档存储,适用于需要极少访问的数据,恢复时间为 12 小时以内。
数据管理
- 生命周期管理:自动在存储类之间转移对象,以优化存储成本。可以根据对象的年龄或创建日期设置规则。
- 版本控制(Versioning):允许多个版本的对象共存,防止意外删除和覆盖。
- 跨区域复制(Cross-Region Replication):自动复制对象到另一个 AWS 区域的桶,增强数据冗余和灾难恢复能力
安全和合规:
安全和合规
- 访问控制:使用 IAM (Identity and Access Managment)策略、桶策略 Bucket policies 和访问控制列表(ACL Access control lists)来管理对 S3 资源的访问。
- 加密:支持多种加密方法,包括服务器端加密(SSE-S3、SSE-KMS、SSE-C)和客户端加密。
- 日志记录:可以启用访问日志记录功能,将所有对桶和对象的访问记录到另一个 S3 桶中。
查询和分析
- S3 Select:允许从 S3 对象(如 CSV 文件、JSON 文件、Parquet 文件等)中检索特定的数据子集,减少数据传输量和处理时间。
- S3 Glacier Select:允许直接从 Glacier 中检索特定的数据子集,适用于归档数据的分析。
事件通知
- 配置方式:可以为桶配置事件通知,事件类型包括对象创建、删除、还原等。
- 通知目标:事件通知可以发送到 Amazon SNS 主题、SQS 队列或触发 AWS Lambda 函数。
Amazon S3 的这些特性和概念共同构成了一个强大、灵活且可扩展的云存储解决方案,适用于各种应用程序和用例。