在您订购 Snowball 边缘设备 - AWS Snowball Edge Developer Guide
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在您订购 Snowball 边缘设备

AWS Snowball Edge 是一项特定于区域的服务。因此,在您计划工作之前,请确保该服务在您所在地区可用。请确保您的位置和 Amazon S3 存储桶位于同一个 AWS 区域或同一个国家/地区,因为这会影响您订购设备的能力。

作为订单流程的一部分,您可以创建 AWS Identity and Access Management (IAM) 角色以及 AWS Key Management Service (AWS KMS) 密钥。KMS 密钥用于在传输过程中和 Snowball Edge 设备上的静态数据加密。有关创建 IAM 角色和 KMS 密钥的更多信息,请参阅创建 AWS Snowball Edge Job

关于当地环境的问题

了解数据集以及如何设置本地环境将有助于完成数据传输。在下单前,请考虑以下事项。

您要传输哪些数据?

传输大量小文件并不适用于 AWS Snowball Edge。这是因为 Snowball 边缘加密每个单独的对象。小文件包括大小小于 1 MB 的文件。建议您在将这些信息传输到 AWS Snowball Edge 设备之前将其压缩。我们还建议每个目录包含的文件或目录数不超过 500,000 个。

数据在传输过程中是否会被访问?

具有静态数据集非常重要(即,在传输过程中没有用户或系统访问数据)。否则,文件传输可能会因校验和不匹配而失败。这些文件将不会被传输,文件将被标记为Failed

如果您使用的是文件界面,我们建议您只使用一种方法将数据传输到 AWS Snowball Edge。同时使用文件接口和 Amazon S3 接口复制数据可能会导致读取/写入冲突。

为防止损坏您的数据,请勿在传输数据时断开 AWS Snowball Edge 设备或更改其网络设置。文件在写入设备时应处于静态状态。在写入设备时修改文件可能会导致读取/写入冲突。

网络是否支持 AWS Snowball 数据传输?

Snowball Edge 支持RJ45SFP+,或者QSFP+网络适配器。验证您的交换机是否为千兆交换机。根据交换机的品牌,它可能会说千兆位或者10/100/1000。Snowball 边缘设备不支持兆位交换机或 10/100 交换机。

使用包含特殊字符的文件

请务必注意,如果对象包含特殊字符,则可能会遇到错误。虽然 Amazon S3 允许使用特殊字符,但我们强烈建议您避免使用以下字符:

  • 反斜杠 ("\")

  • 左大括号 (“{”)

  • 右大括号 (“}”)

  • 左方括号 (“[”)

  • 右方括号 (“]”)

  • “小于”符号(“<”)

  • “大于”符号 (“>”)

  • 不可打印的 ASCII 字符 (128–255 十进制字符)

  • 插入符号 (“^”)

  • 百分比字符 (“%”)

  • 重音符/反勾号 (“`”)

  • 引号

  • 波浪字符 (“~”)

  • “井号”字符 (“#”)

  • 竖线 (“|”)

如果您的文件包含一个或多个这些字符,请在将它们复制到 AWS Snowball Edge 设备之前对其进行重命名。在复制单个对象或运行递归命令时,文件名中有空格的 Windows 用户应该小心。用引号围绕名称中具有间距的各个对象。以下是此类文件的示例。

操作系统 文件名:测试 file.txt

Windows

“C:\Users\<username>\desktop\test file.txt”

iOS

/Users/<username>/test\ file.txt

Linux

/home/<username>/test\ file.txt

注意

传输的唯一对象元数据是对象名称和大小。如果您希望复制其他元数据,可以使用文件界面或其他工具将数据复制到 Amazon S3。

使用 Amazon EC2 Snowball Edge

本节提供了在 AWS Snowball Edge 设备上使用 Amazon EC2 计算实例的概述。它包含概念性信息、过程和示例。

注意

亚太地区(孟买)和欧洲(巴黎)AWS 区域不支持 AWS Snowball 上的这些 Amazon EC2 功能。

您可以在 AWS Snowball Edge 上运行托管的 Amazon EC2 计算实例,使用sbe1sbe-c, 和sbe-g实例类型:

  • 这些区域有:sbe1实例类型适用于具有 Snowball Edge Snowball Optimized 选项的设备。

  • 这些区域有:sbe-c实例类型适用于具有 Snowball Edge Compute Optimized 选项的设备。

  • 这两种sbe-csbe-g实例类型适用于具有 Snowball Edge Compute Optimized 选项的设备。

Snowball Edge 设备选项上支持的所有计算实例类型对于 AWS Snowball Edge 设备都是唯一的。与基于云的对应情况类似,这些实例需要 Amazon 系统映像 (AMI) 来启动。在创建 Snowball Edge 作业之前,您可以为实例选择 AMI。

要在 Snowball Edge 上使用计算实例,请创建一个任务并指定您的 AMI。您可以使用 AWS Snowball 管理控制台、AWS Command Line Interface (AWS CLI) 或其中一个 AWS 开发工具包执行此操作。通常情况下,要使用您的实例,您必须先执行一些事务管理先决条件才能创建任务。

在您的设备到达后,您就可以开始管理您的 AMI 和实例。您可以通过 Amazon EC2 兼容的终端节点来管理 Snowball Edge 上的计算实例。这种类型的终端节点支持许多 Amazon EC2 CLI 命令和 AWS 软件开发工具包的操作。不能在 Snowball Edge 上使用 AWS 管理控制台来管理 AMI 和计算实例。

当您使用完设备后,将设备返还给 AWS。如果在导入任务中使用此设备,则使用 Amazon S3 Snowball 适配器或文件接口传输的数据将导入到 Amazon S3 中。否则,在设备返回到 AWS 后,我们将对设备执行完全擦除。此擦除过程遵循美国国家标准与技术研究院 (NIST) 800-88 标准。

重要

Snowball Edge 上正在运行的计算实例中的数据不会导入到 AWS 中。

在集群上使用计算实例

您可以在 Snowball Edge 设备的集群上使用计算实例。相应的过程和指南与在独立设备上使用计算实例相同。

使用 AMI 创建集群作业时,每个 AMI 的副本都存在于集群中的每个节点上。不管集群上的节点数是多少,您只能有 10 个 AMI 与一组设备相关联。当您在集群中启动实例时,您可以在命令中声明将承载此实例的节点,并且实例将在单一节点上运行。

集群必须是计算优化型或存储优化型。您可以有计算优化型节点的集群,而且其中的某些数量的节点可以有 GPU。您可以有完全由存储优化型节点构成的集群。集群不能由计算优化型节点和存储优化型节点的组合构成。

Snowball Edge 上计算实例的定价

使用计算实例会有额外关联的费用。有关更多信息,请参阅 。AWS Snowball Edge 定价

Prerequisites

在创建任务之前,请谨记以下信息:

从实例创建 Linux AMI

您可以使用 AWS 管理控制台或命令行创建 AMI。从现有 AMI 开始,启动实例,自定义该实例,从该实例创建新的 AMI,最终启动您的新 AMI 实例。

使用控制台从实例创建 AMI

  1. 选择一个适当的 EBS 支持的 AMI 作为新 AMI 的起点,并在启动前根据需要对其进行配置。有关更多信息,请参阅 。使用启动实例向导启动实例中的适用于 Linux 实例的 Amazon EC2 用户指南

  2. 选择启动启动您选择的由 EBS 支持的 AMI 实例。接受默认值,以按向导逐步操作。有关更多信息,请参阅 。使用启动实例向导启动实例

  3. 在实例运行时连接到该实例。您可以对您的实例执行以下操作,以便根据您的需求自定义该实例:

    • 安装软件和应用程序。

    • 复制数据。

    • 通过删除临时文件、对您的硬盘进行碎片整理以及将可用空间清零来缩短启动时间。

    • 附加更多 Amazon EBS 卷。

  4. (可选)创建所有附加到您的实例的卷的快照。有关创建快照的更多信息,请参阅创建 Amazon EBS 快照中的适用于 Linux 实例的 Amazon EC2 用户指南

  5. 在导航窗格中,选择实例,然后选择您的实例。选择操作中,选择映像,然后选择。创建映像

    提示

    如果此选项不可用,则表明您的实例不是 Amazon EBS 支持的实例。

  6. 创建映像对话框中,指定以下信息,然后选择创建映像

    • 映像名称-映像的唯一名称。

    • 映像描述-对映像的可选描述,最多 255 个字符。

    • 无重启-默认情况下,该选项未被选中。Amazon EC2 将关闭实例,为附加的任意卷制作快照,创建和注册 AMI,然后重新启动实例。选择 No reboot 可避免将实例关闭。

      警告

      如果您选择 No reboot (不重启) 选项,则我们无法保证所创建映像的文件系统完整性。

    • 实例卷-使用此部分中的字段可以修改根卷,添加更多 Amazon EBS 和实例存储卷。要了解每个字段的信息,可将光标暂停在每个字段旁的 i 图标上,以显示字段工具提示。以下列出了一些要点:

      • 要更改根卷的大小,请在Root中的卷类型column. 适用于大小 (GiB)中,输入所需的值。

      • 如果您选择终止时删除中,则当您终止从此 AMI 创建的实例时,将删除 Amazon EBS 卷。如果您清除终止时删除中,则当您终止实例时,不会删除 Amazon EBS 卷。有关更多信息,请参阅 。在实例终止时保留 Amazon EBS 卷中的适用于 Linux 实例的 Amazon EC2 用户指南

      • 要添加 Amazon EBS 卷,请选择添加新卷(这将添加一个新行)。对于 Volume type(卷类型),选择 EBS,并填写行中的字段。当您从新的 AMI 启动实例时,这些额外的卷会自动附加到该实例。您必须格式化并挂载空卷。您必须装载基于快照的卷。

      • 要添加实例存储卷,请参阅将实例存储卷添加到 AMI中的适用于 Linux 实例的 Amazon EC2 用户指南。当您从新的 AMI 启动实例时,这些额外的卷会自动初始化并装载。这些卷不包含您的 AMI 所基于的运行实例的实例存储卷上的数据。

  7. 要在创建 AMI 时查看其状态,请在导航窗格中,选择 AMIs。最初,状态处于挂起状态,但过几分钟就会变成可用。

    (可选)要查看为新 AMI 创建的快照,请选择快照。当您从此 AMI 启动实例时,我们会使用此快照创建其根设备卷。

  8. 从新 AMI 启动实例。有关更多信息,请参阅 。使用启动实例向导启动实例中的适用于 Linux 实例的 Amazon EC2 用户指南

  9. 新的正在运行的实例包含您在之前的步骤中应用的所有自定义项。

使用命令行从实例创建 AMI

您可以使用以下任一命令。有关这些命令行界面的更多信息,请参阅访问 Amazon EC2中的适用于 Linux 实例的 Amazon EC2 用户指南

从快照创建 Linux AMI

如果您有实例的根设备卷的快照,则可以使用 AWS 管理控制台或命令行从此快照创建 AMI。

使用控制台从快照创建 AMI

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中的 Elastic Block Store 下,选择 Snapshots

  3. 选择快照,选择。操作,然后选择。创建映像

  4. 从 EBS 快照创建映像对话框中,填写相关字段以创建 AMI。然后选择 Create (创建)。如果要重新创建父实例,请选择与父实例相同的选项。

    • 架构— 选择i386对于 32 位或x86_64对于 64 位。

    • 根设备名称— 输入相应的根卷名称。有关更多信息,请参阅 。Linux 实例上的设备命名中的适用于 Linux 实例的 Amazon EC2 用户指南

    • 虚拟化类型— 选择是从此 AMI 启动实例使用半虚拟化 (PV) 还是硬件虚拟机 (HVM) 虚拟化启动实例。有关更多信息,请参阅 。Linux AMI 虚拟化类型

    • (仅限 PV 虚拟化类型)内核 IDRAM 磁盘 ID— 从列表中选择 AKI 和 ARI。如果您选择默认 AKI,或不选择 AKI,则每次使用此 AMI 启动实例时,都必须指定 AKI。此外,如果默认 AKI 与实例不兼容,则您的实例可能会失败。

    • (可选)块储存设备映射— 添加卷或扩展 AMI 根卷的默认大小。有关调整实例上的文件系统大小以扩展卷的更多信息,请参阅调整卷大小后扩展 Linux 文件系统中的适用于 Linux 实例的 Amazon EC2 用户指南

使用命令行从快照创建 AMI

要从快照创建 AMI,可以使用以下命令之一。有关这些命令行界面的更多信息,请参阅访问 Amazon EC2中的适用于 Linux 实例的 Amazon EC2 用户指南

使用 Amazon S3 Snowball Snowball

作为订单流程的一部分,您需要创建 AWS Identity and Access Management (IAM) 角色和 AWS Key Management Service (AWS KMS) 密钥。KMS 密钥用于在传输过程中和 Snowball Edge 设备上的静态数据加密。有关创建 IAM 角色和 KMS 密钥的更多信息,请参阅创建 AWS Snowball Edge Job

导入的工作方式

每个导入任务使用一个 Snowball Edge 设备。在您创建工作之后,我们会向您发送 Snowball 边缘设备。设备到达后,请将 Snowball Edge 设备连接到您的网络,并将要导入到 Amazon S3 的数据传输到该 Snowball Edge 上。完成数据传输之后,请将 Snowball Edge 寄回 AWS。然后,我们将您的数据导入到 Amazon S3 中。

重要

如果您已打开 S3 对象锁定,Snowball Edge 无法写入存储桶。如果存储桶上的 IAM 策略阻止对存储桶进行写入操作,我们也无法写入您的存储桶。

导出的工作方式

每个导出任务可以使用任意数量的 AWS Snowball Edge 设备。创建任务之后,将会在 Amazon S3 中启动列举操作。此列举操作将您的任务分割为几个部分。每个任务部分都正好有一个与其关联的设备。在您创建任务部分之后,第一个任务部分进入 Preparing Snowball 状态。

注意

将任务拆分为多个部分的列举操作是 Amazon S3 的一项功能,并且您需要与 Amazon S3 操作相同付费。

然后,我们会开始将您的数据导出到设备。通常,导出数据需要一个工作日。不过,此过程可能需要更长时间。导出完成之后,AWS 将会为您的区域承运商备好设备。

设备到达您的站点后,请将其连接到您的网络,并将要导入到 Amazon S3 的数据传输到该设备上。完成数据传输之后,请将设备运回 AWS。收到返回的设备后,我们会将其完全擦除。此擦除过程遵循美国国家标准与技术研究院 (NIST) 800-88 标准。

此步骤标记这一特定任务部分的完成。如果有多个任务部分,则现已准备好下一个任务部分的发运。

重要

Snowball Edge 无法导出 S3 Glacier 存储类中的文件。必须先恢复这些对象,然后才能导出文件。如果我们遇到 S3 Glacier 存储类中的文件,我们会联系您以告知您,但这可能会增加导出任务的延迟。

使用 AWS KMS 进行 Amazon S3 加密

在导入或导出数据时,您可以使用默认 AWS 托管或客户托管的加密密钥来保护您的数据。

对 AWS KMS 托管密钥使用 Amazon S3 默认存储桶加密

使用 AWS KMS 启用 AWS 托管加密

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 选择要加密的 Amazon S3 存储桶。

  3. 在右侧显示的向导中,选择属性

  4. Default encryption (默认加密)框中,选择。Disabled(此选项灰显)以启用默认加密。

  5. 选择AWS KMS作为加密方法,然后选择要使用的 KMS 密钥。此密钥用于加密存储桶中的 PUT 对象。

  6. 选择 Save

创建 Snowball Edge 作业后,并在导入数据之前,向现有 IAM 角色策略添加语句。这是您在订购过程中创建的角色。根据作业类型,默认角色名称看起来类似于Snowball-import-s3-only-role或者Snowball-export-s3-only-role

以下是这种声明的例子。

用于导入数据

如果您使用带有 AWS KMS 托管密钥的服务器端加密 (SSE-KMS) 对与您的导入任务关联的 Amazon S3 存储桶进行加密,则您还需要将以下语句添加到您的 IAM 角色。

例如:Snowball (导入 IAM 角色)

{ "Effect": "Allow", "Action": [ "kms: GenerateDataKey", "kms: Decrypt" ], "Resource":"arn:aws:kms:us-west-2:123456789012:key/abc123a1-abcd-1234-efgh-111111111111" }

用于导出数据

如果您使用带有 AWS KMS 托管密钥的服务器端加密对与您的导出任务关联的 Amazon S3 存储桶进行加密,则您还必须将以下语句添加到您的 IAM 角色。

例 Snowball (导入 IAM 角色)

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource":"arn:aws:kms:us-west-2:123456789012:key/abc123a1-abcd-1234-efgh-111111111111" }

将 S3 默认存储桶加密与 AWS KMS 客户密钥结合使用

您可以将默认 Amazon S3 存储桶加密与您自己的 KMS 密钥一起使用,以保护您正在导入和导出的数据。

用于导入数据

使用 AWS KMS 启用客户托管加密

  1. 登录到 AWS 管理控制台,然后通过以下网址打开 AWS Key Management Service (AWS KMS) 控制台:https://console.aws.amazon.com/kms

  2. 要更改 AWS 区域,请使用页面右上角的区域选择器。

  3. 在左侧导航窗格中,选择客户托管密钥,然后选择与要使用的存储桶关联的 KMS 密钥。

  4. 扩展密钥策略如果它尚未展开。

  5. 主要用户部分,选择。Add并搜索 IAM 角色。选择 IAM 角色,然后选择Add

  6. 或者,您也可以选择切换到 “策略” 视图以显示密钥策略文档并将语句添加到密钥策略中。以下是策略的示例。

例如:AWS KMS 客户托管密钥的策略

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/snowball-import-s3-only-role" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

将此策略添加到 AWS KMS 客户托管密钥后,还需要更新与 Snowball 作业关联的 IAM 角色。默认情况下,角色为snowball-import-s3-only-role

例如:Snowball 导入 IAM 角色

{ "Effect": "Allow", "Action": [ "kms: GenerateDataKey", "kms: Decrypt" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/abc123a1-abcd-1234-efgh-111111111111" }

有关更多信息,请参阅 为 AWS Snowball 使用基于身份的策略(IAM 策略)

正在使用的 KMS 密钥如下所示:

“Resource”:“arn:aws:kms:region:AccoundID:key/*”

用于导出数据

例如:AWS KMS 客户托管密钥的策略

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/snowball-import-s3-only-role" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

将此策略添加到 AWS KMS 客户托管密钥后,还需要更新与 Snowball 作业关联的 IAM 角色。默认情况下,该角色如下所示:

snowball-export-s3-only-role

例如:Snowball 导出 IAM 角色

{ "Effect": "Allow", "Action": [ "kms: GenerateDataKey", "kms: Decrypt" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/abc123a1-abcd-1234-efgh-111111111111" }

将此策略添加到 AWS KMS 客户托管密钥后,还需要更新与 Snowball 作业关联的 IAM 角色。默认情况下,角色为snowball-export-s3-only-role

Snowball Edge 集群

A集群是对 AWS Snowball Edge 设备的逻辑分组 (5-10 台设备)。使用单个作业创建集群。集群提供更高的持久性和存储容量。本节提供有关 Snowball Edge 集群的信息。

对于 AWS Snowball 服务,集群是一组 Snowball Edge 设备,用作单个逻辑单位并用于本地存储和计算目的。

与用于本地存储和计算目的的独立 Snowball Edge 相比,集群提供了以下主要好处:

  • 更高的耐用性— 存储在 Snowball Edge 设备集群中的数据提高了数据持久性。此外,集群上的数据像其他一样安全且可行,即使在集群中可能出现 Snowball Edge 中断时。集群能够承受两个节点的丢失,然后才会成为问题。您也可以添加或替换节点。

  • 增加存储容量— 集群中的每个节点的总可用存储空间为 45 TB。因此,在 5 节点集群中,有 225 TB 的可用存储空间。相比之下,独立的 Snowball Edge 中的可用存储空间为大约 80 TB。带 5 个以上的节点的集群具有更多的存储空间。

Snowball Edge 设备的集群由无领导节点构成。任何节点都可以将数据写入整个集群以及从整个集群读取数据,并且所有节点都可以执行集群的后台管理。

Snowball Edge 集群 Quorum

A法定人数表示集群中最少数量的 Snowball Edge 设备,这些设备必须相互通信以维护某个级别的操作。Snowball Edge 集群有两种级别的 quorum — 读/写 quorum 和读 quorum。

假设您将数据上传到 Snowball Edge 设备的集群。在所有设备运行状况良好的情况下,您有读/写法定数集群。如果其中一个节点处于脱机状态,则您已减小集群的运行容量,但您仍可以读取和写入到集群。在这种情况下,该集群仍具有读/写 quorum。

如果集群中的两个节点处于脱机状态,则任何其他操作或正在进行的写入操作将失败,但可以访问和读取已成功写入到集群中的任何数据。这被称为读取法定人数

最后,如果第三个节点处于脱机状态,则集群中的数据将变为不可用。在这种情况下,您可以修复此问题,但数据可能永久丢失,具体取决于事件的严重性。如果这是一个临时外部电源事件,并且您可以使三个 Snowball Edge 设备重新联机并解锁集群中的所有节点,则您的数据将再次可用。

重要

如果最小数量的运行正常的节点不存在,请联系 AWS Support。

您可以通过确定节点的锁定状态和网络可到达性来确定集群的 quorum 状态。snowballEdge describe-cluster 命令报告回解锁集群中的每个节点的锁定和网络可到达性状态。确保集群中的设备运行正常并保持连接是您在创建集群任务时承担的管理责任。有关不同客户端命令的详细信息,请参阅Snowball 客户端的命令

AWS Snowball Edge 的集群任务的注意事项

在规划对 Snowball Edge 设备的集群时,请记住以下注意事项:

  • 建议您拥有一个冗余电源以便减少集群的潜在性能和稳定性问题。

  • 与独立的本地存储和计算任务一样,如果不将其他设备作为单独导入任务的一部分进行排序,则集群中存储的数据无法导入 Amazon S3 中。如果您对这些设备排序,您可以将数据从集群传输到这些设备,并在寄回设备时为导入任务导入数据。

  • 要从 Amazon S3 中将数据获取到集群上,请创建单独的导出任务,并将数据从导出任务的设备中复制到集群上。

  • 您可以使用控制台、AWS CLI 或 AWS 开发工具包创建集群任务。

  • 集群节点具有节点 ID。A节点 ID与从控制台、AWS CLI、AWS 开发工具包或 Snowball 客户端获取的设备的任务 ID 相同。您可以使用节点 ID 从集群中删除旧节点。您可以对解锁设备使用 snowballEdge describe-device 命令或对解锁集群使用 describe-cluster 来获取节点 ID 的列表。

  • 集群的生命周期受在预置集群时向集群设备授予的安全证书的限制。

  • 当 AWS 收到作为集群一部分寄回的设备之后,我们会对该设备执行完全擦除操作。此擦除过程遵循美国国家标准与技术研究院 (NIST) 800-88 标准。