我一直在尝试研究这个主题,但没有找到任何建议在迁移到云框架时安装 Redis 和 ElasticSearch 等服务的地方。
我目前正在 2 个静态服务器上运行 Symfony2 应用程序——一个运行 MySQL,另一个是面向公众的 Web 服务器,它也运行着 Redis 和 ElasticSearch。这两个服务器都是虚拟化的,但就目前无法复制而言它们是静态的(各个方面仍然依赖于本地文件系统)。
目标是迁移到 AWS 并使用自动扩展来根据需要启动和终止 Web 服务器,但我不清楚应该在每个 EC2 实例上放置什么。他们应该只负责单一职责吗?即为 Web 服务器、Redis 和 ElasticSearch 设置单独的实例,最有可能为 MySQL 设置一个 RDS 实例,并且只在 Web 服务器上设置自动缩放?
我不认为必须在短期内扩展 ElasticSearch 服务器,因为它只是驱动搜索功能,但 Redis 可能需要在某个时候进行复制 - 但这应该手动完成吗?我不确定这如何自动完成,因为据我所知,每个实例都需要配置为了解它的主/从。我很感激这方面的建议。
我在这里的时候还有一个简单的问题 - 当 X 个 Web 服务器当前处于活动状态时,我如何能够部署代码更改?我正在使用 Capifony 部署脚本(Capistrano 的 Symfony2 版本),我认为它可以通过指定一组:domain地址来轻松处理多个服务器……但是当 Web 服务器的数量可能会有所不同时,应该如何处理?