Amazon Simple Storage Service(Amazon S3)
Amazon S3是高可扩展性、持久性和可用的分布式对象存储,它主要是为重要的任务和主要的数据存储,而且它还有一个易于使用的web服务接口。在传统的内部应用程序中,这种类型的数据一般都会保存在SAN或NAS上。然而,一个基于云的机制比如Amazon S3,是灵活的,弹性的,可冗余的。Amazon S3提供了web服务接口,使用这个web服务接口我们可以在任何时间在Amazon EC2或者web上的任何地方存储或者获取任何多的数据。你能够写入、读取、删除大小从1byte到5TB的数据对象,并且在一个Amazon S3桶中你能够存储的对象的数据是没有限制的。Amazon S3还有高可扩展性,允许通过许多独立的客户端或者程序的线程对Amazon S3中的数据进行并发的读取或者写入。
1、完美的使用方案
Amazon S3最常用的应用是存储静态网页内容。这些内容可以通过一个web服务器直接从Amazon S3中传送出来,因为Amazon S3中的每个对象都有一个唯一的HTTP URL地址,或者通过CDN进行传送,比如Amazon CloudFront。由于Amazon S3的弹性,它特别适合在带宽经常改变时传送主机网页内容。而且,因为不用进行存储配置,Amazon S3非常适合快速增长的有大量的用户内容(比如,视频和图片共享)的网站。
Amazon S3也常常用来作为大规模计算的数据存储,比如,分析金融交易或者点击流数据,视频传送编码。因为Amazon S3的水平可扩展性,你可以并发地从多个计算节点访问你的数据,而不仅仅是一个连接。
最后,Amazon S3常常用来存储重要任务的数据,高可靠性地存储Amazon EBS Volumes的快照,为连续的业务提供备份和热灾难恢复。因为Amazon S3存储对象时,会跨越多个设施的多个设备进行冗余存储,它提供了高持久性的存储设施,这正是这些方案所需要的。
2、性能
在同一个区域中从Amazon EC2中访问Amazon S3的速度很快。如果你并发地使用多个线程、多个程序或者多个客户端来访问Amazon S3,Amazon S3总的吞吐量远远超过单个的服务器生成的或消耗的。
为了快速访问相关的数据,许多开发者会同时使用Amazon S3和Amazon SimpleDB。Amazon S3存储实际的信息,Amazon SimpleDB服务器存储相关的元数据(比如,对象名,容量,关键字等等)。SimpleDB提供自动索引,使得我们可以高效地通过对元数据的搜索定位到一个对象的引用。这个结果可以用来准确地定位目标,然后从Amazon S3中取出对象。
3、持久性和可用性
通过自动同步地在你所选择的地理区域中的多个设备和设施之间存储数据,Amazon S3提供了在AWS平台中最高级别的数据持久性和可用性。纠正错误是内建的功能,而且没有单点故障。Amazon S3旨在承受两个设施的并发的数据丢失,这样,它就非常适合存储重要任务的数据。事实上,Amazon S3对每个对象有99.999999999%的持久性和一年时间的99.99%可用性。除了它自己的冗余度,Amazon S3还能对Amazon S3版本的使用让数据免遭应用程序错误和意外删除造成的数据损坏。有了在一个桶中的可用的这种方案,删除一个版本的Amazon S3对象需要两种形式的认证:有效的AWS账户凭证和一个从物理令牌设备的六个数字的代码。
对于那些在需要的时候容易重新生成的非重要数据,比如,通过转码的媒体、图像的缩略图,你能够在Amazon S3中使用RRS,它提供更低级别的持久性,而且存储费用也较低。使用RRS存储的对象的冗余度比用标准Amazon S3存储的对象低。但是,在这两种情况下,你的数据仍然存储在多个地方的多个设备上。RRS旨在在一年里为每个对象提供99.99%的持久性。虽然RRS的持久性比Amazon S3低,但是,它还是比通常的磁盘驱动器的冗余度高400倍。
4、花费
同所有的AWS相比,使用Amazon S3你只需为你所使用的部分付费,没有最少费用和长期合同。Amazon S3的费用有三部分:存储(以每月每GB计算)、数据的传输(以每月每GB计算)、请求(以每月每n千个请求计算)。对于新的用户,AWS提供免费的5GB容量的Amazon S3存储。
5、弹性和可扩展性
Amazon S3被设计成能够自动提供非常高级别的弹性和可扩展性。不像传统的文件系统那样,在一个目录中存放大量文件时会遇到问题,Amazon S3在桶中可以存放无限量的文件。而且,不像传统的磁盘驱动器,它对文件数据的多少有限制,在你存放文件之前,你必须对数据进行分割,而一个Amazon S3桶对文件数据多少没有限制。你能够存放无限多的对象,并且Amazon S3会在同一个Region中的其它地方的服务器上对你的信息进行大规模和分布式地冗余备份,所有的这些都采用Amazon的高性能基础设施。
6、接口
Amazon S3提供了SOAP和RESTful网页服务器的API。这些API使得可以在名字唯一的桶(顶级文件夹)中存储Amazon S3对象(文件)。每个对象在它所在的桶中有一个唯一的对象键(文件名),它作为这个对象的标识符。因为Amazon S3是一个基于web的存储系统而不是传统的文件系统,你可以创建和文件相对应的全路径名的对象键名,从而可以简单地在Amazon S3中模仿文件系统的层次结构。
大多数开发者在Amazon S3中创建程序时都是使用高级工具包。AWS和第三方已经为几种有名的软件开发语言和平台开发了Amazon S3接口工具包和库。
因为Amazon S3旨在主要通过API进行访问,AWS Management Console和第三方工具也已经开发出了能够同你的Amazon桶和对象进行交互的图形接口和命令行接口。Amazon S3也支持BitTorrent协议,它能够让用户同时从Amazon S3和其它提供商获取信息。
为了上传和下载大量数据,你还能使用AWS Import/Export服务。AWS Import/Export使用轻便的传输存储设备能够加速从AWS移入或移出数据。Amazon会装载你的设备,然后从你预先制定的Amazon S3桶中移入或移出数据。这种方法比通过网络传输大量数据速度更快、价格更便宜。
要注意的是,RRS和标准Amazon S3使用相同的接口;在PUT操作中设置Storage Class属性,或者在AWS Management Console选择“Use Reduced Redundancy Storage”设置,为Amazon S3对象或者桶制定RRS选项。
7、Amazon S3反模式
Amazon S3最适合存储大量分类的信息,这些信息是相对静态的,并且可以充分利用Amazon S3的持久性、可用性和弹性等特点。然而,在大量情况下,Amazon S3并不是最佳方案:
文件系统—Amazon S3使用一个平坦的名字空间(不是分层次的),并不会作为独立的、与POSIX兼容的文件系统。然而,可以使用分隔符(通常是‘/’或者‘\’),在一个给定的桶中创建你的键来模仿文件系统的分层式的文件夹结构。
可查询的结构化数据—Amazon S3不提供查询的能力:要获取一个指定的对象,你需要事先指定桶名和键值。因此,你不能只把Amazon S3作为数据库使用。一种通常的使用方式是在Amazon S3中存放一个对象,然后,使用Amazon SimpleDB存放对象的元数据。你也能使用其它诸如Amazon RDS或者在Amazon EC2实例上的数据等数据库技术。然后,你可以搜索数据库来定位对象的桶名和键值,从而从Amazon S3桶中获取对象。
快速改变的数据—对于频繁更新的数据,最好使用诸如EBS或者数据库等有着低读写等待时间的存储方案。
Amazon Simple Storage Service(Amazon S3)相关推荐
- Amazon Simple Storage Service (Amazon S3) 简介
Amazon Simple Storage Service (Amazon S3) 接下来要介绍的是如何将先前的应用程序从 EC2 搬移到更轻量的 Container 里,但在介绍 Container ...
- OSS(对象存储服务)与 AWS S3(Amazon Simple Storage Service)
1. AWS S3对象存储 Amazon Simple Storage Service (Amazon S3) 是一种面向 Internet 的存储服务.您可以通过 Amazon S3 随时在 Web ...
- Amazon Simple Storage Service介绍
在这篇博文中我们讨论一下Amazon Simple Storage Service(简称S3),这是亚马逊AWS服务在2006年第一个正式对外推出的云计算服务,所以在我们博客中的服务介绍中就从它开始介 ...
- 用 Amazon Web Services 进行云计算,第 2 部分: 用 Amazon Simple Storage Service (S3) 在云中存储数据
用 Amazon Web Services 进行云计算,第 2 部分: 用 Amazon Simple Storage Service (S3) 在云中存储数据 简介: 学习基本的 Amazon Si ...
- java queue使用_使用Java使用Amazon Simple Queue Service
java queue使用 Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列. Amazon SQS可用于完全解耦系统 ...
- 使用Java使用Amazon Simple Queue Service
Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列. Amazon SQS可用于完全解耦系统中不同组件的操作,这些组件 ...
- 使用Amazon Simple Queue Service(SQS) 实现简单的消息服务
一 引言 亚马逊Amazon作为云计算的领跑者推出了很多云服务,最近因为项目的原因,需要用到SQS服务,因此简要地写下这篇随笔,一来方便以后查阅,二来方便共享一些简单的操作. SQS即可以理解为一个 ...
- AWS S3 (Simple Storage Service)
EC2 instance可以通过internet和私有连接两种方式访问.建议使用endpoints(私有连接)的方式访问S3这种不处于某一个具体的vpc中的公共服务,而不是通过IGW或者NAT gat ...
- AWS - Amazon Simple Email(ASE) 邮件服务
Amazon Simple Email Service Amazon Simple Email Service (Amazon SES) 为基于云端的电子邮件发送服务,旨在帮助数字营销师和应用程序开发 ...
最新文章
- c语言分段错误空指针,C语言空指针总结 - 祂的小哥哥的个人空间 - OSCHINA - 中文开源技术交流社区...
- Android性能优化之App应用启动分析与优化
- 重做日志文件(redo log file)和归档日志文件(archive log file)
- MySQL主从复制简单设置
- java 连接sqlserver2005_JAVA用jdbc连接SQLServer2005
- NYOJ 229 工程 二分+dp检验
- 提高代码质量 CheckStyle FindBugs PMD
- 底层实现红黑树_图解:红黑树
- 图片盒子控件 winform 114868210
- pytorch 全局变量_Pytorch如何通过深度学习展现全局
- 原始套接字AF_PACKET用法尝试
- exchange无法收发邮件_【知乎最详细】Windows邮件amp;日历UWP+QQ邮箱如何设置
- php系统变量有哪些,php预定义系统变量
- 热力地图高德_调用高德地图API(热力图)详解
- VMware 虚拟机Win10固定ip地址
- 中文编程发展与兴起的重要意义
- 机器学习常见面试题总结
- SitePoint播客#57:不是负面
- 【基础】python操作Word时,自动更新目录(二)
- 如何免费识别图片文字?这几个软件彻底解放你的双手