草庐IT

Amazon S3 服务15岁生日快乐!

亚马逊云开发者 2023-11-06 原文

2021年3月14日,作为第一个发布的服务,Amazon S3 服务15周岁啦!在中国文化里,15岁是个临界点,是从“舞勺之年”到“舞象之年”的过渡。相信对于 Amazon S3 和其他的云服务15周岁也将是其迎接更加美好未来的全新起点。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源,这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过, 点这里让它成为你的技术宝库!

亚马逊云科技的诞生

2005年左右,在西雅图国会山街区的 McMenamins Six Arms 酒吧里,时任亚马逊云科技高级技术专家的 Allan Vermeulen 一边喝着 Hammerhead 艾尔啤酒,一边在餐巾纸背面勾勒出一项关键云计算服务的最初设计原则——提供无限制的、按需付费的数据存储。

其实,亚马逊云科技早在几年前就已意识到:扩展计算能力、为软件开发者提供基于互联网的服务是其优势所在。

为了解决成长中的痛点,亚马逊将可靠的、具有成本效益的数据中心建设和数据库管理等服务过程集中起来,这样亚马逊的团队就可以专注于产品设计,为亚马逊官网吸引更多的消费者。同时,亚马逊也首次涉足数字基础架构服务的营销。

2003年开始,亚马逊把后来的亚马逊云科技的各个部分整合在一起。

2004年,亚马逊云科技发布了一些产品的测试版本,这些产品后来构成了亚马逊云科技的基础。

亚马逊在当时还做出了一个重要决定,将产品数据的重度用户聚集到当时位于贝肯山的太平洋医疗中心的公司总部。而后,亚马逊云科技继续朝着受全球软件开发者大军欢迎的方向迈进。

于是2006年3月14日,亚马逊云科技推出了首款云计算服务款大众市场产品——Amazon Simple Storage Service,即 Amazon S3。对许多亚马逊人来说,这一天标志着亚马逊云科技的诞生。

Amazon S3

亚马逊首席技术官 Werner Vogels 表示,

“S3 是以 Vermeulen 在餐巾纸背面勾画的蓝图为指导,在华盛顿州会展中心租用的房间里的头脑风暴会议上进行了精简,以及太平洋医疗中心里许多个“漫长的黑夜”的反复设计。经过这些不懈的努力,S3 支持开发人员在任何时间从网络上的任何地方存储和检索“任何数量的数据。”

两个月之后,存储在 S3 上对象 (请把它们想象成文件)的数量就已经超过了亚马逊开发人员预期的100倍。目前,S3 上存储了超过100万亿个对象,从天气预报和基因组研究,到广告和面部识别等,这些海量数据见证了这些领域的进步。

今天,S3 也还在继续收到更多功能的需求。亚马逊云科技继续分析、审查和改进 S3 实施的每个部分,以提高性能、规模和可靠性。这意味着,随着时间的推移,S3 希望能无需更改 API,也无需停机即可进行升级,这将使得 S3 立于不败之地。举一个简单的例子,亚马逊云科技最近建立了一种方法来显著减少对 S3 提出的0.01%的PUT请求的延迟,虽然看着是一个小的进步,但却是一个重大的胜利:首先,它避免了客户请求超时和重试的情况;其次它使得开发人员可以进一步减少延迟。

亚马逊云科技做了很多后来被证明是正确的决定,使得开发人员在几分钟内轻松理解和开始使用 S3。这一切都开始于一个简单的概念模型 - 存储桶:唯一命名的,可以容纳任意数量的对象,每个对象都由字符串键标识。最初的API也是同样简单,比如说创建一个存储桶,列出所有存储桶,放置一个对象,获取一个对象,或者放置一个访问控制列表,等等。

这些简单特性为快速响应客户的反馈和不断发展 S3 提供了很好的基础。而且这些决定,现在仍然是先进,第一天编写的代码仍然在今天运行着。

S3 使用了成本跟踪模型。在遵循成本的情况下,无论开发人员用 S3 完成什么任务,首先是要满足需求,然后是尽可能降低成本,这样也可以降低成本。按照成本跟踪模型,不断降低 S3 每 GB/月的价格,并引入了存储类别的概念,从而使得开发者可以用更少的费用来存储不常使用的数据(比如说 S3 Glacier 和 S3 GDA);或者是那些在需要时,可以被重建的数据(比如说S3不频繁访问区域)。并且还引入了 S3 Intelligent-Tiering,用来监视访问模式,并将对象自动移动到适当存储层的功能。

这些功能为开发人员轻松访问任意大小数据的能力,以及获得简单的报价模型,就变得非常重要。

正如《纽约时报》撰文人约翰·马尔科夫(John Markoff)在S3推出不久后说到:

亚马逊最近推出的 S3 在线存储服务,每月每千兆字节是15美分。这使程序员在 Internet 上构建新的应用程序或服务的时候,不必创建昂贵数据存储系统 。

2006年互联网正在“进入乐高时代”。这预示着云计算曙光的来临,它从根本上改变了依赖计算机的企业的经济效益。据 Vogels 估算,早期的互联网创业者可能要将70%的时间和精力用于建设数据中心、设计和维护基本的基础架构软件上,而员工只有30%的精力用于开发新产品。亚马逊云科技颠覆了这一比例。客户只需要一个电子邮件地址和一张信用卡,就可以获得数据存储、计算能力和数据库服务。在亚马逊云科技的支持下,像 Lyft 和 Airbnb 这样基于应用的创业公司大量涌现。

亚马逊在云计算领域的先发优势让竞争对手望尘莫及。根据市场研究公司 Canalys 提供的数据:亚马逊占据主导地位,按收入计算,亚马逊占据31%的市场份额,而微软为20%,谷歌为7%。Vogels 说,“亚马逊是IT界的乐高。”“我们制造了体积非常小的积木。因此,开发人员可以将很多块积木堆叠在一起。”

耐用性是一早就开始设计的。早在2010年S3就旨在提供“ 11个9”(99.999999999%)的耐用性。

亚马逊云科技知道硬件,软件和网络故障一直在发生,亚马逊云科技构建了 S3 就透明地合适地处理这些事件。比如说,S3 会自动使用多个存储阵列,机架,单元和可用区。同样,对安全性也有着坚定的承诺,一直以来都将其视为“基本工作”。亚马逊云科技以后也会继续完善和改进一系列安全选项和功能,这些功能可用于保护存储在 S3 中的数据。

在启动 S3 的几天后,工具,应用程序和站点开始出现。正如所期望的那样,有很多新的需求是完全出乎意料的,如今也很高兴看到开发人员都提出了新的需求。15年后的今天,S3 继续赋予开发人员权力和灵感,让他们专注于创新!

对S3的一些补充

基础知识–Versioning, Event Notifications, Select, Access Points, S3 on Outposts, and Strong Consistency.

存储类– S3 Glacier, S3 Standard-Infrequent Access, S3 Intelligent-Tiering, and S3 Glacier Deep Archive.

存储管理–Cross-Region Replication, Same-Region Replication, Replication Time Control, Replication to Multiple Destination, Lifecycle Policies, Object Tagging, Storage Class Analysis, Inventory, CloudWatch Metrics, and Batch Operations.

安全性–Block Public Access, Access Analyzer, Macie, GuardDuty, Object Ownership, and PrivateLink.

数据移动–Import/Export, Snowmobile, Snowball, and Snowcone.

多年来,亚马逊云科技在全球各地建立并管理超大规模数据中心,用 Vermeulen 在2014年的一次采访中的描述来形容就是,这些数据中心有“一排排服务器”延伸到远方。但 Vogels 表示,亚马逊云科技的未来在于本地服务。亚马逊已经推出了一套硬件,旨在使亚马逊云科技走入用户的家庭和办公室——实现基于5G网络的超快移动应用——并进入数据收集的现场。

从第一个存储类服务 S3 到如今涵盖计算、数据库、物联网、迁移、机器学习与人工智能等众多方面的 400种实例;从美国到遍及25个地理区域的80个可用区、245个国家和区域;从创立到获得了全球数百万客户的支持与信赖……15年来,亚马逊云科技为众多企业和开发技术人员坚实地提供可信赖的云服务支持,并且不断前进,持续提供创新服务与产品,努力用创新和技术赋能客户,帮助他们在商业社会中,不断拓展自己的发展空间,茁壮成长!

文章来源:https://dev.amazoncloud.cn/column/article/62b3fb8a849b456b98432af9?sc_channel=CSDN

有关Amazon S3 服务15岁生日快乐!的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  4. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  5. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  6. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  7. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  8. ruby - Rails 开发服务器、PDFKit 和多线程 - 2

    我有一个使用PDFKit呈现网页的pdf版本的Rails应用程序。我使用Thin作为开发服务器。问题是当我处于开发模式时。当我使用“bundleexecrailss”启动我的服务器并尝试呈现任何PDF时,整个过程会陷入僵局,因为当您呈现PDF时,会向服务器请求一些额外的资源,如图像和css,看起来只有一个线程.如何配置Rails开发服务器以运行多个工作线程?非常感谢。 最佳答案 我找到的最简单的解决方案是unicorn.geminstallunicorn创建一个unicorn.conf:worker_processes3然后使用它:

  9. ruby - Dropbox 类似 git 的服务——没有 rsync 和 inotify - 2

    关于如何使用git设置类似Dropbox的服务,您有什么建议吗?您认为git是解决此问题的合适工具吗?我在考虑使用git+rush解决方案,你觉得怎么样? 最佳答案 检查这个开源项目:https://github.com/hbons/SparkleShare来自项目的自述文件:Howdoesitwork?SparkleSharecreatesaspecialfolderonyourcomputer.Youcanaddremotelyhostedfolders(or"projects")tothisfolder.Theseprojec

  10. ruby TFTP 服务器 - 2

    我将以下代码放在一起用于一个简单的RubyTFTP服务器。它工作正常,因为它监听端口69并且我的TFTP客户端连接到它,我能够将数据包写入test.txt,但我不只是写入数据包,我希望能够从我的客户端通过TFTP传输文件到/temp目录。预先感谢您的帮助!require'socket.so'classTFTPServerdefinitialize(port)@port=portenddefstart@socket=UDPSocket.new@socket.bind('',@port)whiletruepacket=@socket.recvfrom(1024)putspacketFile

随机推荐