Litestream

简介 Litestream 是一个开源工具,专为 SQLite 设计,以 sidecar 进程的方式运行,持续监听 SQLite 的 WAL(Write-Ahead Log),实时将变更流式同步到对象存储(S3、GCS、Azure Blob 等)。 核心特点: 不改应用代码:应用仍然正常读写 SQLite,Litestream 在旁边透明工作 实时增量复制:默认每秒同步一次 WAL frames,不是全量快照 RPO 秒级:最多丢失几秒内的写入,远优于每日全量备份的 24 小时 RPO 可恢复到任意时间点:S3 上保留完整的 WAL 历史,支持 point-in-time restore 工作原理 应用写 SQLite (enx.db) └─ SQLite WAL 机制产生变更帧 └─ Litestream 监听 WAL └─ 定期上传 WAL frames 到 S3 └─ S3 保留完整变更历史 恢复时,Litestream 从 S3 下载快照 + WAL frames,重放到指定时间点。 安装 # Arch Linux yay -S litestream-bin # 直接下载二进制(Linux amd64) wget https://github.com/benbjohnson/litestream/releases/latest/download/litestream-linux-amd64.tar.gz tar -xzf litestream-linux-amd64.tar.gz sudo mv litestream /usr/local/bin/ 配置 创建配置文件 /etc/litestream.yml: ...

Created 18186-05-18 · Updated 18186-05-18 · 2 min · 238 words · -

AWS 存储服务

概览 服务 类型 免费额度 最低月费 S3 对象存储 5 GB(前 12 个月) 极低,详见 S3 EBS 块存储 30 GB(前 12 个月) 按容量计费 EFS 文件存储(NFS) 5 GB(前 12 个月) 按用量计费 RDS 关系型数据库 db.t3.micro 750h(前 12 个月) ~$15/月 Aurora 关系型数据库(高性能) 无 ~$30/月起 DynamoDB KV / 文档 NoSQL 25 GB 存储 + 25 WCU/RCU(永久) 免费起步 ElastiCache 内存缓存(Redis / Memcached) 无 ~$15/月 DocumentDB 文档数据库(MongoDB 兼容) 无 ~$30/月起 Keyspaces 宽列 NoSQL(Cassandra 兼容) 无 按用量计费 Neptune 图数据库 无 ~$50/月起 Timestream 时序数据库 无 按用量计费 OpenSearch 全文检索 / 日志分析 无 ~$20/月起 Redshift 数据仓库(OLAP) 无 ~$180/月起 Athena S3 直接查询 无 $5/TB 查询数据量 NoSQL 数据库(免费首选) DynamoDB AWS 自研全托管 NoSQL,完全 Serverless。 ...

Created 18186-05-18 · Updated 18186-05-18 · 2 min · 369 words · -

AWS S3

简介 Amazon Simple Storage Service(S3)是 AWS 的对象存储服务,用于存储任意类型的文件(备份、静态资源、日志等),按实际使用量计费。 核心概念: Bucket:存储桶,名字在全球所有 AWS 账号、所有区域共享同一命名空间,全球唯一 Object:对象,即一个文件,由 Key(路径)+ 数据 + 元数据组成 Key:对象的唯一标识符,形如 path/to/file.txt,只需在桶内唯一(S3 本身是扁平结构,/ 只是命名惯例) 概念 唯一性范围 Bucket 名字 全球唯一(跨账号、跨区域) Object Key 桶内唯一 数据存储位置 只在创建时指定的区域 区域与高可用 Bucket 在创建时必须指定区域(如 ap-northeast-1 东京),之后无法更改,数据默认只存在于该区域。 S3 在同一个区域内会把数据自动分散到至少 3 个可用区(AZ),设计耐久性是 99.999999999%(11 个 9)。区域内某个数据中心故障,数据不受影响。 如果整个区域发生故障(极罕见),默认情况下无法从其他区域访问该桶的数据。如需跨区域容灾,要显式配置 Cross-Region Replication(CRR): 东京桶(主) --CRR--> 新加坡桶(副本) CRR 要求两个桶都开启版本控制(Versioning),并配置 IAM Role 授权跨桶复制权限。 实践建议:用于数据库备份等灾难恢复场景,单区域已经足够,无需配置 CRR。若担心区域级故障,更简单的做法是用 aws s3 sync 定期同步到另一个区域,或下载到本地存一份。 常用命令 # 列出所有 bucket aws s3 ls # 列出 bucket 内的对象 aws s3 ls s3://my-bucket/ aws s3 ls s3://my-bucket/prefix/ # 上传文件 aws s3 cp local-file.txt s3://my-bucket/path/file.txt # 下载文件 aws s3 cp s3://my-bucket/path/file.txt local-file.txt # 同步目录(本地 → S3) aws s3 sync ./local-dir s3://my-bucket/prefix/ # 同步目录(S3 → 本地) aws s3 sync s3://my-bucket/prefix/ ./local-dir # 删除对象 aws s3 rm s3://my-bucket/path/file.txt # 删除 prefix 下所有对象 aws s3 rm s3://my-bucket/prefix/ --recursive Bucket 管理 # 创建 bucket(指定区域) aws s3api create-bucket \ --bucket my-bucket \ --region ap-northeast-1 \ --create-bucket-configuration LocationConstraint=ap-northeast-1 # 删除 bucket(必须先清空) aws s3 rm s3://my-bucket --recursive aws s3api delete-bucket --bucket my-bucket # 查看 bucket 所在区域 aws s3api get-bucket-location --bucket my-bucket 生命周期策略(Lifecycle) 用于自动过期或转换存储类型,节省费用。 ...

Created 18186-05-18 · Updated 18186-05-18 · 3 min · 446 words · -