我正在 Amazon EC2 上建立我的第一个网站,我正在决定使用哪个发行版。我过去使用过 Redhat 和 CentOS,但我对任何系统都没有偏见,我只想使用最好的系统(我过去也曾使用过部分托管的服务器,所以直到最近我才做了太多的服务器管理)。该网站只是一个用 PHP 和 MongoDB 编写的 Web 应用程序。
我喜欢为 Amazon Linux 开发的轻量级操作系统,但我担心与 Ubuntu 或其他专注于服务器操作系统的团队相比,它的兼容性/更新可能会受到影响。有什么建议吗?
答案1
我当时的情况也差不多,完全托管的专用服务器、LAMP、CentOS。然后我们决定迁移到 EC2。另外,我几乎没有系统或 Linux 管理经验。我对 Ubuntu 几乎没有任何经验,所以我真的说不出哪个是所谓的更好的操作系统。
我尝试了 Rightscale、Alestic、Scalr 和 Amazon 的一系列预构建 AMI,这些 AMI 的操作系统安装最少。我最终在 Amazon Linux 上构建了自己的所有 AMI,首先使用的是 2010.11.01 版,现在我已将所有自定义 AMI 迁移到 Amazon Linux 2011.03.01 版。
选择 Amazon Linux AMI 还是其他 AMI 提供商并不容易。在做出最终决定之前,我尝试并测试了近一个月的不同设置。最后,由于我想使用 CentOS,所以基本上可以归结为一件事。我想,除了设计、构建和维护 EC2 的人之外,还有谁更了解操作系统中需要包含哪些与硬件相关的依赖项。我对 Rightscale、Scalr 或 Alestic 没有任何意见。
六个月后,尽管我遇到了一些小麻烦,但亚马逊的 Linux 一直很稳定。不过,我还是决定从源代码编译我们使用的一些软件(例如 php 5.3、MySQL 5.5 等),因为我遇到了亚马逊在其软件包存储库中维护的预构建软件包的问题。
答案2
Amazon Linux 是一个滚动发行版,类似于 Fedora 或 Debian Testing(某种程度上)。在我看来,它根本不适合任何生产产品。我很惊讶更多人没有意识到这一点。这意味着,如果您在 450 天前启动了 Amazon Linux 实例,并在今天进行更新,您将从完全不同的版本中提取更新。一旦发布新版本,您就没有缓冲时间,您会立即开始从新版本中提取更新。您可以想象,这可能会带来一系列依赖关系,并且有破坏事物的趋势。因此,它本质上是难以管理的。您无法将这样的事情纳入更新策略,否则会变得一团糟。不要将 Amazon Linux 用于任何严重的事情。
Ubuntu LTS 是个不错的选择,Debian Stable 或 CentOS 也是。所有这些都为您提供多年对同一版本的更新。
Amazon Linux 还没有错误跟踪系统,用户必须在 AWS 开发人员论坛上发布问题才能提交针对某个软件包的错误!也没有办法搜索错误。这对几乎所有人来说都应该是一个令人震惊的问题。
没有必要,Amazon Linux 使得检索源包变得非常困难。
答案3
自从这个问题被提出以来,亚马逊彻底改版了亚马逊 Linux AMI 2011.09,其中包含 CloudFormation 以及 Amazon 工具的所有引导程序。
yum
此外,如果您追求快速和轻便,它在存储库中包含 Nginx 和 PHP-FPM。
了解最新动态发布这里:http://aws.amazon.com/amazon-linux-ami/latest-release-notes/
另请关注安全更新: http://aws.amazon.com/amazon-linux-ami/security-bulletins/
您通常不必担心太多,因为基础 AMI 是一个基本服务器,仅包含引导您实际需要的服务所需的工具。
答案4
尽管 Ubuntu 在这些基准,测试本身对 Ubuntu 的获胜有帮助,而且无论如何差异似乎并不大。
我最近选择 Amazon Linux 主要是因为它的自动更新,也因为 Steven 和 Ethan 在Quora 版本的这个问题。