What do you see as the advantages and disadvantages of Amazon Web Services S3 compared with Google Application Engine? The cost per gigabyte for the two is, at the time I ask, roughly similar; I have not seen any widespread complaints about the quality of service; so I think the decision of which one to use may depend on the API (of all things).
您认为Amazon Web Services S3与Google Application Engine相比的优势和劣势是什么?在我问的时候,这两个人的每GB成本大致相似;我没有看到任何关于服务质量的普遍抱怨;所以我认为决定使用哪一个可能取决于API(所有事情)。
Google's API breaks your content into what they call static content, such as your CSS files, favicons, images, etc and non-static dynamically-generated HTTP responses. Requests for static stuff will be served to whoever requests it until your bandwidth limit is reached; non-static requests will be fulfilled until your bandwidth or CPU limit is reached. With respect to your non-static requests, you can provide any logic you are able to express in Python, so you can be choosy about who you serve.
Google的API将您的内容分解为静态内容,例如CSS文件,favicon,图像等,以及非静态动态生成的HTTP响应。静态内容的请求将提供给任何请求它的人,直到达到您的带宽限制为止;在达到您的带宽或CPU限制之前,将满足非静态请求。对于您的非静态请求,您可以提供您能够在Python中表达的任何逻辑,因此您可以挑选自己的服务对象。
Amazon's API treats all your content as blobs in a bucket, and provides an access protocol that lets you distinguish between a variety of fulfillable requests ranging from world-readable to owner-only. If you want to something that's not in the kit, though, I don't know what you do beyond being thoughtful about distributing your URIs.
亚马逊的API将您的所有内容视为存储桶中的blob,并提供访问协议,使您可以区分从世界可读到仅限所有者的各种可满足请求。但是,如果你想要一些不在套件中的东西,除了分发你的URI之外,我不知道你做了什么。
What differences do you see between the two? Are there other cloud storage services you like? Zetta had a press release today, but they're looking for a minimum of ten terabytes on the beta application, and none of my clients are there (yet); and Joyent will probably do something in the near future.
你们两者之间有什么不同?您还喜欢其他云存储服务吗? Zetta今天发布了一个新闻稿,但是他们在beta应用程序上寻找至少10TB,而我的客户都没有(还有);和Joyent可能会在不久的将来做点什么。
2 个解决方案
#1
GAE has a limit of 10MB each on static files uploaded through appcfg.py (look right at the bottom of http://code.google.com/appengine/docs/python/tools/uploadinganapp.html). Obviously you can write code to slice large files into bits and reassemble at download time, but it suggests to me that Google doesn't expect App Engine to be used just as a simple CDN, and that if you want to use it as one you'll have to do some work. S3 does the job out of the box, all you have to do is grab a third-party interface app.
对于通过appcfg.py上传的静态文件,GAE每个限制为10MB(请查看http://code.google.com/appengine/docs/python/tools/uploadinganapp.html底部)。显然你可以编写代码将大文件切成小块并在下载时重新组装,但它告诉我谷歌不希望App Engine只是作为一个简单的CDN使用,如果你想把它作为一个你使用它我得做一些工作。 S3完成了开箱即用的工作,您所要做的就是获取第三方界面应用程序。
If you want to do something non-standard with file access on S3, then probably Amazon expects you to spring for a server instance on EC2. Once this is done, you have much more flexibility than GAE's environment, but you pay more (in cash and probably in maintenance).
如果你想在S3上做一些非标准的文件访问,那么亚马逊可能希望你在EC2上使用服务器实例。一旦完成,您就拥有比GAE环境更多的灵活性,但您需要支付更多(现金和维护费用)。
The plus point for GAE is that it has "cheap" on its side for small apps (up to 1GB storage, 1GB bandwidth and 1.3 million hits a day are free: http://code.google.com/appengine/docs/quotas.html). Depending on your use, this might be significant, or it might be irrelevant on the scale of your total bandwidth costs.
GAE的优点在于它对小型应用程序来说“便宜”(高达1GB存储空间,1GB带宽和每天130万次点击是免费的:http://code.google.com/appengine/docs/quotas的.html)。根据您的使用情况,这可能很重要,或者可能与您的总带宽成本无关。
Coincidentally, I have just this last couple of days looked at GAE for the first time. I took an old Perl CGI script and turned it into a GAE app, which is up and running. About 10 hours total, including reading the GAE introductory docs and remembering how Python is supposed to work enough to write a couple of hundred lines. I'd speculate that's more effort than loading a bunch of files onto S3, but less effort than maintaining EC2 server(s). However, I haven't used Amazon.
巧合的是,我最近几天才第一次看到GAE。我拿了一个旧的Perl CGI脚本并将其转换为GAE应用程序,该应用程序启动并运行。总共大约10个小时,包括阅读GAE入门文档,并记住Python应该如何工作足以编写几百行。我推测,比将一堆文件加载到S3更省力,但比维护EC2服务器要省力。但是,我还没有使用亚马逊。
[Edited to add: this sounds like the advantages are all with Amazon for commercial purposes. This may well be true, but then GAE is not yet mature and presumably will get better from here fairly rapidly. They only let people start paying in December or so, before that it was free-quota-only except by special arrangement with Google. While Google sometimes takes flack for its claims of "perpetual beta", I think GAE genuinely is still starting up. If your app is a good fit for the BigTable data paradigm, then it might scale better on GAE than EC2. For storage I assume that S3 is already good enough for all reasonable purposes, and Google's clever architecture gives GAE no advantages to compensate when all you're doing is serving files.]
[编辑补充说:这听起来像亚马逊的商业用途的优势。这可能是真的,但GAE尚未成熟,并且可能会从这里相当迅速地变得更好。他们只允许人们在12月左右开始付款,之前只有免费配额,除非与谷歌有特殊安排。虽然谷歌有时会因其“永久测试版”的声称而受到抨击,但我认为GAE真的还在启动。如果您的应用程序非常适合BigTable数据范例,那么它在GAE上的扩展可能比EC2更好。对于存储,我认为S3已经足够用于所有合理的目的,并且谷歌的聪明架构使得GAE没有任何优势来补偿当你所做的只是提供文件时。
* Except that Google has just offered me a preview of GAE's Java support.
*除了Google刚刚向我提供了GAE Java支持的预览。
** Just noticed that you can set up chron jobs, but they're limited by the same rules as any other request (30 second runtime, can't modify files, etc).
**只是注意到您可以设置chron作业,但它们受到与任何其他请求相同的规则限制(30秒运行时,无法修改文件等)。
#2
The way I see it is the Google App Engine basically provides a sandbox for you to deploy your app as long as it is written with their requirements (Python etc). Amazon gives you a virtual machine with a lot more flexibility in what can be done but probably more work on your side needed. MS new Azure seems to be going down the GAE route, but replace Python with .NET.
我认为它的方式是Google App Engine基本上为您提供了一个沙箱,只要它符合他们的要求(Python等)就可以部署您的应用程序。亚马逊为您提供了一个虚拟机,它可以提供更多的灵活性,但可能需要更多的工作。 MS新Azure似乎沿着GAE路线走下去,但用.NET代替Python。
#1
GAE has a limit of 10MB each on static files uploaded through appcfg.py (look right at the bottom of http://code.google.com/appengine/docs/python/tools/uploadinganapp.html). Obviously you can write code to slice large files into bits and reassemble at download time, but it suggests to me that Google doesn't expect App Engine to be used just as a simple CDN, and that if you want to use it as one you'll have to do some work. S3 does the job out of the box, all you have to do is grab a third-party interface app.
对于通过appcfg.py上传的静态文件,GAE每个限制为10MB(请查看http://code.google.com/appengine/docs/python/tools/uploadinganapp.html底部)。显然你可以编写代码将大文件切成小块并在下载时重新组装,但它告诉我谷歌不希望App Engine只是作为一个简单的CDN使用,如果你想把它作为一个你使用它我得做一些工作。 S3完成了开箱即用的工作,您所要做的就是获取第三方界面应用程序。
If you want to do something non-standard with file access on S3, then probably Amazon expects you to spring for a server instance on EC2. Once this is done, you have much more flexibility than GAE's environment, but you pay more (in cash and probably in maintenance).
如果你想在S3上做一些非标准的文件访问,那么亚马逊可能希望你在EC2上使用服务器实例。一旦完成,您就拥有比GAE环境更多的灵活性,但您需要支付更多(现金和维护费用)。
The plus point for GAE is that it has "cheap" on its side for small apps (up to 1GB storage, 1GB bandwidth and 1.3 million hits a day are free: http://code.google.com/appengine/docs/quotas.html). Depending on your use, this might be significant, or it might be irrelevant on the scale of your total bandwidth costs.
GAE的优点在于它对小型应用程序来说“便宜”(高达1GB存储空间,1GB带宽和每天130万次点击是免费的:http://code.google.com/appengine/docs/quotas的.html)。根据您的使用情况,这可能很重要,或者可能与您的总带宽成本无关。
Coincidentally, I have just this last couple of days looked at GAE for the first time. I took an old Perl CGI script and turned it into a GAE app, which is up and running. About 10 hours total, including reading the GAE introductory docs and remembering how Python is supposed to work enough to write a couple of hundred lines. I'd speculate that's more effort than loading a bunch of files onto S3, but less effort than maintaining EC2 server(s). However, I haven't used Amazon.
巧合的是,我最近几天才第一次看到GAE。我拿了一个旧的Perl CGI脚本并将其转换为GAE应用程序,该应用程序启动并运行。总共大约10个小时,包括阅读GAE入门文档,并记住Python应该如何工作足以编写几百行。我推测,比将一堆文件加载到S3更省力,但比维护EC2服务器要省力。但是,我还没有使用亚马逊。
[Edited to add: this sounds like the advantages are all with Amazon for commercial purposes. This may well be true, but then GAE is not yet mature and presumably will get better from here fairly rapidly. They only let people start paying in December or so, before that it was free-quota-only except by special arrangement with Google. While Google sometimes takes flack for its claims of "perpetual beta", I think GAE genuinely is still starting up. If your app is a good fit for the BigTable data paradigm, then it might scale better on GAE than EC2. For storage I assume that S3 is already good enough for all reasonable purposes, and Google's clever architecture gives GAE no advantages to compensate when all you're doing is serving files.]
[编辑补充说:这听起来像亚马逊的商业用途的优势。这可能是真的,但GAE尚未成熟,并且可能会从这里相当迅速地变得更好。他们只允许人们在12月左右开始付款,之前只有免费配额,除非与谷歌有特殊安排。虽然谷歌有时会因其“永久测试版”的声称而受到抨击,但我认为GAE真的还在启动。如果您的应用程序非常适合BigTable数据范例,那么它在GAE上的扩展可能比EC2更好。对于存储,我认为S3已经足够用于所有合理的目的,并且谷歌的聪明架构使得GAE没有任何优势来补偿当你所做的只是提供文件时。
* Except that Google has just offered me a preview of GAE's Java support.
*除了Google刚刚向我提供了GAE Java支持的预览。
** Just noticed that you can set up chron jobs, but they're limited by the same rules as any other request (30 second runtime, can't modify files, etc).
**只是注意到您可以设置chron作业,但它们受到与任何其他请求相同的规则限制(30秒运行时,无法修改文件等)。
#2
The way I see it is the Google App Engine basically provides a sandbox for you to deploy your app as long as it is written with their requirements (Python etc). Amazon gives you a virtual machine with a lot more flexibility in what can be done but probably more work on your side needed. MS new Azure seems to be going down the GAE route, but replace Python with .NET.
我认为它的方式是Google App Engine基本上为您提供了一个沙箱,只要它符合他们的要求(Python等)就可以部署您的应用程序。亚马逊为您提供了一个虚拟机,它可以提供更多的灵活性,但可能需要更多的工作。 MS新Azure似乎沿着GAE路线走下去,但用.NET代替Python。