我想尽可能便宜地设置厨师服务器,同时留出足够的空间来运行而不会崩溃。 我在这个主题上发现的唯一一篇文章警告说,由于内存不足,RabbitMQ会在微型实例上崩溃。
问题是:考虑到我的应用程序中没有使用CouchDB或RabbitMQ,所以最便宜的EC2实例可以可靠地运行厨师服务器,所以可能必须在同一个实例上专门为厨师服务器设置它们。
一个比节点数量更大的因素是收敛数量 – 这会转化为API命中 – 客户端在configuration节点时所做的。
正如你发现的那样,Ruby API服务器是内存密集型的,所以微型实例会很快感到拥挤。 CouchDB后端可以写入密集型(取决于您的收敛),因此IO性能是一个考虑因素。 search引擎通常很好,您可以增加扩展vnode的数量来处理索引的工作量。
一般来说,我们发现c1.medium对于各种工作负载的buck实例大小来说是最好的select,而不仅仅是Chef Server,而是用于一般的应用程序。 它的成本是m1.small的两倍。
厨师服务器是为横向devise的。 它可以在一个系统上启动,但是随着基础架构规模的增加,您可能希望将组件分离到不同的系统中。 根据其经济性,您可以通过在单独的实例上运行组件来为工作负载混合和匹配实例大小。 有关Chef wiki上configuration选项的更多信息。
此外, Opscode托pipe厨师可能是一个经济的解决scheme,因为你不必担心任何。
我已经在m1.small实例上可靠地运行了近6个月。
我的实例运行RightScale CentOS 5镜像,安装了从RBEL Repo安装的主厨服务器。 我的厨师服务器目前pipe理大约30个节点和6个环境。