将 Amazon S3 与 Amazon EC2 实例结合使用
Amazon Simple Storage Service(Amazon S3)是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。您可以使用 Amazon S3 为数据湖、网站、备份和大数据分析等一系列用例存储和检索任意数量的数据,这些数据可以来自 Amazon EC2 实例或互联网上的任何地方。有关更多信息,请参阅什么是 Amazon S3?
数据元是 Amazon S3 中存储的基础实体。Amazon S3 中存储的每个对象都包含在存储桶中。存储桶在最高级别上组织管理 Amazon S3 命名空间,并指定负责该存储的账户。Amazon S3 存储桶类似于互联网域名。存储在存储桶中的对象具有唯一的密钥值,可以使用 URL 进行检索。举例来说,如果密钥值为 /photos/mygarden.jpg
的对象存储在 amzn-s3-demo-bucket1
存储桶中,则可使用 URL https://amzn-s3-demo-bucket1.s3.amazonaws.com/photos/mygarden.jpg
对该对象进行寻址。有关更多信息,请参阅 Amazon S3 的工作原理。
用法示例
凭借 Amazon S3 的存储优势,您可以选择使用此服务存储文件和数据集以用于 EC2 实例。有几种方法可在 Amazon S3 和您的实例间移动数据。除下面所讨论的示例外,您还可以使用其他人编写的各种工具从您的计算机或实例访问您在 Amazon S3 中的数据。AWS 论坛中对其中一些常见工具进行了讨论。
如果您有权限,就可以使用以下某种方法在 Amazon S3 和您的实例之间复制文件。
- GET or wget (Linux)
-
wget 实用工具是 HTTP 和 FTP 客户端,可用于从 Amazon S3 下载公用对象。该实用工具在 Amazon Linux 和大多数其他分发版中均为默认安装,可在 Windows 上下载安装。要下载 Amazon S3 对象,请使用以下命令(替换要下载的对象的 URL)。
[ec2-user ~]$
wget https://my_bucket
.s3.amazonaws.com/path-to-file
- AWS Tools for Windows PowerShell (Windows)
-
Windows 实例有图形浏览器优势,您可以用图形浏览器直接访问 Amazon S3 控制台;不过,出于脚本编写目的,Windows 用户也可以使用 AWS Tools for Windows PowerShell 将对象移入和移出 Amazon S3。
使用以下命令可将一个 Amazon S3 对象复制到您的 Windows 实例。
PS C:\>
Copy-S3Object -BucketName my_bucket
-Key path-to-file
-LocalFile my_copied_file.ext
- AWS CLI (Linux and Windows)
-
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 复制到您的实例。
aws s3 cp s3://my_bucket
/my_folder
/my_file.ext
my_copied_file.ext
使用以下命令可将一个对象从您的实例重新复制到 Amazon S3。
aws s3 cp my_copied_file.ext
s3://my_bucket
/my_folder
/my_file.ext
aws s3 sync 命令可以将整个 Amazon S3 存储桶同步到本地目录位置。这可以用于下载数据集并使本地副本随远程集保持更新。如果您对 Amazon S3 存储桶拥有合适权限,则当您最后在命令中将源与目标位置反转时,可以将本地目录备份推送到云。
使用以下命令可将整个 Amazon S3 存储桶下载到实例上的本地目录。
aws s3 sync s3://remote_S3_bucket
local_directory
- Amazon S3 API
-
如果您是一名开发人员,则可以使用 API 访问 Amazon S3 中的数据。您可以使用此 API 帮助开发应用程序,并且可以将其与其他 API 和 SDK 集成。有关更多信息,请参阅《Amazon S3 用户指南》中的适用于使用 AWS SDK 的 Amazon S3 的代码示例。