我正在开始为我的公司过渡到 Amazon Web Services (AWS),并且正在寻找一些建议、教程和/或任何其他有助于新设置的东西。
我们托管了许多(约 600 个)房地产网站。我们有许多拥有网站的代理商,但我们也有一些个人建筑网站,以及其他一些杂项网站。我们之前通过 Codero 在专用服务器上托管,但我们遇到了很多问题,因此我们正在转向我们希望更简单、更便宜的东西(进入:AWS)。
我们的新 RETS 供稿将通过 RetsCloud(我们已经设置好)进行,并且我们将其连接到 AWS DynamoDB 的一个实例。
我开始陷入困境的地方是“应该”设置其余所有东西的地方。看来我想要做的是设置 EC2 来运行 apache(或 nginx)和 PHP,然后设置 CloudFront 来提供分发,S3 来提供图片(通过 RETS 有很多照片——这已经设置好了)。呼。
我想,在我看来,这个设置没必要那么复杂,那么有没有更简单的方法可以做到这一点?或者,如果我选择使用 AWS,我只能以这种方式进行设置。
我们在此期间使用了一些共享的网络托管(name.com 和 bluehost.com),但似乎只有少数几个网站被切断(I/O 限制)(目前一个帐户上有大约 10 个网站,并且它们通常全天“运行缓慢”(根据我老板的说法)。
任何建议都非常感谢。另外,如果我以“错误”的方式处理这个问题,或者有更好的方法(或者你只是想打我头),请告诉我!
答案1
问题 1
那么有没有更简单的方法可以做到这一点?使用 AWS 构建网站的方法有很多。托管静态网站的最简单方法是使用 S3。
如果您需要 Web 服务器以便运行服务器端代码(例如,您需要运行 PHP),则需要使用 EC2。AWS 目前没有“PHP 即服务”。最简单的设置是在您选择的操作系统中启动一个 EC2 实例,然后从那里托管网站。这不是最优解决方案,也不应该成为您生产设置的最终目标。
第二季度
EC2 对于此目的来说是否过度了?(即,是否有“更好”且更省时的方法来做到这一点?)。
如果您想运行 PHP,EC2 并不算过分。如果有“PHP 即服务”,那么耗时会更少,但目前 AWS 尚不提供该服务。
第三季度
后续问题是:如果 EC2 是一种不错的方法,那么通过 AWS 进行操作是否是“正确”的方法?(即,除了 Amazon 指南之外,我还能从哪里开始?)–
如果您有兴趣构建一个可以扩展并自动处理大量流量的网站,那么可以遵循一些最佳实践。下面是一个示例,说明我如何设置堆栈来处理此类要求。
- EC2 自动配置为 Puppet 之类的程序以充当 Web 服务器(nginx+php)
- EC2 位于自动缩放组中(启动时 Puppet 配置机器,并获取最新代码)
- ELB 处理 EC2 的负载平衡
- 满足关系数据库需求的 RDS
- 上传内容发送到 S3 bucket,以便所有 EC2 都可以访问它们
- CloudFront 用于所有静态文件(js、css、imgs)
延长
您可以更进一步,使用 Varnish、Memcached/elasticache 设置、CloudFormation 也可以。
降低成本
您可以通过使用预留实例和/或查看部分基础设施的现货实例(即拥有一组核心按需实例并用现货实例组进行补充)来降低成本。
更多信息
以下是一些起点:
- http://aws.amazon.com/ec2/
- http://aws.amazon.com/documentation/elasticloadbalancing/
- http://aws.amazon.com/autoscaling/
- http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/gs-ec2classic.html
- http://aws.amazon.com/architecture/
- http://aws.amazon.com/白皮书/
- http://blog.spaceprogram.com/2007/06/third-app-migrated-to-amazon-ec2.html
- http://aws.amazon.com/cloudformation/
难道没有捷径吗?
有一些服务可以帮你完成一些繁重的工作。这类工作仍然使用我之前提到的很多东西,AWS 只是试图通过他们的控制台帮你自动完成这些工作。
elasticbeanstalk
http://aws.amazon.com/elasticbeanstalk/
AWS Elastic Beanstalk 是一种更简单的方法,可让您在 AWS 云中快速部署和管理应用程序。您只需上传应用程序,Elastic Beanstalk 就会自动处理容量配置、负载平衡、自动扩展和应用程序运行状况监控的部署细节。
OpsWorks
http://aws.amazon.com/opsworks/
AWS OpsWorks 是一种 DevOps 解决方案,用于管理 AWS 云上任何规模或复杂程度的应用程序。AWS OpsWorks 具有管理完整应用程序生命周期的集成体验,包括资源配置、配置管理、应用程序部署、软件更新、监控和访问控制。
答案2
您的设置对我来说看起来不错,并不太复杂。EC2 并不过分,这是在 AWS 中拥有 Web 服务器的方式。为了最大限度地降低成本,您需要研究和试验预留、按需、竞价实例。