特别专栏|Column
AWS系列:S3不仅仅是存储
【编者按】本文系InfoQ中文站向陈天的约稿,这是AWS系列文章的第二篇。以后会有更多文章刊出,但并无前后依赖的关系,每篇都自成一体。读者若要跟随文章来学习AWS,应该至少注册了一个AWS账号,事先阅读过当期所介绍服务的简介,并在AWS management console中尝试使用过该服务。否则,阅读的效果不会太好。在这篇文章里,介绍了尝试用S3创建公司内部的文件服务器,保存员工私人/共享文件,并以类似Dropbox的方式双向同步。
S3介绍
S3是AWS最早发布的诸多服务之一,用作可信存储。所谓可信,AWS给出的概念是:「在指定年度内为对象提供99.999999999% 的持久性和高达99.99% 的可用性」,换句话说就是任何存储于S3的数据基本不可能丢失,在一个年度内,不超过1小时(3153.6s)的宕机时间。除此之外,S3还提供如下特性:
跨区域复制:只需要简单的配置,存储于S3中的数据会自动复制到选定的不同区域中。当你的数据对象的收集分散在不同的区域,而处理集中在某些区域时非常有用。
●事件通知:当数据对象上传到Amazon S3中或从中删除的时候会发送事件通知。事件通知可使用SQS或SNS进行传送,也可以直接发送到AWS Lambda进行处理。比如说,上传到S3的图片的resize。
●版本控制:数据对象可以启用版本控制,这样你就可以很方便地进行回滚。对于应用开发者来说,这是个特别有用的特性。
●加密:S3的访问本身是支持SSL(HTTPS)的,保证传输的安全,对于数据本身,你可以通过Server side encryption(AES256)来加密存储在S3的数据。
●访问管理:通过IAM/VPC可以控制S3的访问粒度,你甚至可以控制一个bucket(S3对数据的管理单元,一个bucket类似于一组数据的根目录)里面的每个folder,甚至每个文件的访问权限。
●可编程:可以使用AWS SDK进行客户端或者服务端的开发。
●成本监控和控制:S3有几项管理和控制成本的功能,包括管理成本分配的添加存储桶标签和接收账单警报的Amazon Cloud Watch集成。
●灵活的存储选项:除了S3 Standard,还有低成本的Standard- Infrequent Access选项可用于非频繁访问数据,存储的价格大概是Standard的2/5。至于那些访问不了多少次的冷数据(如1年前的Log),可以存储在Glacier中,价格在Standard的1/4(1T $7/月),缺点是需要几个小时来恢复数据(估计是存放于离线的磁带中)。