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

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

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

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

将与 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 配置文件配置为包含您的证书的路径,如下所述。

将您的证书与EC2兼容 Amazon 的终端节点相关联
  1. 为 Snowcone 接通电源并将其连接到网络,然后启动它。

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

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

  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功能

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

不支持本指南中未明确列出为支持的任何特征或操作。例如,以下亚马逊EC2操作不支持与 Snowcone 一起使用:

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

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

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

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

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

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

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

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

    • --device value:设备名称。

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

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

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

    • --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)。

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

      对于ICMP,type表示ICMP类型编号和codeICMP代码号的单个整数或范围 (type-code)。值为 -1 表示所有ICMP类型的所有ICMP代码。仅为 -1 type 表示指定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-description string]:第一版启动模板的说明。

    • --endpoint snowballEndpoint — 一个允许您使用亚马逊EC2API操作以编程方式管理计算实例的值。有关更多信息,请参阅 将与 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-version string]:作为新版本基础的启动模板的版本号。新版本继承和源版本相同的启动参数,但在 launch-template-data 中指定的参数除外。

    • [--version-description string]:第一版启动模板的说明。

    • --endpoint snowballEndpoint — 一个允许您使用亚马逊EC2API操作以编程方式管理计算实例的值。有关更多信息,请参阅 将与 Amazon EC2 兼容的终端节点指定为终端节点 AWS CLI

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

    • AMI

    • 实例

    • 启动模板

    • 安全组

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

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

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

  • create-vol ume — 创建可连接到您 AWS Snowcone 设备上的实例的 Amazon EBS 卷。

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

    • [--snapshot-id value]:从中创建卷的快照。

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

      • 对于磁性介质卷为 sbg1

      • sbp1用于SSD音量

    • [--tag-specification value:在创建期间应用到卷的标签列表。

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

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

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

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

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

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

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

    • --endpoint snowballEndpoint — 一个允许您使用亚马逊EC2API操作以编程方式管理计算实例的值。

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

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

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

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

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

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

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

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

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

  • describe-images — 描述可供您使用的一张或多张图片 (AMIs)。在创建作业期间,可供您使用的映像会添加到 Snowcone 设备上。

    • --image-id — 的 Snow AMI cone ID。AMI

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

    • instanceInitiatedShutdownBehavior

    • instanceType

    • userData

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

    • --instance-id — 设备上已停止的一个或多个sbe实例。IDs

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

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

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

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

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

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

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

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

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

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

    • --endpoint snowballEndpoint — 一个允许您使用亚马逊EC2API操作以编程方式管理计算实例的值。有关更多信息,请参阅 将与 Amazon EC2 兼容的终端节点指定为终端节点 AWS CLI

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

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

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

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

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

    • [--min-version string]:用于描述启动模板版本的最小版本号。

    • [--max-version string]:用于描述启动模板版本的最大版本号。

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

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

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

    • --endpoint snowballEndpoint — 一个允许您使用亚马逊EC2API操作以编程方式管理计算实例的值。有关更多信息,请参阅 将与 Amazon EC2 兼容的终端节点指定为终端节点 AWS CLI

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

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

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

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

    • [--page-sizevalue]-服务调用中要获取的每页的大小。 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 或安全组)的一个或多个标签。使用此命令时,支持以下筛选条件:

    • launch-template

    • resource-id

    • resource-type:imageinstance

    • value

  • describe-volumes — 描述指定的 Amazon 卷。EBS

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

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

    • [--volume-idvalue]-一个或多个卷。IDs

  • detach-volu me — 将 A EBS mazon 卷与已停止或正在运行的实例分离。

    • [--device value]:设备名称。

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

    • --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 — 一个允许您使用亚马逊EC2API操作以编程方式管理计算实例的值。有关更多信息,请参阅 将与 Amazon EC2 兼容的终端节点指定为终端节点 AWS CLI

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

    • instanceInitiatedShutdownBehavior

    • 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)。

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

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

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

  • run-inst ances — 使用 Snowcone ID 启动多个计算实例。AMI AMI

    注意

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

    • [--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 — 的 Snowcone AMI IDAMI,你可以通过致电获得。describe-images必须AMI使用才能启动实例。

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

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

    • --launch-template structure:设置为默认版本的启动模板的版本号。您在 run-instances 命令中指定的任何参数都会覆盖启动模板中的相同参数。您可以指定启动模板的名称或 ID,但不能同时指定二者。

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

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

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

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

    • --instance-id — 设备上已停止的一个或多个sbe实例。IDs

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

    • --instance-id — 设备上要停止的一个或多个sbe实例。IDs

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

    注意

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

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

支持的亚马逊EC2API运营

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