AWS Snowball
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本指南适用于 Snowball Edge。如果您正在查找 Snowball 的相关文档,请参阅 AWS Snowball 用户指南

使用 Amazon EC2 终端节点

下面,您可以找到 Amazon Elastic Compute Cloud (Amazon EC2) 终端节点的概述,它可让您使用 Amazon EC2 API 操作以编程方式管理您的 Amazon 系统映像 (AMI) 和计算实例。

将 Amazon EC2 终端节点指定为 AWS CLI 终端节点

在您使用 AWS CLI 向 AWS Snowball Edge 设备发出命令时,可以指定终端节点为 Amazon EC2 终端节点。您可以选择使用 HTTPS 终端节点,或不安全的 HTTP 终端节点,如下所示。

HTTPS 安全终端节点

aws ec2 describe-instances --endpoint https://192.0.2.0:8243 --ca-bundle path/to/certificate

HTTP 不安全终端节点

>aws ec2 describe-instances --endpoint http://192.0.2.0:8008

如果您使用 HTTPS 终端节点 8243,传输中的数据将加密。使用 Snowball Edge 在解锁时所生成的证书来确保此加密。在您具有证书后,可以将其保存到本地 ca-bundle.pem 文件。然后,可以将 AWS CLI 配置文件配置为包含您的证书的路径,如下所述。

将您的证书与 Amazon EC2 终端节点相关联

  1. 为 Snowball Edge 接通电源并将其连接到网络,然后启动它。

  2. 在设备解锁完成后,记下其在本地网络上的 IP 地址。

  3. 从您的网络上的终端,确保您可以对 Snowball Edge 执行 ping 操作。

  4. 在您的终端中运行 snowballEdge get-certificate 命令。有关此命令的更多信息,请参阅 获取您的证书以传输数据

  5. snowballEdge get-certificate 命令的输出保存到文件,例如 ca-bundle.pem

  6. 从您的终端运行以下命令。

    aws configure set snowballEdge.ca_bundle /path/to/ca-bundle.pem

在您完成此过程之后,可以使用这些本地凭证、您的证书和您指定的终端节点运行 CLI 命令。

Snowball Edge 不支持的 Amazon EC2 功能

使用 Amazon EC2 终端节点,您可以使用 Amazon EC2 API 操作以编程方式在 Snowball Edge 上管理 AMI 和计算实例。但是,并非所有功能和 API 操作均支持用于 Snowball Edge 设备。

不支持本指南中未明确列出为支持的任何功能或操作。例如,以下 Amazon EC2 操作不支持用于 Snowball Edge:

Snowball Edge 上支持用于 Amazon EC2 的 AWS CLI 命令

在下文中,您将了解有关如何为适用的 AWS CLI 命令指定 Amazon EC2 终端节点的信息。有关安装和设置 AWS CLI 的信息(包括指定要为其执行 AWS CLI 调用的区域),请参阅 AWS Command Line Interface 用户指南

Snowball Edge 上支持的 Amazon EC2 AWS CLI 命令的列表

接下来,您可以找到 Snowball Edge 设备上支持的一部分适用于 Amazon EC2 的 AWS CLI 命令和选项的描述。如果某个命令或选项未在下方列出,则表明它不受支持。您可以声明一些不受支持的选项以及一个命令。但是,这些都会被忽略。

  • associate-address – 将虚拟 IP 地址与实例关联,以用于设备上的三个物理网络接口之一:

    • --instance-id – 单个 sbe1.xxxx 实例的 ID。

    • --public-ip – 要用于访问您的实例的虚拟 IP 地址。

  • authorize-security-group-egress – 向安全组添加一个或多个用于 Snowball Edge 设备的传出规则。具体来说,此操作允许实例将流量发送到一个或多个目标 IPv4 CIDR 地址范围。有关更多信息,请参阅Snowball Edge 设备中的安全组

    • --group-id value – 安全组的 ID。

    • [--ip-permissions value] – 一个或多个 IP 权限集。

  • authorize-security-group-ingress – 将一个或多个传入规则添加到安全组。当调用 authorize-security-group-ingress 时,您必须为 group-namegroup-id 指定一个值。

    • [--group-name value] – 安全组的名称。

    • [--group-id value] – 安全组的 ID

    • [--ip-permissions value] – 一个或多个 IP 权限集。

    • [--protocol value] IP 协议。可能的值为 tcpudpicmp--port 参数是必填项,除非“所有协议”值指定为 (-1)。

    • [--port value] – 对于 TCP 或 UDP,允许的端口范围。此值可以是单个整数或范围(最小值–最大值)。

      对于 ICMP,为单个整数或范围 (type-code),其中,type 表示 ICMP 类型编号,code 表示 ICMP 代码编号。值为 -1 表示所有 ICMP 类型的所有 ICMP 代码。仅 type 的值为 -1 表示指定 ICMP 类型的所有 ICMP 代码。

    • [--cidr value] – CIDR IP 范围。

  • create-tags – 添加或覆盖指定资源的一个或多个标签。每个资源最多可以有 50 个标签。每个标签由一个键和一个可选值组成。资源的标签键必须是唯一的。支持以下资源:

    • AMI

    • 实例

    • 安全组

  • create-security-group – 在您的 Snowball Edge 上创建安全组。您最多可以创建 50 个安全组。创建安全组时,您可以指定选择的友好名称:

    • --group-name value – 安全组的名称。

    • --description value – 安全组的描述。此仅为信息性。此值最长可达 255 个字符。

  • delete-security-group – 删除安全组。

    如果您尝试删除与实例关联的安全组或由另一个安全组引用的安全组,则操作将失败,并显示 DependencyViolation

    • --group-name value – 安全组的名称。

    • --description value – 安全组的描述。此仅为信息性。此值最长可达 255 个字符。

  • delete-tags – 从指定资源(AMI、计算实例或安全组)中删除一组指定的标签。

  • describe-address – 描述与您设备上相同数量的 sbe1.xxxx 实例关联的一个或多个虚拟 IP 地址。

    • --public-ips – 与您的实例关联的一个或多个虚拟 IP 地址。

  • describe-images – 描述可供您使用的一个或多个映像 (AMI)。在创建任务期间,可供您使用的映像会添加到 Snowball Edge 设备上。

    • --image-id – AMI 的 Snowball AMI ID。

  • describe-instance-attribute – 描述指定实例的指定属性。一次只能指定一个属性。支持以下属性:

    • instanceType

    • userData

  • describe-instances – 描述一个或多个实例。该响应会返回分配给该实例的任何安全组。

    • --instance-ids – 设备上停止的一个或多个 sbe1.xxxx 实例的 ID。

    • --page-size – 调用中获取的每个页面的大小。此值不会影响命令的输出中返回的项目数。设置较小的页面大小会导致对设备进行更多调用,每次调用检索的项目数较少。这样做有助于防止调用超时。

    • --max-items – 命令的输出中要返回的项目总数。如果可用的总项目数超过指定的值,则命令的输出中会提供 NextToken。要恢复分页,请在后续命令的 starting-token 参数中提供 NextToken 值。

    • --starting-token – 指定从何处开始分页的令牌。此令牌是先前截断的响应中的 NextToken 值。

  • describe-security-groups – 描述一个或多个安全组。

    describe-security-groups 是一项分页操作。您可以发出多个 API 调用以检索结果的整个数据集。

    • [--group-name value] – 安全组的名称。

    • [--group-id value] – 安全组的 ID。

    • [--page-size value] – AWS 服务调用中获取的每个页面的大小。此大小不会影响命令的输出中返回的项目数。设置较小的页面大小会导致对 AWS 服务进行更多调用,每次调用检索的项目数较少。这种方法有助于防止 AWS 服务调用超时。有关用法示例,请参阅 AWS Command Line Interface 用户指南 中的分页

    • [--max-items value] – 命令的输出中要返回的项目总数。如果可用的总项目数超过指定的值,则命令的输出中会提供 NextToken。要恢复分页,请在后续命令的 starting-token 参数中提供 NextToken 值。请勿在 AWS CLI 之外直接使用 NextToken 响应元素。有关用法示例,请参阅 AWS Command Line Interface 用户指南 中的分页

    • [--starting-token value] – 指定从何处开始分页的令牌。此令牌是先前截断的响应中的 NextToken 值。有关用法示例,请参阅 AWS Command Line Interface 用户指南 中的分页

  • describe-tags – 描述用于指定资源(imageinstance 或安全组)的一个或多个标签。使用此命令时,支持以下筛选条件:

    • resource-id

    • resource-type – imageinstance

    • key

    • value

  • disassociate-address – 取消虚拟 IP 地址与所关联实例的关联。

    • --public-ip – 您要与实例取消关联的虚拟 IP 地址。

  • modify-instance-attribute – 修改指定实例的 userData 属性。仅支持 userData 属性。

  • revoke-security-group-egress – 从安全组删除一个或多个传出规则:

    • [--group-id value] – 安全组的 ID

    • [--ip-permissions value] – 一个或多个 IP 权限集。

  • revoke-security-group-ingress – 撤消安全组的一个或多个传入规则。当调用 revoke-security-group-ingress 时,您必须为 group-namegroup-id 指定一个值。

    • [--group-name value] – 安全组的名称。

    • [--group-id value] – 安全组的 ID。

    • [--ip-permissions value] – 一个或多个 IP 权限集。

    • [--protocol value] IP 协议。可能的值为 tcpudpicmp--port 参数是必填项,除非“所有协议”值指定为 (-1)。

    • [--port value] – 对于 TCP 或 UDP,允许的端口范围。单个整数或范围(最小值–最大值)。

      对于 ICMP,为单个整数或范围 (type-code),其中,type 表示 ICMP 类型编号,code 表示 ICMP 代码编号。值为 -1 表示所有 ICMP 类型的所有 ICMP 代码。仅 type 的值为 -1 表示指定 ICMP 类型的所有 ICMP 代码。

    • [--cidr value] – CIDR IP 范围。

  • run-instances – 通过将 Snowball AMI ID 用于 AMI,启动多个计算实例。

    注意

    在 Snowball Edge 上启动计算实例最多需要 1.5 小时,具体取决于实例的大小和类型。

    • --image-id – AMI 的 Snowball AMI ID,可以通过调用 describe-images 获得。启动实例时需要 AMI。

    • --count – 要启动的实例数量。如果提供单个数字,则它被视为要启动的最小实例数量(默认为 1)。如果以 min:max 形式提供范围,则第一个数字解释为要启动的最小实例数量,第二个数字解释为要启动的最大实例数量。

    • --instance-type – sbe1.xxxx 实例类型。

    • --user-data – 提供给实例的用户数据。如果使用的是 AWS CLI,系统将执行 base64 编码,您可以从文件中加载文本。否则,您必须提供 base64 编码文本。

    • --tag-specifications – 要在启动期间应用于资源的标签。只能在启动时标记实例。指定的标签将应用于在启动期间创建的所有实例。要在创建之后标记资源,请使用 create-tags

    • --security-group-ids – 一个或多个安全组 ID。您可以使用 CreateSecurityGroup 创建安全组。如果未提供任何值,则会将默认安全组的 ID 分配给创建的实例。

  • start-instances – 启动您先前停止的 sbe1.xxxx 实例。附加到实例的所有资源从启动到停止期间一直持续存在,但在实例终止时会被擦除。

    • --instance-ids – 设备上停止的一个或多个 sbe1.xxxx 实例的 ID。

  • stop-instances – 停止正在运行的 sbe1.xxxx 实例。附加到实例的所有资源从启动到停止期间一直持续存在,但在实例终止时会被擦除。

    • --instance-ids – 设备上要停止的一个或多个 sbe1.xxxx 实例的 ID。

  • terminate-instances – 关闭一个或多个实例。此操作是幂等的;如果您多次终止某个实例,每个调用都成功。附加到实例的所有资源从启动到停止期间一直持续存在,但在实例终止时数据会被擦除。

    • --instance-ids – 设备上将终止的一个或多个 sbe1.xxxx 实例的 ID。为这些实例存储的所有关联数据都将丢失。

支持的 Amazon EC2 API 操作

在下文中,可以在 Amazon EC2 API Reference 中找到可用于 Snowball Edge 的 Amazon EC2 API 操作以及指向其说明的链接。Amazon EC2 API 调用需要签名版本 4 (SigV4) 签名。如果您使用 AWS CLI 或 AWS 开发工具包进行这些 API 调用,则会为您处理 SigV4 签名。否则,您需要实施自己的 SigV4 签名解决方案。有关更多信息,请参阅获取并使用本地 Amazon S3 凭证

  • AssociateAddress – 将弹性 IP 地址与实例或网络接口关联起来。

  • AuthorizeSecurityGroupEgress – 向安全组添加一个或多个用于 Snowball Edge 设备的传出规则。具体来说,此操作允许实例将流量发送到一个或多个目标 IPv4 CIDR 地址范围。

  • AuthorizeSecurityGroupIngress – 将一个或多个传入规则添加到安全组。当调用 AuthorizeSecurityGroupIngress 时,您必须为 GroupNameGroupId 指定一个值。

  • CreateTags – 支持以下资源:

    • AMI

    • 实例

    • 安全组

  • CreateSecurityGroup – 在您的 Snowball Edge 上创建安全组。您最多可以创建 50 个安全组。创建安全组时,您可以指定选择的友好名称。

  • DeleteSecurityGroup – 删除安全组。如果您尝试删除与实例关联的安全组或由另一个安全组引用的安全组,则操作将失败,并显示 DependencyViolation

  • DeleteTags – 从指定的资源集中删除指定的标签集。

  • DescribeAddresses

  • DescribeImages

  • DescribeInstanceAttribute – 支持以下属性:

    • instanceType

    • userData

  • DescribeInstances

  • DescribeSecurityGroups – 描述一个或多个安全组。DescribeSecurityGroups 是一项分页操作。您可以发出多个 API 调用以检索结果的整个数据集。

  • DescribeTags – 使用此命令时,支持以下筛选条件:

    • resource-id

    • resource-type – 仅 AMI 或计算实例

    • key

    • value

  • DisassociateAddress

  • ModifyInstanceAttribute – 仅支持 userData 属性。

  • RevokeSecurityGroupEgress – 从安全组删除一个或多个传出规则。

  • RevokeSecurityGroupIngress – 撤消安全组的一个或多个传入规则。当调用 RevokeSecurityGroupIngress 时,您必须为 group-namegroup-id 指定一个值。

  • RunInstances

    注意

    在 Snowball Edge 上启动计算实例最多需要 1.5 小时,具体取决于实例的大小和类型。

  • StartInstances

  • StopInstances – 与已停止的实例关联的资源持续存在。您可以终止该实例以释放这些资源。但是,这会删除所有关联的数据。

  • TerminateInstances