基于 AMI 的配送使用 AWS CloudFormation - AWS Marketplace

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

基于 AMI 的配送使用 AWS CloudFormation

重要

AWS Marketplace 将于 2024 年 8 月停止使用 AWS CloudFormation 模板的多款亚马逊系统映像 (AMI) 商品的配送方式。在停止使用之前,该交付方式仅适用于现有订阅用户。使用的其他 AWS Marketplace 产品 CloudFormation,例如带的单个 AMI CloudFormation,不会受到影响。有关更多信息,请参阅《AWS Marketplace 买家指南》中的 AWS CloudFormation 模板

AWS Marketplace 卖家可以使用 AWS CloudFormation 模板发布配送给 AWS Marketplace 买家的基于 AMI 的商品。您可以使用这些模板定义集群或者产品的分布式架构,也可用于选择不同 AMI 组合或产品配置。可以将 CloudFormation 模板配置为提供单个亚马逊系统映像 (AMI) 或多个 AMI 以及相关的配置文件和 Lambda 函数。买家可以浏览所选解决方案 AWS Marketplace,一键购买,然后使用您提供的 CloudFormation模板进行部署。

多 AMI 解决方案最多可以包含 20 个 AMI 和最多 20 CloudFormation 个模板。每个 CloudFormation 模板都可以引用解决方案中包含的 AMI 的任意组合或子集。买家购买单个解决方案之后,即享有该产品中所含全部 AMI 的权利。当产品有多个 AMI 时,每个 AMI 将具有各自的唯一产品代码,并可以单独定价和计费。不过,在产品上下文之外,您无法搜索或购买解决方案的单独组件。

如果您有现有的单 AMI 产品,就无法将该产品迁移或组合到新的多 AMI 列表中。不过,您的新解决方案可以具有由现有产品使用的相同 AMI 的软件或副本。上创建的每个清单 AWS Marketplace 都是带有新商品编码的清单。

您还可以将 Lambda 函数与您的 AMI 一起包含在无服务器应用程序中,以便买家可以通过部署它们。 CloudFormation有关如何在 AMI 中包括 Lambda 函数和无服务器应用程序的说明,请参阅添加无服务器应用程序组件

生成产品列表

要提交产品,您需要准备并验证 AMI、创建 AWS CloudFormation 模板、创建架构示意图、完成产品加载表单并将材料提交到 AWS Marketplace。我们建议您首先创建和验证您的 AMI,然后完成并验证模板。 CloudFormation 完成这些步骤后,您应创建架构示意图并估算软件和基础设施价格。 AWS Marketplace 将验证您提交的材料并与您合作,以公开发布您的产品。使用 AWS Pricing Calculator 可帮助估算您模板的基础设施成本。提供指 AWS Marketplace 向您保存的计算器配置的链接。以下是多 AMI 解决方案产品的限制:

  • 不支持将现有 AWS Marketplace 产品从独立产品更新为多 AMI 产品。要使产品在多 AMI 产品中可用,请复制 AMI 并将其作为组件提交到新的多 AMI 产品。生成的 AMI 具有唯一产品代码,不同于以前产品的代码。

  • 多 AMI 解决方案在 Amazon Elastic Compute Cloud (Amazon EC2) 控制台中的启动实例页面的 AWS Marketplace 选项卡上不可见。

  • CloudFormation 模板不得启动多 AMI 解决方案中列出的 AMI 之外的 AMI。

  • CloudFormation 模板必须以公共 URL 的形式提交。模板中包含的所有嵌套模板 URL 也必须可公开访问。

准备 CloudFormation 模板

要构建 CloudFormation 模板,您必须满足模板的先决条件并提供所需的输入和安全参数。提交 CloudFormation 模板时,请使用以下各节中的指南。

模板先决条件

  • 验证模板是否已通过 AWS CloudFormation 控制台成功启动, AWS 区域 且已为您的产品启用所有功能。您可以使用该TaskCat 工具来测试您的模板。

  • 如果您创建单 AMI 产品,则模板必须只包含一个 AMI。

  • AMI 必须位于各个区域的映射表中。在 AMI ID 被克隆后, AWS Marketplace 团队会对其进行更新。您的源 AMI 必须位于 us-east-1,其他区域可以使用占位符。请参阅以下 YAML 示例。

    Mappings: RegionMap: us-east-1: ImageId: ami-0123456789abcdef0 us-west-1: ImageId: ami-xxxxxxxxxxxxxxxxx eu-west-1: ImageId: ami-xxxxxxxxxxxxxxxxx ap-southeast-1: ImageId: ami-xxxxxxxxxxxxxxxxx
  • 生成模板,使其不必依赖于使用特定可用区 (AZ)。并非所有客户都可以访问所有可用区,并且不同账户的可用区映射也不同。

  • 您可以在 AMI 中包括诸如 Lambda 函数、配置文件和脚本之类的依赖项。有关更多信息,请参阅 创建无服务器应用程序

  • 如果您在生成使用自动扩缩组的集群解决方案,我们建议您考虑到扩展事件。新节点应自动加入正在运行的集群。

  • 对于单节点产品,我们建议使用自动扩缩组

  • 在解决方案涉及含多个实例的集群时,如果您希望在集群之间降低网络延迟时和/或提升网络吞吐量,请考虑使用置放群组。

  • 如果解决方案涉及 Docker 容器,则必须将 Docker 映像集成到 AMI 中。

  • 为了便于 AWS Marketplace 团队审核并向买家透明,我们建议您在UserData栏目中添加评论。

模板输入参数

  • 模板的输入参数不得包含 AWS Marketplace 客户的 AWS 凭证(例如密码、公钥、私钥或证书)。

  • 对于密码等敏感输入参数,请选择 NoEcho 属性并启用更严格的正则表达式。对于其他输入参数,设置最常见的输入以及相应的帮助文本。

  • 如果可用,请使用 AWS CloudFormation 参数类型进行输入。

  • 使用 AWS::CloudFormation::Interface 来分组和排序输入参数。

  • 请勿为以下输入参数设置任何默认值:

    注意

    客户必须提供这些内容作为输入参数。

    • 允许从公共互联网进入远程访问端口的默认 CIDR 范围

    • 允许从公共互联网进入数据库连接端口的默认 CIDR 范围

    • 用户或数据库的默认密码

网络和安全参数

  • 确保默认 SSH 端口 (22) 或 RDP 端口 (3389) 未对 0.0.0.0 打开。

  • 不要使用默认虚拟私有云 (VPC),我们建议您使用合适的访问控制列表 (ACL) 和安全组生成 VPC。

  • 使用 AWS Identity and Access Management (IAM) 角色AssumeRole从中调用,从而允许访问客户的 AWS 环境 AWS Security Token Service。

  • 将 IAM 角色和策略设置为授予最低权限,并且仅在绝对需要时启用写入访问权限。例如,如果您的应用程序只需要 S3:GETPUTDELETE 操作,则仅指定这些操作。在这种情况下,我们不建议使用 S3:*

收到您的模板后,将 AWS Marketplace 验证产品配置和信息,并就所有必需的修订提供反馈。

获取模板基础设施的成本估算

向客户显示的各个模板的基础设施成本估算基于您使用 AWS Pricing Calculator 提供的估算值。该估算应包括将作为模板的一部分部署的服务列表,以及典型部署的默认值。

计算模板的每月估计费用后,请 AWS Marketplace 提供美国东部(弗吉尼亚北部)区域的 “保存并共享” 链接。这是提交过程的一部分。

架构示意图

您必须为每个模板提供架构示意图。示意图必须符合以下标准:

  • 说明标准部署 AWS

  • 使用通过 AWS CloudFormation 模板 AWS 服务 部署的每个AWS 产品图标

  • 包括 AWS CloudFormation 模板部署的所有服务的元数据

  • 包括模板部署的所有网络、VPC 和子网 AWS CloudFormation

  • 显示集成点,包括第三方资产、API 和本地资产及混合资产

  • 大小必须为 1100 x 700 像素

    注意

    确保您的图表符合此大小要求,以避免任何裁剪或拉伸,如下图中所示。

AWS VPC architecture diagram showing public and private subnets, auto-scaling apps, and RDS databases across two availability zones.

满足提交要求

要提交使用 AWS CloudFormation 模板配送的商品,您必须提供以下资源:

  • CloudFormation 一个或多个模板

    • 单个 AMI 产品可以有一到三个模板 CloudFormation

    • 一个多 AMI 产品最多可以有 20 个模板 CloudFormation

  • 各个模板的默认配置的估算基础设施价格

  • 架构示意图和架构元数据

  • 已完成产品表单(在 AWS Marketplace 管理门户 中提供)

产品表包含提交示例供您参考。

对于每个产品,大部分所需的产品数据和元数据与传统单 AMI 产品相同。因此,使用 CloudFormation模板交付的每个 AMI 都必须继续符合中所述的标准和要求 AWS Marketplace。

对于每个 CloudFormation 模板,您还必须提供以下信息。

字段 描述 限制
Title 架构的标题。此项显示在详情页面和交付页面上,以及显示架构详细信息的弹出窗口中。 50 个字符
简短描述 此项显示在详情页面和产品交付页面上。 200 个字符
详细描述 此项显示在架构详细信息弹出窗口中。 2000 个字符

对于多 AMI 产品,以下字段必填:

  • 解决方案标题

  • 解决方案简短描述

  • 解决方案详细描述

  • 对于 CloudFormation 模板(每个解决方案最多 20 个)

    • 部署标题(每个模板)

    • 简短描述(每个模板)

    • 详细描述(每个模板)

    • 架构图(每个模板)

    • 基础设施定价估算(每个模板)

    • 此 CloudFormation 模板中包含的产品/组件清单

    • 此 CloudFormation 模板支持的区域列表

提交您的产品请求

使用 AWS Marketplace 管理门户 提交您的产品。在资产选项卡上,选择文件上传。上传要提交的任何文件并输入简要描述。YAML 和 JSON 文件格式受支持。请求处理时间为 3 到 5 个星期,包括:

  • 审查 AMI 和 CloudFormation 模板的模板、AMI 和 CloudFormation元数据

  • 将您的 CloudFormation 模板发布到 AWS Marketplace 产品