我有一个很大的服务器软件(预装了3 GB的文件(正在EC2上运行。该软件安装了一个完整的应用程序服务器或接口服务器,用于与前端桌面GUI和数据库通信。该软件最初是几年前设计的,通过一个可视化的分步安装程序安装在本地的USB驱动器上。此安装程序可确保软件的设置具有正确的配置、网络、与数据库的连接等。每个客户端都有一个或多个EC2实例专门用于处理其工作负载。进入云思维模式,对于创建多个服务器、多个客户端,有什么更好的方法来处理这些软件的不同配置?当一个服务器出现故障,或者需要另一个服务器进行加载时;云;练习启动一台新服务器并在该服务器上安装相同配置的软件?
我有多种想法,包括:
- 将软件文件存储在S3 bucket中,并根据需要将它们拉到EC2实例中。每个客户的配置文件也将更新并存储在S3上。然后,EC2将从PowerShell脚本启动软件,以创建正确的配置
- 将软件完全按照配置存储在EC2的AMI中。这意味着,每当使用新的客户端配置创建服务器时,我们都会在安装后创建一个新的AMI
- 创建一个可以处理所有不同配置参数的Lambda函数。当被调用时,它将负责启动服务器,将软件移动到服务器,并安装具有正确配置的软件
如有任何指导或白皮书参考,我们将不胜感激。
谢谢!
我会:
-
准备一个单独的AMI,该AMI安装了软件和所需的配置
-
将客户的自定义配置文件存储在存储桶中
-
为每个客户创建一个启动模板。该模板将引用AMI,并从bucket 中获取客户特定的配置文件
-
为每个客户创建一个EC2自动缩放组。每个自动缩放组将使用特定的启动模板
如果您的客户群增长,一个带有自动提取的配置文件的AMI可以让您轻松扩展。另一种选择,每个客户一个AMI,很快就会变得难以管理。
如果客户需要更多的服务器,则自动扩展组允许您进行无缝扩展,并负责自动替换不正常的实例。