我对配置服务器和使用 EC2 完全陌生,所以请耐心等待。
经过一番努力之后,我终于成功启动了一台 Ubuntu 服务器,并运行了 memcached 和一些其他好东西,这对我来说是一个很棒的软件包。
我认为,当将其存储为 AMI 时此工具 下次我基于该镜像启动实例时,memcached 就可以使用了。我该怎么做才能确保我的配置正确保存到实例中?
问题二: - 我能否以某种方式创建一个在服务器创建时自动运行的命令,例如使用“memcache -d -m 1700 -u root”启动 memcache 或者甚至是一批命令?
答案1
我不知道这是否有帮助,但不久前我写了一篇博客文章,几乎介绍了同样的事情: http://winnersdontlose.com/?p=95
AWS 还推荐了一种将用户空间变量传递到实例的方法(我认为他们称之为 init 命令……类似于向内核提供启动时参数)。不过,实现您所谈论内容的最佳方法是设置一个 AMI,其中您的 memcache 启动脚本 (/etc/init.d/memcached) 具有您想要内置的参数。之后,您需要确保运行级别 4 的配置包含对 memcached 的启动信号 (/etc/init.d/rc4.d/Sxxmemcached)。
答案2
如果你创建您自己的自定义 AMI从正在运行的实例中,您可以将其存储到 S3 或 EBS 卷(如您引用的工具一样)。无论哪种方式,自定义 AMI 都将包含您安装的所有额外软件包,并且使用该 AMI 启动的新实例将预先安装所有软件包。
只需在 /etc/init.d 中创建常规启动脚本,即可在实例启动时自动运行命令 - EC2 实例始终从运行级别 4 启动,因此只需确保您的脚本设置为在该级别运行,就可以了。