Amazon Elastic Compute Cloud
Linux 实例用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Amazon Simple Storage Service (Amazon S3)

Amazon S3 是 Internet 数据的存储库。Amazon S3 提供了可靠、快速和廉价的数据存储基础设施。它的目的是通过支持您随时从 Amazon EC2 内部或从网络上的任何地方存储和检索任何数量的数据来简化整个网络计算。Amazon S3 以冗余方式跨多个设施在多个设备上存储对象,允许多个不同的客户端或应用程序线程同时对这些对象进行读或写操作。您可以使用存储在 Amazon S3 中的冗余数据快速、可靠地恢复实例或应用程序故障。

Amazon EC2 使用 Amazon S3 来存储 Amazon Machine Images (AMIs)。您可以使用 AMI 启动 EC2 实例。万一实例发生故障,您可以使用已存储的 AMI 立即启动其他实例,从而实现快速故障恢复和确保业务的连续性。

Amazon EC2 还使用 Amazon S3 来存储数据卷的快照 (备份副本)。在应用程序或系统发生故障的情况下,您可以使用快照来快速、可靠地恢复数据。您也可以将快照用作基准来创建多个数据卷,扩展现有数据卷的大小,或者跨多个可用区移动数据,因此使您的数据使用具有高度的可扩展性。有关使用数据卷和快照的更多信息,请参阅 Amazon Elastic Block Store

对象是 Amazon S3 中存储的基本实体。Amazon S3 中存储的每个对象都包含在存储桶中。存储桶在最高级别上组织管理 Amazon S3 命名空间,并指定负责该存储的账户。Amazon S3 存储桶类似于 Internet 域名。存储在存储桶中的对象具有唯一的密钥值,可以使用 HTTP URL 地址进行检索。举例来说,如果密钥值为 /photos/mygarden.jpg 的对象存储在 myawsbucket 存储桶中,则可使用 URL http://myawsbucket.s3.amazonaws.com/photos/mygarden.jpg 对该对象进行寻址。

有关 Amazon S3 功能的更多信息,请参阅 Amazon S3 产品页

Amazon S3 和 Amazon EC2

凭借 Amazon S3 的存储优势,您可以选择使用此服务存储文件和数据集以用于 EC2 实例。有几种方法可在 Amazon S3 和您的实例间移动数据。除下面所讨论的示例外,您还可以使用其他人编写的各种工具从您的计算机或实例访问您在 Amazon S3 中的数据。AWS 论坛中对其中一些常见工具进行了讨论。

如果您有权限,就可以使用以下某种方法在 Amazon S3 和您的实例之间复制文件。

GET 或 wget

wget 实用工具是 HTTP 和 FTP 客户端,可用于从 Amazon S3 下载公有对象。该实用工具在 Amazon Linux 和大多数其他分发版中均为默认安装,可在 Windows 上下载安装。要下载 Amazon S3 对象,请使用以下命令 (替换要下载的对象的 URL)。

[ec2-user ~]$ wget https://my_bucket.s3.amazonaws.com/path-to-file

此方法要求您请求的对象是公用的;如果对象不是公用的,您会收到“ERROR 403: Forbidden”(错误 403: 禁止访问) 消息。如果您收到此错误,请打开 Amazon S3 控制台并将该对象的权限更改为公用。有关更多信息,请参阅 Amazon Simple Storage Service 开发人员指南

AWS Command Line Interface

AWS Command Line Interface (AWS CLI) 是用于管理 AWS 服务的统一工具。AWS CLI 能让用户对自己进行身份验证,从 Amazon S3 下载受限制的项目和上传项目。有关更多信息,例如如何安装和配置这些工具,请参阅 AWS Command Line Interface 详细信息页

aws s3 cp 命令类似于 Unix cp 命令。您可以将文件从 Amazon S3 复制到您的实例,从您的实例复制到 Amazon S3,可以将文件在不同 Amazon S3 位置之间复制。

使用以下命令可将一个对象从 Amazon S3 复制到您的实例。

[ec2-user ~]$ aws s3 cp s3://my_bucket/my_folder/my_file.ext my_copied_file.ext

使用以下命令可将一个对象从您的实例重新复制到 Amazon S3。

[ec2-user ~]$ aws s3 cp my_copied_file.ext s3://my_bucket/my_folder/my_file.ext

aws s3 sync 命令可以将整个 Amazon S3 存储桶同步到本地目录位置。这可以用于下载数据集并使本地副本随远程集保持更新。如果您对 Amazon S3 存储桶拥有合适权限,则当您最后在命令中将源与目标位置反转时,可以将本地目录备份推送到云。

使用以下命令可将整个 Amazon S3 存储桶下载到实例上的本地目录。

[ec2-user ~]$ aws s3 sync s3://remote_S3_bucket local_directory

Amazon S3 API

如果您是一名开发人员,则可以使用 API 访问 Amazon S3 中的数据。有关更多信息,请参阅 Amazon Simple Storage Service 开发人员指南。您可以使用此 API 及其示例帮助开发应用程序,可将其与其他 API 和 SDK (如 boto Python 接口) 集成。

本页内容: