Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Amazon Web Services

Building a Media Sharing Website - Part 1: Media Upload (Simplified Chinese)

Amazon Web Services and Amazon via AWS Skill Builder

Overview

实验概览

在本实验中,您将了解如何使用用于存储的 Amazon Simple Storage Service (Amazon S3)、用作数据库的 Amazon DynamoDB 以及用于托管 Web 应用程序的 Amazon Elastic Compute Cloud (Amazon EC2) 来部署照片分享网站。

本实验期间,您将创建此系统的核心架构,提供浏览和上传内容等基本功能。在本实验中,媒体内容将仅限于图片,但本实验中介绍的概念也适用于其他类型的媒体,例如文档(PDF、RTF、演示文稿等)、音乐、视频,等等。此系统还将提供 Web 接口,供用户浏览和存储图片。

目标

在本实验结束时,您将能够:

  • 创建新的 Amazon S3 存储桶来存储媒体文件
  • 创建 DynamoDB 表来存储媒体文件元数据
  • 启动新的 EC2 实例来运行 Web 服务器
  • 测试部署

实验先决条件

要成功完成本实验,您应熟悉 AWS 管理控制台的基本导航操作,并且能够熟练使用文本编辑器编辑脚本。

时长

完成本实验大约需要 60 分钟

图标说明

本实验中使用了不同图标,以提醒大家注意各种类型的说明和备注。下面的列表解释了每个图标的用途:

  • 注意:一项提示、技巧或重要指导

解决方案概览

媒体存储

图片可以存储到 Amazon Elastic Block Store 卷中,但您需要提前预置容量,并管理通过添加卷来扩展此存储层的操作。此外,您还需要将这些卷附加到 EC2 实例中,以通过 HTTP 提供内容。如果未能复制数据并通过另一个实例提供数据,则会导致系统中出现单点故障。

一种更好的方法是使用 Amazon S3 作为媒体文件的存储库。Amazon S3 可为数据提供高持久性,并能通过 HTTP 提供内容。可存储在 Amazon S3 存储桶中的对象数量不受限制,且无论您是使用许多存储桶,还是仅使用少量存储桶,性能方面都不会发生变化。您可以在单个存储桶中存储所有对象,也可以在多个存储桶中组织这些对象。

在本实验中,您将构建以下解决方案:

当用户上传图片时,Web 服务器将接收此图片并创建缩略图。系统随后会将图片及缩略图上传到 S3 存储桶,并将图片元数据插入 DynamoDB 表。

虽然 Amazon S3 和 DynamoDB 都是具有容错能力的可扩展系统,但您在单个 EC2 实例上运行的 Web 服务器无疑会存在单点故障(如果 Web 应用程序发生故障,系统将无法访问和恢复)和瓶颈(带有重要的传入请求负载,甚至系统可能变得不可用)。

下面简要介绍了实验场景中使用的每项服务。

注意:如果您熟悉这些 AWS 服务,可以跳过服务简介部分,直接进入开始实验部分。

Amazon EC2

Amazon Elastic Compute Cloud (Amazon EC2) 是一项 Web 服务,可在云中提供大小可调的计算容量。该服务旨在让开发人员能更轻松地进行 Web 级的计算。 Amazon EC2 的 Web 服务接口非常简单,让您可以轻松获取和配置容量。使用该服务,您可以完全控制您的计算资源,并可以在成熟的 Amazon 计算环境中运行。Amazon EC2 将获取并启动新服务器实例所需要的时间缩短至几分钟,这样一来,在您的计算要求发生变化时,您便可以快速扩展或缩减计算容量。Amazon EC2 按您实际使用的容量收费,改变了计算的经济性。

借助 Amazon EC2,您可以在几分钟(而不是几小时或几天)内增加或减少容量。您可以同时管理一个、数百个,甚至数千个服务器实例。当然,因为这全是通过 Web 服务 API 控制,所以您的应用程序可根据其自身需求自动扩展。

您可以完全控制自己的实例。您拥有每个实例的根用户访问权限,可以像与其他任何机器一样与这些实例交互。您可以在停止运行实例的同时将数据保留在启动分区,然后使用 Web 服务 API 重新启动该实例。使用 Web 服务 API 还可以远程重启实例。您还拥有实例控制台输出的访问权限。

有多种实例类型、操作系统和软件包供您选择。借助 Amazon EC2,您可以为您选择的操作系统和应用程序选取理想的内存、CPU、实例存储和启动分区大小配置。例如,您选择的操作系统可以包含多个 Linux 发行版以及 Microsoft Windows Server。

有关 Amazon EC2 的更多信息,请参阅:https://aws.amazon.com/ec2/

DynamoDB

DynamoDB 是一项快速的完全托管式 NoSQL 数据库服务,它能让您简单且经济高效地存储和检索任意数量的数据,同时服务于任何规模的请求流量。其有保证的吞吐量和几毫秒的延迟使其非常适合于游戏、广告技术、移动以及很多其他应用领域。

DynamoDB 通过 API 和易于使用的管理控制台提供无缝的吞吐量和存储扩缩能力,因此您能够根据自身需求轻松地扩展或缩减容量。我们的许多客户只是单击了一下按钮,便在几分钟内完成了 DynamoDB 的部署,然后便可以应对每年数万亿次的数据库请求。

DynamoDB 表没有固定的模式,每一个项目可以拥有不同数量的属性。多种数据类型增加了数据模型的丰富性。二级索引可让您更灵活地执行查询而不会影响性能。

该服务内置了性能、可靠性和安全功能,同时提供 SSD 存储和 3 向自动复制。Amazon DynamoDB 采用经过验证的加密方法,能安全地验证用户身份,以防未经授权的数据访问。

有关 Amazon DynamoDB 的更多信息,请参阅:https://aws.amazon.com/dynamodb/

Amazon S3

Amazon S3 是一项面向互联网的存储服务。该服务旨在让开发人员能更轻松地进行 Web 级的计算。

Amazon S3 提供一个简单的 Web 服务接口,用户可通过它随时在 Web 上的任何位置存储和检索任意数量的数据。该服务让所有开发人员都能够访问 Amazon 运行其全球性网站网络所使用的基础设施,该基础设施高度可扩展、可靠、安全、速度快而且花费低。该服务旨在最大程度地利用规模带来的优势,并将这种优势传递给开发人员。

Amazon S3 的基本理念是善加利用基于互联网的优质存储。它让开发人员不必再担心如何存储数据、数据是否安全或者是否有足够的存储空间可用。他们不再需要支付前期费用来构建自己的存储解决方案,也不需要支付维护和扩展存储服务器的后续成本。Amazon S3 功能简单而强大:以实惠的价格安全地存储任意数量的数据,同时确保数据在您需要时始终可用。借助 Amazon S3,开发人员能够专注于利用数据来进行创新,而不是研究如何存储数据。

有关 Amazon S3 的更多信息,请参阅:http://aws.amazon.com/s3/

Reviews

Start your review of Building a Media Sharing Website - Part 1: Media Upload (Simplified Chinese)

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.