使用 S3 生命周期精确管理对象生命周期
在亚马逊工作这些年,我发现 S3 的生命周期配置是管理对象生命周期的重要但复杂的工具。在这篇文章中,我将利用实战经验,深入剖析生命周期,从核心概念到实际应用。
| 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库! |
导言
在云存储中管理数据生命周期至关重要却很复杂。随着大量数据快速累积,不受控制的增长会导致成本指数上升。S3 生命周期让我们可以建立自动化策略,在存储类型之间转变对象或删除对象。
本文将详细剖析生命周期,从基础逻辑到实际配置。您将学习如何精确控制对象生命周期的同时优化存储成本。本文将提供示例并辅以流程图和图解进行步骤详解。我的目标是提供可直接实施的见解,应用于您的云架构中。
背景知识
首先简述几个关键概念:
S3 生命周期策略对满足特定条件的对象应用规则。每个规则定义在对象生命周期的某些点上满足标准时要执行的操作。
常见条件包括:
- 对象键名称前缀或标签
- 对象创建日期
- 总生命周期天数
典型操作包括:
- 转变存储类型
- 终止未完成的多部分上传
- 永久删除对象
实际上,生命周期基于定义的规则,自动在 S3 存储类型之间转变对象,或完全删除对象。
问题所在
生命周期为什么有用且复杂?
不受控制的数据累积会迅速增加云存储成本。临时手动干预操作既费力又容易出错。生命周期提供自动化,但制定有效精确的规则需要深入理解。
错误配置可能导致意外转变或删除。复杂访问模式,比如每天数百万次上传/访问,进一步增加了策略设计的难度。
因此,掌握生命周期的逻辑和复杂度是必须的。
S3 生命周期的工作原理
让我们逐步看一下生命周期配置:

1. 定义生命周期规则
根据名称、标签或创建日期为对象制定规则过滤器。
2. 指定操作
选择在匹配对象上执行的操作,比如转变存储类型或删除。
3. 评估对象
S3 定期根据规则评估对象。匹配的对象进入指定操作的队列。
4. 执行操作
对于等待操作的对象,在达到下一个计划间隔时,S3 会执行指定的操作。
总之,生命周期基于细致的规则自动转变或删除对象。但是设计高效可预测的策略需要考虑周全.
关键优势与应用
生命周期的强大之处在哪里?
成本优化:极少访问的数据转变到低频或冷存储,可节省高达 90% 的存储成本。直接删除不需要的数据。
存储分层:根据访问模式自动在存储类型之间迁移数据。例如,30天后访问日志转变到低频存储。
清理工作:在指定天数后终止未完成的多部分上传,以节省成本。
合规性:根据数据保留政策,在达到规定保存期限后,永久删除敏感数据。
简而言之,生命周期实现从创建到删除的细致自动化数据控制,有效管理存储增长。
实际应用示例
下面我们看一些演示实际使用的生命周期示例:
优化存储成本
30天后日志转变到低频存储,365天后删除:
<LifecycleConfiguration><Rule><Filter><Prefix>logs/</Prefix></Filter><Transitions><Transition><Days>30</Days><StorageClass>STANDARD_IA</StorageClass></Transition></Transitions><Expiration><Days>365</Days></Expiration></Rule>
</LifecycleConfiguration>
自动数据分层
90天后 tax/ 开头的对象转变到冷存储以归档:
<Rule><Filter><Prefix>tax/</Prefix></Filter><Transitions><Transition><Days>90</Days><StorageClass>GLACIER</StorageClass></Transition></Transitions>
</Rule>
删除未完成的多部分上传
7天内未完成的上传过期以节省成本:
<Rule><Filter><And><Prefix>uploads/</Prefix><ObjectState>Multipart</ObjectState></And></Filter><Expiration><Days>7</Days></Expiration>
</Rule>
主要精髓
让我们总结学习要点:
- 生命周期通过细致规则自动转变和删除对象
- 匹配访问模式实现成本优化,避免不受控制的增长
- 精确的策略设计需要深入理解,以防意外后果
- 实际示例演示了常见应用,比如分层、清理和保留
希望这些见解有助于您掌握生命周期的复杂度,并有效实施,也欢迎您可以分享您的问题和应用经验。我们社区的集体智慧将加深我们所有人的理解。
参考资料
- S3 生命周期配置元素
- 使用 S3 生命周期自动化存储分层
- 管理存储生命周期
文章来源:https://dev.amazoncloud.cn/column/article/64e5cb3384d23218430681eb?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN
相关文章:
使用 S3 生命周期精确管理对象生命周期
在亚马逊工作这些年,我发现 S3 的生命周期配置是管理对象生命周期的重要但复杂的工具。在这篇文章中,我将利用实战经验,深入剖析生命周期,从核心概念到实际应用。 亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活…...
RocketMQ零拷贝原理
1 PageCache ●由内存中的物理page组成,其内容对应磁盘上的block。 ●page cache的大小是动态变化的。 ●backing store:cache缓存的存储设备。 ●一个page通常包含多个block,而block不一定是连续的。 1.1读Cache ●当内核发起一个读请求时&#x…...
HTML <tbody> 标签
实例 带有 thead、tbody 以及 tfoot 元素的 HTML 表格: <table border="1"><thead><tr><th>Month</th><th>Savings</th></tr></thead><tfoot><tr><td>Sum</td><td>$180<…...
4.22 TCP 四次挥手,可以变成三次吗?
目录 为什么 TCP 挥手需要四次呢? 粗暴关闭 vs 优雅关闭 close函数 shotdown函数 什么情况会出现三次挥手? 什么是 TCP 延迟确认机制? TCP 序列号和确认号是如何变化的? 在一些情况下, TCP 四次挥手是可以变成 T…...
鲁棒性简述
鲁棒性(Robustness)是指系统或算法对于异常情况或不良条件的抵抗能力和适应能力。一个鲁棒性强的系统能够在面对异常、噪声、错误或意外情况时,仍能够保持高效的运行或输出可接受的结果。 鲁棒性是在设计和开发系统时要考虑的一个重要特性&am…...
复习leetcode
460. LFU 缓存 31. 下一个排列 322. 零钱兑换 662. 二叉树最大宽度 43. 字符串相乘...
从聚类(Clustering)到异常检测(Anomaly Detection):常用无监督学习方法的优缺点
一、引言 无监督学习是机器学习的一种重要方法,与有监督学习不同,它使用未标记的数据进行训练和模式发现。无监督学习在数据分析中扮演着重要的角色,能够从数据中发现隐藏的模式、结构和关联关系,为问题解决和决策提供有益的信息。…...
git仓库提交流程
拉取最新代码 cd dev-ops git拉取最新master代码: git checkout master git pull git checkout wangdachu_dev git merge master :wq 1、切换到文件的本地目录 cd ~/Desktop/aldaba-ops 2、修改用户名和邮箱 git config --global user.email "xxxxxxxxxx.…...
层叠上下文、层叠顺序
原文合集地址如下,有需要的朋友可以关注 本文地址 什么是层叠上下文 层叠上下文(Stacking Context)是指在 HTML 和 CSS 中,用于控制和管理元素层叠顺序以及呈现的一种机制。在一个网页中,许多元素(例如文…...
postgres开发目录
目录 推荐 0.00001 Bruce的博客 0.00002 官方社区博客 0.00003 德哥的培训资料 0.00004 官方开发指南 0.00005 官方网站 0.00006 官方中国网站 0.00007 官方Wiki 0.00008 postgresql代码树 0.00009 gitee-学习资料1 0.00010 gitee-源码 安装与编译 1.00001git源码clone后进…...
计算机视觉入门 6) 数据集增强(Data Augmentation)
系列文章目录 计算机视觉入门 1)卷积分类器计算机视觉入门 2)卷积和ReLU计算机视觉入门 3)最大池化计算机视觉入门 4)滑动窗口计算机视觉入门 5)自定义卷积网络计算机视觉入门 6) 数据集增强(D…...
Python分享之redis(2)
Hash 操作 redis中的Hash 在内存中类似于一个name对应一个dic来存储 hset(name, key, value) #name对应的hash中设置一个键值对(不存在,则创建,否则,修改) r.hset("dic_name","a1","aa&quo…...
springboot aop方式实现敏感数据自动加解密
一、前言 在实际项目开发中,可能会涉及到一些敏感信息,那么我们就需要对这些敏感信息进行加密处理, 也就是脱敏,比如像手机号、身份证号等信息。如果我们只是在接口返回后再去做替换处理,则代码会显得非常冗余…...
RabbitMQ---work消息模型
1、work消息模型 工作队列或者竞争消费者模式 在第一篇教程中,我们编写了一个程序,从一个命名队列中发送并接受消息。在这里,我们将创建一个工作队列,在多个工作者之间分配耗时任务。 工作队列,又称任务队列。主要思…...
GitRedisNginx合集
目录 文件传下载 Git常用命令 Git工作区中文件的状态 远程仓库操作 分支操作 标签操作 idea中使用git 设置git.exe路径 操作步骤 linux配置jdk 安装tomcat 查看是否启动成功 查看tomcat进程 防火墙操作 开放指定端口并立即生效 安装mysql 修改mysql密码 安装lrzsz软…...
系统架构设计师之缓存技术:Redis与Memcache能力比较
系统架构设计师之缓存技术:Redis与Memcache能力比较...
02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装
目录 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模型 ubuntu 22.04下的SQLite安装 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模…...
AIGC ChatGPT 按年份进行动态选择的动态图表
动态可视化分析的好处与优势: 1. 提高信息理解性:可视化分析使得大量复杂的数据变得易于理解,通过图表、颜色、形状、尺寸等方式,能够直观地表现不同的数据关系和模式。 2. 加快决策速度:数据可视化可以帮助用户更快…...
分布式—雪花算法生成ID
一、简介 1、雪花算法的组成: 由64个Bit(比特)位组成的long类型的数字 0 | 0000000000 0000000000 0000000000 000000000 | 00000 | 00000 | 000000000000 1个bit:符号位,始终为0。 41个bit:时间戳,精确到毫秒级别&a…...
Python语言实现React框架
迷途小书童的 Note 读完需要 6分钟 速读仅需 2 分钟 1 reactpy 介绍 reactpy 是一个用 Python 语言实现的 ReactJS 框架。它可以让我们使用 Python 的方式来编写 React 的组件,构建用户界面。 reactpy 的目标是想要将 React 的优秀特性带入 Python 领域,…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent
安全大模型训练计划:基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标:为安全大模型创建高质量、去偏、符合伦理的训练数据集,涵盖安全相关任务(如有害内容检测、隐私保护、道德推理等)。 1.1 数据收集 描…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
