使用 Amazon EC2 终端节点 - AWS Snowcone 用户指南

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

使用 Amazon EC2 终端节点

在下文中,您将大体了解亚马逊Elastic Compute Cloud (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 接通电源并Connect 网络,然后启动它。

  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 不支持的Amazon EC2 功能

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

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

支持AWS CLI在 Snowcone 上使用 Amazon EC2 的命令

在下文中,您将了解有关如何为适用的 Amazon EC2 终端节点指定信息AWS CLI命令。有关安装和设置的信息AWS CLI,包括具体说明什么AWS 区域你想做AWS CLI打电话反对,看看AWS Command Line Interface用户指南.

支持 Amazon EC2 的列表AWS CLI在 Snowcone 上执行命令

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

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

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

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

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

    • —evicevalue— 设备名称。

    • —instance-id — 目标Amazon EC2 实例的 ID。

    • —volume-IDvalue— EBS 卷的 ID。

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

    • —group-idvalue— 安全组 ID

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

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

    • [—组名value] — 安全组的名称。

    • [—group-edvalue] — 安全组 ID

    • [—ip-权限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 代码。

    • [—cidrvalue] — CIDR IP 范围。

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

    • --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" } ] } ] }
    • [—版本描述string] — 第一版启动模板的描述。

    • —ersencsnowballEndpoint— 一个值,使您可以使用 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]string] — 新版本所基于的启动模板的版本号。新版本继承和源版本相同的启动参数,但在 launch-template-data 中指定的参数除外。

    • [—版本描述string] — 第一版启动模板的描述。

    • —ersencsnowballEndpoint— 一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅 将 Amazon EC2 终端节点指定为AWS CLI端点

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

    • AMI

    • 实例

    • 启动模板

    • 安全组

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

    • —群组名称value— 安全组的名称。

    • --descriptionvalue— 安全组的说明。此仅为信息性。此值最长可达 255 个字符。

  • create-volume— 创建一个 Amazon EBS 卷,您可以将此卷附加到上的实例AWS Snowcone设备。

    • [—size]value] — 卷的大小(以) GiBs,可以在 1 GiB 到 1 TB (1000) 之间 GiBs)。

    • [—snapshot-idvalue] — 从中创建卷的快照。

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

      • 对于磁性介质卷为 sbg1

      • 对于 SSD 卷为 sbp1

    • [—标签规范value— 在创建期间应用到该卷的标签列表。

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

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

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

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

    • —ersencsnowballEndpoint— 一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅 将 Amazon EC2 终端节点指定为AWS CLI端点

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

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

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

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

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

    • —ersencsnowballEndpoint— 一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。

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

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

    • —群组名称value— 安全组的名称。

    • --descriptionvalue— 安全组的说明。此仅为信息性。此值最长可达 255 个字符。

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

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

    • —volume-IDvalue— volume 的 ID。

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

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

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

    • —image-id — AMI 的 Snowcone AMI AMI AMI AMI AMI AM

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

    • —ersencsnowballEndpoint— 一个值,使您可以使用 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— 启动模板的名称。

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

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

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

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

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

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

    • —ersencsnowballEndpoint— 一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅 将 Amazon EC2 终端节点指定为AWS CLI端点

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

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

    • [—组名value] — 安全组的名称。

    • [—group-edvalue] — 安全组 ID。

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

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

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

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

    • launch-template

    • resource-id

    • resource-type – imageinstance

    • key

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

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

    • [—起始代币value] — 指定从何处开始分页的令牌。此令牌是先前截断的响应中的 NextToken 值。

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

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

    • [—设备value] —设备名称。

    • [—instance-id] — 目标Amazon EC2 实例的 ID。

    • —volume-IDvalue— volume 的 ID。

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

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

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

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

    • —ersencsnowballEndpoint— 一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅 将 Amazon EC2 终端节点指定为AWS CLI端点

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

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

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

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

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

    • —ersencsnowballEndpoint— 一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅 将 Amazon EC2 终端节点指定为AWS CLI端点

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

    • instanceInitiatedShutdownBehavior

    • userData

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

    • [—group-edvalue] — 安全组 ID

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

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

    • [—组名value] — 安全组的名称。

    • [—group-edvalue] — 安全组 ID。

    • [—ip-权限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 代码。

    • [—cidrvalue] — CIDR IP 范围。

  • run-instances— 通过将 Snowcone AMI ID 用于 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 — AMI 的 Snowcone AMI ID,可以通过调用获得describe-images. 启动实例时需要 AMI。

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

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

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

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

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

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

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

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

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

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

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

    注意

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

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

支持 Amazon EC2 API 操作

在下文中,可以在中找到可用于 Snowcone 设备的 Amazon EC2 API 操作以及指向其说明的链接Amazon EC2 API 参考中的。Amazon EC2 API 调用需要签名版本 4 (SigV4) 签名。如果您使用的是 E WithAWS CLI或者一个AWSSDK 要进行这些 API 调用,则会为您处理 SigV4 签名。否则,您需要实施自己的 SigV4 签名解决方案。