gpt4 book ai didi

ruby-on-rails - 在 AWS 上部署我的第一个应用程序

转载 作者:行者123 更新时间:2023-12-01 02:44:24 24 4
gpt4 key购买 nike

我是一名 Web 开发人员,现在对 sysadmin 感兴趣。我之前在 Linode.com(Ubuntu 10.04 LTS、nginx、Ruby on Rails、PostgreSQL)上设置了服务器,但存在一些问题。一切都在一台机器上,所以每当 Linode 出现问题或我的流量很大时,我的网站就会关闭。

现在我有兴趣建立一个个人博客,并在 Amazon AWS 上部署它。这是我学习如何使用多台服务器进行负载平衡、自动缩放、故障转移等的好机会。唯一的问题是我不太确定从哪里开始。

我已经阅读了 Amazon 的大量文档和其他地方的博客文章,但作为系统管理员新手,我有几个问题:

  • 我知道 EC2 实例太不稳定,无法存储数据。那么我应该把它存放在哪里呢?亚马逊弹性块商店?整个文件系统和数据库都会去那里吗?
  • 我是否需要认真了解负载平衡和扩展?或者 Amazon Elastic Load Balancer 处理会让我的事情变得简单吗?他们的负载均衡器如何与 nginx 交互?
  • 与通过命令行相比,您建议通过 AWS 界面执行多少操作?
  • 任何不明显的障碍可能会捕获我?
  • 是否有在 EC2 上部署博客或简单 Rails 应用程序的教程?我不需要这里的生产质量设置;我的主要目标是学习。

  • 感谢您提供的任何答案!

    最佳答案

    我已经建立了我公平的 AWS 部署份额;这是基础知识:

    数据存储

    如果您经常访问数据,那么您可能知道,最好使用数据库。这是 AWS 托管中比较棘手的部分之一。您的选择大致按复杂性/成本的增加顺序排列:

  • SimpleDB - 亚马逊自己的数据库产品。他们为您提供了一个 HTTP api,您可以使用它来读取和写入数据。有一些用于它的 rails 库,但总的来说,它不是一个优雅的 rails 插件。
  • Amazon RDS - 亚马逊将为您预先配置一个类似 mysql 的数据库服务器。这需要您启动数据库服务器实例,因此定价服务器不适合小型站点。从好的方面来说,它允许您更轻松地扩展数据库服务器。
  • 自己动手 - 围绕随时消失的 Amazon EC2 实例进行规划;因此,您通过 EC2 实例获得的本地存储最好被视为一个大的临时目录。 Elastic Block Store是亚马逊对此的解决方案;它实际上是您的实例挂载的磁盘镜像。 EBS 镜像独立于 EC2 实例而存在,因此如果您的服务器出现故障,您可以将 EBS 镜像挂载到新的 EC2 实例上。您基本上可以通过启动一堆实例并将它们配置为相互复制来滚动您自己的数据库集群。这行得通,但并不优雅,只有在您无法使用不太奇特的方法解决问题时才应该尝试。

  • 亚马逊几乎列举了这些选项,还有一些不适用于您的选项 http://aws.amazon.com/running_databases/

    不经常更改的数据应存储在 S3 中;有很多 ruby 可以轻松访问它。如果您的网站在服务器端完全是静态的,您甚至可以 run your entire site off S3

    负载均衡

    Amazon “Elastic Load Balancing” 在满足典型的 Web 负载平衡要求方面非常有效。这通常是一个明智的选择,除非您有特殊要求。但是,它不会为您扩展集群。对于自动启动和关闭实例,您应该查看亚马逊自己的 auto-scaling solution

    注意事项

    请务必记下您所在的“可用区”(也称为数据中心)。在某些情况下,您无法跨可用区共享 AWS 资源。

    教程

    有很多教程,但在我的简短搜索中,我发现没有一个是非常好的或最新的。但是,请查看 https://github.com/wr0ngway/rubber ,这是一个用于将应用程序部署到 EC2 的 ruby​​ 工具。它将带您完成大部分工作。

    关于ruby-on-rails - 在 AWS 上部署我的第一个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290663/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com