使用与亚马逊 EC2 兼容的终端节点 - AWS Snowcone 用户指南

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

使用与亚马逊 EC2 兼容的终端节点

在下面,您可以找到与亚马逊弹性计算云兼容 (Amazon EC2) 终端节点的概述。使用此终端节点,您可以使用与 Amazon EC2 兼容的 API 操作以编程方式管理您的亚马逊系统映像 (AMI) 和计算实例。

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

当您使用AWS CLI向AWS Snowcone设备发出命令时,您可以指定该终端节点为 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,传输中的数据将加密。无论何时解锁 Snowcone 都会生成的证书,从而确保这种加密。在您具有证书后,可以将其保存到本地 ca-bundle.pem 文件。然后,可以将 AWS CLI 配置文件配置为包含您的证书的路径,如下所述。

将您的证书与兼容 Amazon EC2 的终端节点相关联
  1. 将 Snowcone 连接到电源和网络,然后将其打开。

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

  3. 在网络上的终端上,确保可以 ping 通 Snowcone 设备。

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

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

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

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

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

Snowcone 不支持的亚马逊 EC2 功能

使用兼容 Amazon EC2 的终端节点,您可以通过与 Amazon EC2 兼容的 API 操作在 Snowcone 上以编程方式管理您的 AMI 和计算实例。但是,并非所有功能和 API 操作都支持在 Snowcone 设备上使用。

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

在 Snowcone 上支持与亚马逊 EC2 兼容的AWS CLI命令

您可以通过兼容 Amazon EC2 的终端节点在 Snow Family 设备上管理您的计算实例。这种类型的终端节点支持AWS软件开发工具包的许多 Amazon EC2 CLI 命令和操作。有关安装和设置的信息AWS CLI,包括指定AWS 区域要对谁进行AWS CLI呼叫,请参阅AWS Command Line Interface用户指南

Snowcone 上支持的亚马逊 EC2 兼容AWS CLI命令列表

下面,您可以找到 Snowcone 设备支持的 Amazon EC2 AWS CLI 命令和选项子集的描述。如果某个命令或选项未在下方列出,则表明它不受支持。您可以声明一些不受支持的选项以及一个命令。但是,这些都会被忽略。

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

    • --instance-id – 单个 sbe 实例的 ID。

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

  • attach- volume — 将 Amazon EBS 卷连接到AWS Snowcone设备上已停止或正在运行的实例,并将其公开给具有指定设备名称的实例。

    • --dev value ice — 设备名称。

    • --instance-id — 目标亚马逊 EC2 实例的 ID。

    • --volume-id value — EBS 卷的 ID。

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

    • --group-id value — 安全组的 ID

    • [--ip-permissionsvalue]-一组或多组 IP 权限。

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

    • [--group-namevalue]-安全组的名称。

    • [--group-idvalue]-安全组的 ID

    • [--ip-permissionsvalue]-一组或多组 IP 权限。

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

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

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

    • [--cidrvalue] — CIDR IP 范围。

  • create-launch-template— 创建启动模板。启动模板包含用于启动实例的参数。当您使用 RunInstances 启动实例时,您可以指定启动模板,而不是在请求中提供启动参数。每AWS Snowcone台设备最多可以创建 100 个模板。

    • --launch-template-name string-启动模板的名称。

    • -launch-template-data structure--启动模板的信息。支持以下属性:

      • ImageId

      • InstanceType

      • SecurityGroupIds

      • TagSpecifications

      • UserData

      JSON 语法:

      { "ImageId":"string", "InstanceType":"sbe-c.large", "SecurityGroupIds":[ "string", "..." ], "TagSpecifications":[ { "ResourceType":"instance", "Tags":[ { "Key":"Name", "Value":"Test" }, { "Key":"Stack", "Value":"Gamma" } ] } ] }
    • [--version-descriptionstring] — 启动模板的第一个版本的描述。

    • --endpoint snowballEndpoint — 该值使您能够使用 Amazon EC2 API 操作以编程方式管理您的计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 AWS CLI

  • create-launch-template-version— 为启动模板创建新版本。您可以指定启动模板的一个现有版本作为新版本的基础。启动模板版本是按创建顺序编号的。您无法指定、更改或替换启动模板版本的编号。您可以为每个启动模板创建多达 100 个版本。

    在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string-启动模板的 ID。

    • --launch-template-name string-启动模板的名称。

    • -launch-template-data structure--启动模板的信息。支持以下属性:

      • ImageId

      • InstanceType

      • SecurityGroupIds

      • TagSpecifications

      • UserData

      JSON 语法:

      '{ "ImageId":"string", "InstanceType":"sbe-c.large", "SecurityGroupIds":["string", ...], "TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"Test"}, {"Key":"Stack","Value":"Gamma"}]}], "UserData":"this is my user data" }'
    • [--source-versionstring] — 作为新版本基础的启动模板的版本号。新版本继承和源版本相同的启动参数,但在 launch-template-data 中指定的参数除外。

    • [--version-descriptionstring] — 启动模板的第一个版本的描述。

    • --endpoint snowballEndpoint — 该值使您能够使用 Amazon EC2 API 操作以编程方式管理您的计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 AWS CLI

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

    • AMI

    • 实例

    • 启动模板

    • 安全组

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

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

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

  • creat e-volume — 创建一个可以连接到您设备上的实例的 Amazon EBS 卷。AWS Snowcone

    • [--sizevalue] — 中的卷的大小GiBs,可以从 1 GiB 到 1 TB (1000GiBs) 不等。

    • [--snapshot-idvalue]-用于创建卷的快照。

    • [--volume-typevalue]-卷类型。如果未指定值,则默认值为 sbg1。可能的值包括:

      • 对于磁性介质卷为 sbg1

      • 对于 SSD 卷为 sbp1

    • [--tag-specif value ication — 在创建过程中应用于该卷的标签列表。

  • delete-launch-template— 删除启动模板。如果删除启动模板,则会删除该模板的所有版本。

    在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string-启动模板的 ID。

    • --launch-template-name string-启动模板的名称。

    • --endpoint snowballEndpoint — 该值使您能够使用 Amazon EC2 API 操作以编程方式管理您的计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 AWS CLI

  • delete-launch-template-version— 删除启动模板的一个或多个版本。您无法删除启动模板的默认版本;您必须先分配一个不同的版本以作为默认版本。如果默认版本是唯一启动模板的版本,请使用 delete-launch-template 命令删除整个启动模板版本。

    在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string-启动模板的 ID。

    • --launch-template-name string-启动模板的名称。

    • --versions(列表)"string" "string"-要删除的一个或多个启动模板版本的版本号。

    • --endpoint snowballEndpoint — 该值使您能够使用 Amazon EC2 API 操作以编程方式管理您的计算实例。

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

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

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

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

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

  • 删除卷-删除指定的 Amazon EBS 卷。该卷必须处于 available 状态(未附加到实例)。

    • --volume-id value — 卷的 ID。

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

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

  • describe-images — 描述一个或多个可供您使用的图像 (AMI)。在创建任务期间,您可用的图像会添加到 Snowcone 设备中。

    • --image-id — AMI 的 Snowcone AMI ID。

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

    • instanceInitiatedShutdownBehavior

    • instanceType

    • userData

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

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

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

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

    • --starting-token — 用于指定从哪里开始分页的标记。此令牌是先前截断的响应中的 NextToken 值。

  • describe-launch-templates— 描述一个或多个启动模板。describe-launch-templates 命令是一个分页操作。您可以进行多个调用以检索结果的整个数据集。

    您必须在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-ids(列表)"string" "string"-启动模板的 ID 列表。

    • --launch-template-names(列表)"string" "string"-启动模板的名称列表。

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

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

    • --starting-token — 用于指定从哪里开始分页的标记。此令牌是先前截断的响应中的 NextToken 值。

    • --endpoint snowballEndpoint — 该值使您能够使用 Amazon EC2 API 操作以编程方式管理您的计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 AWS CLI

  • describe-launch-template-versions— 描述指定启动模板的一个或多个版本。您可以描述所有版本、单个版本或一系列版本。describe-launch-template-versions 命令是一个分页操作。您可以进行多个调用以检索结果的整个数据集。

    您必须在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string-启动模板的 ID。

    • --launch-template-name string-启动模板的名称。

    • [--versions(列表)"string" "string"]-要删除的一个或多个启动模板版本的版本号。

    • [--min-versionstring] — 版本号,之后用于描述启动模板版本。

    • [--max-versionstring] — 用于描述启动模板版本的版本号。

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

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

    • --starting-token — 用于指定从哪里开始分页的标记。此令牌是先前截断的响应中的 NextToken 值。

    • --endpoint snowballEndpoint — 该值使您能够使用 Amazon EC2 API 操作以编程方式管理您的计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 AWS CLI

  • describe-security-groups— 描述您的一个或多个安全组。

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

    • [--group-namevalue]-安全组的名称。

    • [--group-idvalue]-安全组的 ID。

    • [--page-sizevalue]-服务调用中要获取的每个页面的大小。AWS此大小不会影响命令的输出中返回的项目数。设置较小的页面大小会导致对AWS服务的调用增加,从而在每次调用中检索的项目更少。这种方法可以帮助防止AWS服务调用超时。有关用法示例,请参阅《AWS Command Line Interface用户指南》中的分页

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

    • [--starting-tokenvalue] — 用于指定从哪里开始分页的标记。此令牌是先前截断的响应中的 NextToken 值。有关用法示例,请参阅《AWS Command Line Interface用户指南》中的分页

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

    • launch-template

    • resource-id

    • resource-type – imageinstance

    • key

  • 描述卷 — 描述指定的 Amazon E BS 卷。

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

    • [--starting-tokenvalue] — 用于指定从哪里开始分页的标记。此令牌是先前截断的响应中的 NextToken 值。

    • [--volume-idsvalue]-一个或多个卷 ID。

  • 分离卷 — 将 Amazon EBS 卷与已停止或正在运行的实例分离。

    • [--dev value ice]-设备名称。

    • [--instance-id] — 目标亚马逊 EC2 实例的 ID。

    • --volume-id value — 卷的 ID。

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

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

  • get-launch-template-data— 检索指定实例的配置数据。您可以使用此数据来创建启动模板。

  • modify-launch-template— 修改启动模板。您可以指定要设置为默认版本的启动模板版本。在未指定启动模板版本的情况下启动实例时,将会应用启动模板的默认版本。

    在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string-启动模板的 ID。

    • --launch-template-name string-启动模板的名称。

    • --default-version string — 设置为默认版本的启动模板的版本号。

    • --endpoint snowballEndpoint — 该值使您能够使用 Amazon EC2 API 操作以编程方式管理您的计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 AWS CLI

  • modify-instance-attribute— 修改指定实例的属性。支持以下属性:

    • instanceInitiatedShutdownBehavior

    • userData

  • revoke-security-group-egress— 从安全组中删除一条或多条出口规则:

    • [--group-idvalue]-安全组的 ID

    • [--ip-permissionsvalue]-一组或多组 IP 权限。

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

    • [--group-namevalue]-安全组的名称。

    • [--group-idvalue]-安全组的 ID。

    • [--ip-permissionsvalue]-一组或多组 IP 权限。

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

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

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

    • [--cidrvalue] — CIDR IP 范围。

  • 运行实例 — 使用适用于 AMI 的 Snowcone AMI ID 启动多个计算实例。

    注意

    在 Snowcone 设备上启动计算实例最多可能需要一个半小时,具体取决于实例的大小和类型。

    • [--block-device-mappings (list)]--区块设备映射条目。支持 DeleteOnTerminationVolumeSizeVolumeType 参数。启动卷必须为类型 sbg1

      此命令的 JSON 语法如下所示。

      { "DeviceName": "/dev/sdh", "Ebs": { "DeleteOnTermination": true|false, "VolumeSize": 100, "VolumeType": "sbp1"|"sbg1" } }
    • --count-要启动的实例数量。如果提供单个数字,则它被视为要启动的最小实例数量(默认为 1)。如果以 min:max 形式提供范围,则第一个数字解释为要启动的最小实例数量,第二个数字解释为要启动的最大实例数量。

    • --image-id — AMI 的 Snowcone AMI ID,你可以通过致电获取。describe-images启动实例时需要 AMI。

    • --InstanceInitiatedShutdownBehavior--默认情况下,当您从实例启动关闭(使用关机或关机等命令)时,实例会停止。您可以更改此行为,以便使其终止。支持 stopterminate 参数。默认为 stop。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的更改实例启动的关闭行为

    • --instance-type – sbe 实例类型。

    • --launch-template structure — 用于启动实例的启动模板。您在 run-instances 命令中指定的任何参数都会覆盖启动模板中的相同参数。您可以指定启动模板的名称或 ID,但不能同时指定二者。

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

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

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

  • st art-instanc sbe es — 启动你之前停止的实例。附加到实例的所有资源从启动到停止期间一直持续存在,但在实例终止时会被擦除。

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

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

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

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

    注意

    默认情况下,当您使用 shutdownpoweroff 等命令启动从实例关闭时,实例将停止。但是,您可以使用InstanceInitiatedShutdownBehavior属性来更改此行为,以便这些命令终止您的实例。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的更改实例启动的关闭行为

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

支持的亚马逊 EC2 API 操作

下面,您可以找到可以在 Snowcone 设备上使用的 Amazon EC2 API 操作,其描述链接可在亚马逊 EC2 API 参考中找到。亚马逊 EC2 API 调用需要签名版本 4 (Sigv4) 签名。如果您使用AWS CLI或 AWS SDK 进行这些 API 调用,则会为您处理 Sigv4 签名。否则,您需要实施自己的 SigV4 签名解决方案。