一般性问题

问:什么是 AWS OpsWorks Stacks?

AWS OpsWorks Stacks 让您可以管理 AWS 上和本地的应用程序和服务器。利用 OpsWorks Stacks,您可以将自己的应用程序塑造成一个包含不同层级 (例如负载均衡层、数据库层和应用程序服务器层) 的堆栈。您可以在每个层级部署和配置 Amazon EC2 实例,也可以连接 Amazon RDS 数据库等其他资源。OpsWorks Stacks 让您可以将服务器设置为根据预先设定的时间表或针对不断变化的流量水平自动扩展,并使用生命周期钩子来随着环境的扩展而协调各种变化。您可以通过 Chef Solo 来运行各种 Chef 方案,从而自动执行软件包安装、语言或框架编程和软件配置等多种任务。

问:AWS OpsWorks Stacks 与 AWS OpsWorks for Chef Automate 有什么区别?

OpsWorks for Chef Automate 是一种配置管理服务,可以帮助您即时预置 Chef 服务器,并让该服务运行此服务器,包括执行备份和软件升级。该服务与 Chef 的 Supermarket 说明书和配方完全兼容。可以支持 TestKitchen 和 Knife 等本机 Chef 工具。OpsWorks Stacks 服务可以帮助您使用安装在 Amazon EC2 实例上的嵌入式 Chef Solo 客户端在 AWS 上对应用程序进行建模、预置和管理。

问:哪些人应该使用 AWS OpsWorks Stacks?

正在寻找强大的端到端配置管理解决方案的系统管理员和具有 Ops 理念的开发人员可以考虑采用 AWS OpsWorks Stacks。AWS OpsWorks Stacks 的目标用户是需要更强的管理与自动化工具来帮助他们自定义并控制环境的 DevOps 用户。AWS OpsWorks Stacks 用户一般会重视:

控制。利用 AWS OpsWorks Stacks,您可以轻松地为应用程序的所有组件建模,然后对应用程序及其支持基础设施的各个方面进行配置。利用其在应用程序生命周期的各个既定阶段对使用 Chef 配方(单击此处了解详细信息)的脚本式更改的支持,您可以实现对应用程序及其与相关组件的交互的精细控制。配方可随源代码一起存储,以便追踪更改。从一次性部署到自动扩展式增长,您的应用程序会通过完整的生命周期来反映您做的设置。

自动化。​您无需进行手动操作,只需指定如何扩展、维护和部署您的应用程序,AWS OpsWorks Stacks 就会为您执行各项任务。例如,AWS OpsWorks Stacks 可以设置实例来基于您指定的具体配置 (要部署的代码等) 托管应用程序、使用基于负载或时间的自动扩展功能来扩展您的应用程序,并通过检测和替换故障实例来保持应用程序正常运行。AWS OpsWorks Stacks 使用 Chef 配方来启动新的应用程序服务器实例、配置应用程序服务器软件和部署应用程序。您还可以应用自己的 Chef 配方,以便对您的数据库和监控基础设施进行更改。

问:用户可以利用 AWS OpsWorks Stacks 执行哪些之前无法实现的操作?

AWS OpsWorks Stacks 提供的解决方案让您能够:

为任何应用程序建模并提供支持。您可以在 Amazon Linux、Ubuntu、RHEL 和 Windows 上部署采用所选配置的应用程序。AWS OpsWorks Stacks 让您能够利用层为您的应用程序建模。层定义了如何配置一组集中管理的资源。例如,您可以为您的应用程序定义由 Amazon EC2 实例、Amazon EBS 卷和弹性 IP 地址组成的 Web 层。您也可以为每个层定义软件配置,包括安装脚本和初始化任务。将实例添加到层后,AWS OpsWorks Stacks 会自动应用指定的配置。由于 AWS OpsWorks Stacks 支持 Chef 配方(单击此处了解详细信息),因此您可以利用数百种基于社区的配置,例如 PostgreSQL、Nginx 和 Solr。例如,您可以创建一个由多个 Python 应用组成的应用程序,它们是安装在已连接 CouchDB 数据库的 Django 上的。

自动执行任务​。AWS OpsWorks Stacks 让您可以自动执行各种管理操作,确保其能够自动、可靠地执行。您可以享受自动故障转移、软件包管理、Elastic Load Balancing 配置以及基于规则或时间的自动实例扩展所带来的好处。它可以为您自动处理常见任务,而且您也可以扩展和自定义自动化功能。AWS OpsWorks Stacks 支持通过生命周期事件进行持续配置,从而自动更新实例配置以便适应环境变化,例如自动扩展事件。利用 AWS OpsWorks Stacks,您无需登录多台计算机手动更新您的配置。只要环境发生变化,AWS OpsWorks Stacks 就会更新配置。

问:AWS OpsWorks Stacks 支持哪些种类的应用程序?

AWS OpsWorks Stacks 支持多种应用程序架构,从简单的 Web 应用程序到高度复杂的自定义应用程序均涵盖在内。

问:如何访问 AWS OpsWorks Stacks?

AWS OpsWorks Stacks 可以通过 AWS 管理控制台、AWS 开发工具包和 AWS 命令行界面进行访问。

问:AWS OpsWorks Stacks 支持哪些区域?

请参阅区域性产品和服务,了解 OpsWorks Stacks 在不同区域的具体提供情况。

问:AWS OpsWorks Stacks 与 AWS CloudFormation 有什么区别?

AWS OpsWorks Stacks 和 AWS CloudFormation 都支持应用程序的建模、部署、配置、管理及相关操作。他们都支持各种架构模式,从简单的 Web 应用程序到高度复杂的应用程序均涵盖在内。AWS OpsWorks Stacks 和 AWS CloudFormation 的区别在于二者具有不同的抽象程度和侧重点。

AWS CloudFormation 是一种构建块服务,使客户能够通过基于 JSON 的域专用语言预置并管理几乎任何 AWS 资源。AWS CloudFormation 的侧重点在于为 AWS 提供全面的基础功能,而不会针对发展与运营设定专用模型。客户定义模版,然后用它们调配并管理 AWS 资源、操作系统和应用程序代码。

相反,AWS OpsWorks Stacks 是一种更高等级的服务,侧重于为 IT 管理员和具有 Ops 理念的开发人员提供高效可靠的 DevOps 体验。为了达到这一目的,AWS OpsWorks Stacks 采用了基于堆栈和层等概念的配置管理模型,并将部署、监控、自动扩展和自动化等的关键活动集成到一起。与 AWS CloudFormation 相比,AWS OpsWorks Stacks 支持的面向应用程序的 AWS 资源类型较少,包括 Amazon EC2 实例、Amazon EBS 卷、弹性 IP 和 Amazon CloudWatch 指标。

问:AWS OpsWorks Stacks 与 AWS Elastic Beanstalk 有什么区别?

AWS OpsWorks Stacks 是一个配置管理平台,而 AWS Elastic Beanstalk 是一个应用程序管理平台。

AWS Elastic Beanstalk 是一项易于使用的服务,可用来部署和扩展使用 Java、.NET、PHP、Node.js、Python、Ruby、Go 和 Docker 开发的 Web 应用程序和服务。客户上传代码后,Elastic Beanstalk 会自动执行剩下的操作。

AWS OpsWorks Stacks 和 AWS Elastic Beanstalk 都可以自动执行操作,但适用于不同的需求和用途。AWS Elastic Beanstalk 专为希望无需手动操作即可部署 Web 应用程序的开发人员而设计。开发人员只需上传他们的代码,Elastic Beanstalk 便会自动处理从容量预配置、负载均衡、自动扩展到应用程序运行状况监控的所有部署工作。随后应用程序即可使用,无需由开发人员完成任何基础设施或资源配置工作。

与此相反,AWS OpsWorks Stacks 是一个集成的配置管理平台,适用于需要对操作进行高度自定义与控制的 IT 管理员和 DevOps 工程师。AWS OpsWorks Stacks 用户可以利用 Chef 配方自动执行各种操作,例如软件配置、软件包安装、数据库设置、服务器扩展以及代码部署。

问:是否可以使用其他服务控制台或 CLI 来管理 AWS OpsWorks Stacks 创建的资源?

尽管 OpsWorks Stacks 用来构建环境所用的全部资源都能在各自的服务中看到,但是一般情况下,您应该只通过 OpsWorks Stacks 来管理这些资源,以避免 OpsWorks Stacks 自动化功能产生副作用。但是,也存在例外情况:

  • AWS OpsWorks Stacks 会根据您在层中指定的配置来创建和删除实例的卷。如果您想要创建卷快照,或者管理要在实例终止时仍然保留的卷,可以直接通过 Amazon EC2 服务进行操作。
  • AWS OpsWorks Stacks 可以为层提供安全组,安全组的默认设置与该层需要的端口匹配。如果您要自定义安全组或创建新安全组,可以直接通过 EC2 服务进行操作。
  • AWS OpsWorks Stacks 使用的密钥对可以让您通过 SSH 访问实例。如果您要创建或管理密钥对,可以直接通过 Amazon EC2 服务进行操作。
  • AWS OpsWorks Stacks 可以为您添加到堆栈的用户创建默认的 AWS IAM 策略。如果您想使用更为细化的权限,则需要在 IAM 中向用户添加这些权限。
  • AWS OpsWorks Stacks 将指标从您的所有资源发送到 Amazon CloudWatch。如果您要查看这些指标或设置警报,可以直接通过 Amazon CloudWatch 进行操作。

问:AWS OpsWorks Stacks 实例与 Amazon EC2 实例是否相同?

AWS OpsWorks Stacks 实例定义了 Amazon EC2 实例及其与相关资源的关系,例如可用区、类型和关联的卷。一个 AWS OpsWorks Stacks 实例在其生命周期内可能会体现为多个 Amazon EC2 实例,但是一次只能对应一个。这让 AWS OpsWorks Stacks 能够在 Amazon EC2 实例启动时,始终将卷和弹性 IP 等资源与 Amazon EC2 实例绑定在一起。

问:AWS OpsWorks Stacks 是否有任何限制?

默认情况下,您可以创建最多 40 个堆栈,每个堆栈最多可容纳 40 个层、40 个实例和 40 个应用。您还应该了解其他 AWS 限制。例如,默认 AWS 账户限制您最多可启动 20 个 Amazon EC2 实例。如果您需要更多资源,请填写申请表,我们会及时评估您的申请。您还可以通过每个 OpsWorks Stacks 层安装有限数量的软件包。如果您要安装大量软件包,则使用自定义说明书来安装。

问:AWS OpsWorks Stacks 是否支持 Windows Server?

支持。AWS OpsWorks Stacks 可以支持 Windows Server 2012 R2。

问:AWS OpsWorks Stacks 是否支持本地服务器?

支持。AWS OpsWorks Stacks 支持可以安装 OpsWorks Stacks 代理并且与 AWS 公用终端节点连接的所有 Linux 计算机。

问:要与 AWS OpsWorks Stacks 配合使用,我的服务器必须满足哪些网络要求?

您的服务器仅需要连接 AWS 公用终端节点

入门

问:如何注册 AWS OpsWorks Stacks?

要注册 AWS OpsWorks Stacks,请单击 AWS OpsWorks Stacks 详细信息页面中的“Sign Up Now”按钮。您必须拥有 Amazon Web Services 账户才能访问此服务;如果还没有账户,那么在您开始使用 AWS OpsWorks Stacks 时,系统将提示您创建一个账户。

问:如何开始使用 AWS OpsWorks Stacks?

要开始使用 AWS OpsWorks Stacks,最好的方式是查看技术文档中的 AWS OpsWorks Stacks 入门指南 (Linux | Windows)。只需几分钟,您就可以部署和使用应用程序了。

应用程序配置和管理

问:使用 AWS OpsWorks Stacks 可以控制应用程序的哪些元素?

AWS OpsWorks Stacks 定义了整个应用程序的配置,例如负载均衡器、服务器软件和数据库等。您可以通过构建层来控制堆栈的每个部分,这些层定义了部署到您的实例的软件包和其他配置详细信息,例如弹性 IP 和安全组。您还可以通过标识存储库来将软件部署到层上,并选择性地使用 Chef 配方来自动执行 Chef 可执行的所有操作,例如创建目录和用户以及配置数据库等。您可以利用 OpsWorks Stacks 的内置自动化功能来扩展应用程序,并自动从实例故障中恢复。您可以控制谁可以查看并管理应用程序使用的资源,包括对应用程序所用实例的 SSH 访问权限。

问:AWS OpsWorks Stacks 支持哪些软件版本控制与修订控制系统?

AWS OpsWorks Stacks 可以从常见的版本控制系统 (如 Git、Subversion、HTTP 以及私有或公有 S3 捆绑包) 中检索您要部署的代码。例如,您可以从 Git 存储库向 OpsWorks Stacks 应用程序定义中添加版本或分支,以便部署特定版本的应用程序。也可以通过 rsync 或 scp 在任何位置使用 Chef 配方来部署应用程序。

问:AWS OpsWorks Stacks 支持哪些操作系统?

AWS OpsWorks Stacks 目前支持 Amazon Linux、Ubuntu 12.04 LTS、Ubuntu 14.04 LTS 和 Windows Server 2012 R2。

问:AWS OpsWorks Stacks 是否支持 Microsoft Windows?

支持。AWS OpsWorks Stacks 可以支持 Windows Server 2012 R2。

问:是否可以使用 AWS OpsWorks Stacks 来部署高可用性应用程序?

可以。如果您的应用程序支持水平扩展,则您可以在多可用区域创建实例,且您的负载均衡器会调整实例间的流量。如果有任何实例发生故障,OpsWorks Stacks 的自动修复功能可以自行替换故障实例。如果您的应用程序使用其他技术来达到可用性目标,例如使用带有主动节点和被动节点的数据库,则您可以使用 Chef 配方对其进行配置。

问:如何在 AWS OpsWorks Stacks 中为应用程序建模?

AWS OpsWorks Stacks 提供了三种为应用程序建模的理念:

Stack 是最高级别的管理单位。Stack 中包含一组 Amazon EC2 实例和实例蓝图,我们称之为 layer,用于启动和管理这些实例。应用程序、用户权限以及其他资源都是在 stack 环境下进行审查和控制的。例如,您可以会为开发 Web 应用程序创建 stack,其中包括前端负载均衡器、PHP 服务器、PHP 应用程序和 MySQL 数据库。您还可以通过克隆开发 stack,为生产型 Web 应用程序创建配置相似的 stack。

Layer 是设置和配置实例以及相关资源(如卷、弹性 IP)的蓝图,它可以自动处理如 SSL 设置之类的基础设施配置。您还可以为每个层定义软件配置,包括安装脚本、初始化任务和软件包。例如,如果您使用 Ruby 层,那么 OpsWorks Stacks 不仅可以安装 Rails,还可以安装应用程序所需的所有 Gem。层中还包含生命周期事件,让您能够使用 Chef 配方(请参阅“什么是 Chef?AWS OpsWorks Stacks 如何使用 Chef?”了解详细信息)自动执行配置操作,以便响应实例状态的变化(请参阅“什么是生命周期事件”了解详细信息)。层可包含基于时间或负载的自动扩展功能,以便在无需手动干预的情况下应对需求高峰。

应用是从存储库(例如:Git 和 S3)下载并部署到 layer 的软件。您可以使用部署生命周期事件来自动执行配置操作,例如将应用程序连接到数据库。OpsWorks Stacks 支持为每个堆栈和层部署多个应用程序。

问:什么是 Chef?AWS OpsWorks Stacks 如何使用 Chef?

Chef 是由 Chef Software, Inc. 开发的一个开源框架,可以通过代码自动配置、部署和管理应用程序。AWS OpsWorks Stacks 使用 Chef 配方在 Amazon EC2 实例上部署和配置软件组件。Chef 拥有一个丰富的生态系统,带有上百种可以配合 AWS OpsWorks Stacks 使用的说明书,例如 PostgreSQL、Nginx 和 Solr。

问:什么是生命周期事件?

AWS OpsWorks Stacks 可以创建与不同生命周期阶段对应的事件。这些事件可用于触发每个实例上的 Chef 配方,以便执行特定的配置任务。OpsWorks Stacks 可以利用 Chef 配方,根据层的类型针对每个事件执行基本管理。您也可以创建自定义配方,以针对特定的生命周期事件,编写应用程序所需的任何配置变更的脚本。支持以下生周期事件:

实现实例化或启动成功后,系统会将 Setup 发送到实例。例如,您可以对安装依赖项(如 Apache、Ruby、Passenger 和 Ruby on Rails)的 Rails 应用程序服务器触发 Chef 配方。

Configure 可以在堆栈的状态发生改变时通知所有实例。例如,当新实例成功添加到应用程序服务器层时,Configure 事件会触发一个 Chef 配方,而该配方会更新 OpsWorks Stacks 负载均衡器层配置,以便反映新添加的应用程序服务器实例。

Deploy 会在应用程序被部署后触发。例如,您可以对 Rails 应用程序服务器触发 Chef 配方,以执行查看和下载您的应用程序所需的任务,并通知 Passenger 重新加载该应用程序。

当您删除应用程序时,系统会发送 Undeploy 指令。例如,取消部署事件触发的自定义 Chef 配方,可指定任何需要运行的清除步骤,如删除数据库表。

系统会在实际停止实例前,提前 45 秒向其发送 Shutdown 通知。例如,关闭事件可触发关闭服务的自定义 custom 配方。

问:AWS OpsWorks Stacks 是否支持现有 Chef 说明书?

支持。您可以使用现有的 Chef 配方。有关更多信息,请参阅文档

问:如何创建 Chef 说明书和配方?

最简单的方法可能是从使用现有 Chef 配方入手。这里有一个丰富的公有存储库生态系统,其包含的说明书中有几乎无需修改即可运行的配方。OpsWorks Stacks 入门指南中还包含一个示例 Chef 配方并介绍了其工作原理。

问:是否能使用我自己的 AMI?

能。您可以使用自己的 AMI,也可以通过 Chef 脚本来自定义 OpsWorks Stacks 支持的 AMI,以便安装需要的代理和其他软件。目前不支持使用自己的 Windows AMI。

问:能否使用 Amazon EC2 用户数据来自定义实例设置?

不可以,只能通过 Chef recipes 来配置实例设置。

问:AWS OpsWorks Stacks 支持哪些负载均衡选项?

OpsWorks Stacks 可以使用社区 Chef 配方来支持 Elastic Load Balancing 和 HAProxy,也可以使用自定义层和 Chef 配方来支持您选择安装在 EC2 实例上的任何负载均衡器。这为您提供了丰富的自定义选项,并能帮助您实现对应用程序的负载均衡器的细化控制。

问:AWS OpsWorks Stacks 支持哪些自动实例扩展选项?

OpsWorks Stacks 支持基于时间和基于负载的自动实例扩展,可以调整运行实例的数量,使之与负载相匹配。利用基于负载的自动扩展功能,您可以为 CPU、内存或负载设置阈值,以便确定何时启动更多实例。当负载峰值消失并且达到缩减阈值时,OpsWorks Stacks 会关闭额外的实例。利用基于时间的自动扩展功能,您可以定义在一天中的什么时间启动和开始实例。您的自动扩展池中的实例大小各异,从而让您能够以渐进方式扩展或快速进行扩展,并且可针对多可用区域进行配置,从而提高可靠性。OpsWorks Stacks 目前不支持 EC2 Auto Scaling。

问:AWS OpsWorks Stacks 支持哪些监控与警报选项?

OpsWorks Stacks 会将您的所有实例和卷指标发送到 CloudWatch,使您能够轻松查看图表并设置警报,从而排除故障并根据资源的状态自动采取措施。您还可以在“OpsWorks Stacks Monitoring”视图中查看 OpsWorks Stacks 从您的实例中收集到的十三个 1 分钟指标 (包括 CPU、内存和负载)。

问:AWS OpsWorks Stacks 支持哪些数据库?

您可以使用 Amazon RDS 等 AWS 服务或 Chef 配方来安装数据库,如 MySQL、Cassandra 或 MongoDB。这为您提供了丰富的自定义选项和对应用程序数据库的精细控制。

问:AWS OpsWorks Stacks 是否支持标签?

OpsWorks Stacks 会自动用关联的堆栈与层的名称为所有资源设置标签。您可以将这些标签与成本分配报告配合使用,通过设置标签来整理并跟踪使用 AWS 产生的费用。要了解更多有关成本分配和设置标签的信息,请访问 AWS Account Billing。

安全性

问:是否能在 Amazon Virtual Private Cloud (VPC) 内运行我的应用程序?

能。请参阅 OpsWorks Stacks 文档以便了解更多信息。

问:能否将 AWS Identity and Access Management (IAM) 与 AWS OpsWorks Stacks 配合使用?

可以,OpsWorks Stacks 支持 IAM 用户、权限和角色。您可以按用户指定权限,包括查看、部署和管理权限。您还可以指定哪些用户可以直接 SSH 到实例。OpsWorks Stacks 支持 IAM 角色,让您能够在为用户提供 OpsWorks Stacks 访问权限时无需提供对 EC2 等相关服务的访问权限。例如,您可以明确禁止用户执行 EC2 操作,但是如果该用户拥有配置或管理堆栈资源的 OpsWorks Stacks 权限,就仍然可以通过 OpsWorks Stacks 控制 EC2 实例。这让您能够防止 OpsWorks Stacks 用户无意中从 EC2 控制台停止实例。

问:是否能控制在实例上打开的端口?

AWS OpsWorks Stacks 提供一组标准的内置安全组,每个层对应一个,并且默认与各层关联。而堆栈的“Use OpsWorks Stacks”安全组设置让您可以提供自定义安全组。使用此选项,您必须创建适当的 EC2 安全组并将安全组关联到您创建的各层。但是,您仍然可以在创建时手动关联内置的安全组和层;只有需要自定义设置的层才必须要自定义安全组。想要了解更多有关安全组的信息,请参阅 Amazon EC2 安全组。请注意,OpsWorks Stacks 需要使用 EC2 实例端口 443 上的出站连接来配置您的实例。

问:AWS OpsWorks Stacks 在实例上运行哪些内容?

OpsWorks Stacks 使用代理在实例上执行配置任务,并提供检测信号运行状况报告。代理是作为普通用户在操作系统中运行的。此外,每个实例还有一个仅用于部署的用户。除了部署权限外,该用户没有任何登录权限或访问权限。

问:在哪里可以找到有关 AWS 安全性和在 AWS 上运行应用程序的更多信息?

如需有关 AWS 安全性的更多信息,请参阅我们的 Amazon Web Services:安全流程概述文档,并访问我们的安全中心

计费

问:AWS OpsWorks Stacks 如何收费?

请访问我们的定价页面来了解​ AWS OpsWorks Stacks 费用。

问:如何查看应用程序已使用多少个 AWS 资源并访问我的账单?

您可以随时在 Amazon Web Services 网站上查看当前账单期的费用,只需登录您的 Amazon Web Services 账户,并单击您的 Web 服务账户下的账户活动。OpsWorks Stacks 会自动用关联的堆栈与层的名称为所有资源设置标签。您可以将这些标签与成本分配报告配合使用,通过设置标签来整理并跟踪使用 AWS 产生的费用。

开始使用 AWS OpsWorks Stacks 构建

开始在 AWS 控制台中构建
准备好开始构建?
开始使用 AWS OpsWorks Stacks
还有更多问题?
联系我们