在作为Instagram副本的AWS上部署应用程序

时间:2016-04-01 05:50:52

标签: amazon-web-services amazon-s3

在我的新计划的规划阶段,我几乎没有怀疑:

我正在尝试在AWS上部署一个应用程序,这是一个Instagram副本,人们将在线发布他们的照片。

将使用哪种AWS服务:

  • 建议存储图片? S3?
  • 最终客户用来下载这些图片吗?
  • 用于检索评论和标签等图像数据?
  • 用于将图像转换为小尺寸? CloudFront的?
  • 用于搜索所有图像和标签?
  • 用于前端所有API请求?

我还希望在S3中存储视频以便在高负荷下快速检索,因此组织像文件夹这样的视频以便轻松访问key=folder1/folder2/folder3/video.mp4或者创建10的随机哈希是个好主意对于keyname,或者可能是20的哈希值,后跟逻辑名称?

1 个答案:

答案 0 :(得分:2)

虽然您的问题对于StackOverflow上的答案而言过于宽泛,但这是尝试回复......

虽然某些AWS服务可用于构建类似Instagram的应用程序,但您仍需要进行大量编码。 AWS可以轻松存储数据,管理和提供数据,还需要您编写应用程序。

回答你的问题:

  • 存储图片:绝对 Amazon S3 。它可以存储任意数量的文件。
  • 正在下载图片:只需在网页中嵌入网址, S3 就会将图片提供给您的用户。您甚至可以使用预先签名的网址向授权用户提供私人内容。
  • 评论和标记虽然有限的元数据可以与存储在Amazon S3中的对象相关联,但您的应用程序最好将此类数据存储在数据库中。该数据库可以在 Amazon RDS (关系数据库服务)下启动。
  • 转换图片尺寸:您的应用程序将负责执行此操作。但是,您可以使用第三方服务自动转换图片,例如Cloudinarylib-pixelimgix
  • 搜索图片和标签:这将是您的应用程序的责任,但是可以通过使用数据库来辅助,您可以考虑使用 Amazon Cloudsearch ,实际上是used by SmugMug用于此目的。
  • API前端:使用 Amazon API Gateway 充当API请求的前端,但您的应用程序将负责完成这些请求。
  • 在高负荷下检索视频:将视频存储在 Amazon S3 中,但使用 Amazon CloudFront 来投放视频。它可以将内容缓存到离用户更近的位置,并知道如何向Web浏览器提供视频内容。文件名策略不会影响提供内容的速度,因此请按照您的意愿命名文件。