我希望以尽可能低的成本安装 chef 服务器,同时留出足够的空间让它运行而不会崩溃。我找到的唯一一篇关于这个主题的文章警告说,RabbitMQ 会在微型实例上因内存不足而崩溃。
问题是:考虑到我的应用程序中没有将 CouchDB 或 RabbitMQ 用于其他任何用途,什么是能够可靠地运行 chef 服务器的最便宜的 EC2 实例,因此可能必须在同一实例上专门为 chef 服务器设置它们。
答案1
比节点数量更大的因素是您的客户端在配置节点时进行的收敛次数(转化为 API 命中)。
正如您所发现的,Ruby API 服务器占用大量内存,因此微型实例很快就会显得拥挤不堪。CouchDB 后端可能占用大量写入空间(取决于您的收敛情况),因此 IO 性能是一个考虑因素。搜索引擎通常没有问题,您可以增加扩展器 vnode 的数量来处理索引工作量。
总体而言,我们发现 c1.medium 是最好的物有所值实例大小适合各种工作负载,不仅适用于 Chef Server,还适用于一般应用程序。不过,它的成本是 m1.small 的两倍。
Chef Server 专为水平扩展而设计。它可以在一个系统上启动,但随着基础架构规模的增加,您可能希望将组件拆分到单独的系统。根据其经济性,您可以通过在单独的实例上运行组件来混合和匹配适合您工作负载的实例大小。有关Chef wiki 上的配置选项。
还,Opscode 托管厨师可能是一种经济的解决方案,因为您不必担心任何这些。
答案2
我已经在 m1.small 实例上可靠地运行了它近 6 个月。
我的实例运行 RightScale CentOS 5 映像,其中安装了 chef 服务器RBEL 回购。我的 Chef 服务器目前管理大约 30 个节点和 6 个环境。