【问题标题】:Deploying on EC2在 EC2 上部署
【发布时间】:2010-11-06 05:25:47
【问题描述】:

此问题适用于实际使用过 Amazon EC2 的任何人。我正在研究在那里部署服务器需要什么。

看起来我可以在 VirtualBox 中启动,设置我的服务器,然后使用提供的 ec2-tools 导出图像。

棘手的是,如果我真的想对正在运行的服务器进行配置更改,它们不会持久化。

我有一些 PHP 代码需要能够部署(和重新部署)到系统,所以我认为 EBS 将是一个不错的选择。

我有大量需要存储的数据,但碰巧延迟不是问题,所以我想像 s3fs 这样的东西可能会起作用。

所以我的问题是……你会怎么做?你的配置是什么样的?有哪些您可能没有预见到的特殊挑战?

【问题讨论】:

    标签: amazon-s3 amazon-ec2 amazon-web-services


    【解决方案1】:

    我们已经在 AWS 环境中部署了一个大型商业应用程序。

    一旦服务器运行,您可以通过三种基本方法来控制您的更改,我们会在不同的情况下使用所有这些方法:

    1. 保留源代码管理中的更改。拥有一个脚本,它是您原始图像的一部分,可以提取最新和最好的。您可以下载 PHP 代码、Apache 设置,无论您需要什么。如果您需要从 AMI(Amazon 系统映像)重新启动您的实例,只需运行您的脚本以获取最新的代码和配置,就可以开始了。
    2. 使用 EBS(弹性块存储)。 EBS 就像一个大的外部硬盘驱动器,您可以将其附加到您的实例。即使您的实例消失了,EBS 也会继续存在。如果您以后需要两个(或更多)相同的实例,您可以让每个实例访问您保存在 EBS 中的内容。见https://stackoverflow.com/a/3630707/141172
    3. 每次更改后刻录一个新的 AMI。有一个工具可以从正在运行的实例创建新的 AMI。如果说 EBS 就像拥有一个外部硬盘驱动器,那么创建一个新的 AMI 就像拥有一个 DVD-R。您可以将机器的当前状态保存到其中。下次您必须启动新实例时,请将其基于该新 AMI。很好。

    【讨论】:

      【解决方案2】:

      关于邮件服务器黑名单的顾虑,您也可以使用亚马逊的简单邮件服务(SES),无需在 EC2 实例上运行邮件服务器。

      【讨论】:

        【解决方案3】:

        我也遇到了这个问题,但在他们的论坛上发布了一条注释 - https://forums.aws.amazon.com/thread.jspa?threadID=80158&tstart=0

        【讨论】:

          【解决方案4】:

          我建议将您的 PHP 代码存储在 SVN 等存储库中,并编写一个脚本来检查存储库中的最新代码并在您想要升级时重新部署它。您还可以在实例启动时运行此脚本,以便在启动新实例时获得最新代码;无需每次都创建新的 AMI。

          我没有看到 EC2 带来的主要挑战是实例启动时间——尤其是在 Windows 中。 Linux 实例需要 5 到 10 分钟才能启动,但我看到 Windows 实例最多需要 40 分钟;如果您想在负载增加时进行动态负载平衡并启动新实例,这可能是个问题。

          【讨论】:

          【解决方案5】:

          根据 timbo 的担忧,我能够获取一个到目前为止还没有合法地出现在任何垃圾邮件列表中的 IP。你会遇到一些麻烦,因为许多黑名单在技术上都是白名单,并且每个 IP 都在他们的列表中,直到另行通知邮件服务器正在该 IP 上运行。它真的很容易删除,他们中的大多数都有自动删除请求表,而且每个没有非常合作的人都非常配合地将我从他们的列表中删除。请保持专业,询问他们是否可以给出阻止的时间和理由,以及您应该采取哪些步骤来删除您的 IP。我通过电子邮件发送的所有服务从未要求我跳过任何环节,在两三个工作日内,他们都通知我我的 IP 已被删除。

          不过,如果您打算运行邮件服务器,我建议您现在保留 IP。它们每小时 1 美分,它们不受实例的约束,因此每月大约 7 美元。我继续预订了一个额外的实例,因为我计划很快启动另一个实例。

          【讨论】:

            【解决方案6】:

            我已经为 EC2 Win2k3 实例部署了一些简单的东西。这是我的建议:

            查找教程。注册服务。只需花一个下午设置您的第一台服务器。这非常容易,尽管会有一些障碍需要克服。这不是太难。

            当我在玩 EC2 时,我想我花了大约 2.00 美元来设置一个服务器并玩了一段时间。

            您的一些数据将是持久的,但您也可以将 S3 连接到 EC2。

            去吧!

            【讨论】:

              【解决方案7】:

              我建议您在更熟悉 EC2 基础架构后采用您的虚拟盒方法。我建议你去EC2,开一个账户,按照亚马逊的EC2入门指南。本指南将为您提供有关所有内容(EBS、IP、CONNECTIONS 和其他)的足够概述,以帮助您入门。我们目前正在使用 EC2 进行生产,我们开始的方式就像我在这里解释的那样。

              希望你早日成为云专家。

              【讨论】:

                【解决方案8】:

                我建议最好的办法是简单地“尝试一下”。运行小型实例的费用并不高,数据传输率也很低——我已经移动了好几 GB,而我的第一个月的数据费用仍然不到一美元(!)。您最终可能会为系统时间而不是我怀疑的数据付费。

                我还没有部署但已经运行了一个实例,将它从 Ubuntu 8.04 迁移到 8.10,尝试了不同的端口安全设置,查看了未知的人尝试过什么样的访问尝试(主要是寻找 phpadmin),运行一些测试反对它并通常尝试配置和重新启动我正在部署的组件。这是我最终部署的一个很好的前奏。我不会从大型数据库开始,所以最初会坚持使用标准 EC2 实例空间。

                我听到的唯一负面消息是,一些垃圾邮件发送者已将某些 IP 范围设为垃圾邮件拦截 - 但尚未证实这一点。

                【讨论】:

                • 同意。价格足够低,可以尝试一下。关于垃圾邮件拦截,这是真的。我尝试在 EC2 中运行邮件服务器,但大多数 IP 范围都被列入黑名单。我不得不转发到另一个网络上的非黑名单智能主机,这违背了我的目的。
                猜你喜欢
                • 2011-06-15
                • 2011-06-10
                • 2017-01-26
                • 2022-10-31
                • 2018-11-13
                • 1970-01-01
                • 2013-03-06
                • 2012-11-24
                • 2013-12-13
                相关资源
                最近更新 更多