Ruby 部署到云服务

咖啡半糖
咖啡半糖
发布时间:2026-08-25| 200人浏览过
原创

前言

把 Ruby 应用部署到云端,真正容易卡住的往往不是代码本身,而是平台怎么选、部署动作先后如何排、上线后谁来负责环境和运维。下面按 AWS、Heroku 与 GCP 三条常见路线梳理关键步骤与适用场景,帮助你在控制权、上线速度和维护成本之间做出更稳妥的判断。

把 Ruby 应用真正跑到线上,难点通常不在“能不能启动”,而在于该选哪类平台、部署步骤先后是什么,以及上线后怎么继续管理。下面按 AWS、Heroku 和 Google Cloud Platform 三条常见路线展开,保留关键命令与配置节点,帮助你根据项目体量、控制需求和上手成本做出判断。

先决定平台:看控制权、上手成本和覆盖范围

在开始部署前,先明确你的目标:是要更细的环境控制,还是希望尽快上线;是自己管理服务器,还是尽量交给平台托管。对 Ruby 应用来说,下面三类平台最常见:

对比 AWS、Heroku 与 GCP 三种 Ruby 部署路线的适用场景、控制方式与运维投入
Ruby 上云平台怎么选用一张对比图先看清三种云平台的差异,方便在正式部署前做路线选择。
  • AWS (Amazon Web Services):服务种类多,可定制空间大,适合希望掌握服务器、网络和运行环境的项目。
  • Heroku:部署流程相对简单,适合小型项目、原型验证,或者希望快速完成第一次上线的团队。
  • Google Cloud Platform (GCP):计算与托管服务完整,适合希望借助托管能力并兼顾全球访问能力的场景。

如果你需要自己决定系统环境、安装方式和运行细节,AWS 会更合适;如果重点是减少运维动作,Heroku 和 GCP 的托管式路径会更轻便。

使用 AWS 部署 Ruby 应用

先创建可用的 EC2 实例

在 AWS 上部署,通常从 EC2 开始。核心思路是先准备一台能联网、能安装 Ruby、并放行 Web 流量的 Linux 主机。

AWS EC2 部署 Ruby on Rails 的主要步骤,包括实例、安全组、Ruby 安装和应用启动
AWS EC2 部署流程拆解AWS 路线更灵活,但步骤也更多,适合用流程图梳理从实例到应用启动的关键节点。
  1. 登录 AWS 管理控制台。
  2. 进入 EC2 控制台并点击“启动实例”。
  3. 选择 Amazon Linux 作为操作系统。原文采用这个方案,原因是它免费且与 Ruby 及常见工具兼容性较好。
  4. 按应用规模配置实例大小和网络设置。
  5. 设置安全组规则,允许 HTTP/HTTPS 流量。
  6. 启动实例并连接到实例。

在 EC2 上安装 Ruby 运行环境

连接到实例后,先更新系统,再安装编译 Ruby 所需依赖,最后手动下载并安装 Ruby 3.0.0。这个过程更偏传统服务器部署,适合需要明确掌控版本与构建过程的场景。

Heroku 与 GCP 托管部署的共通动作对比,包括 CLI、发布命令和环境变量管理
Heroku 与 GCP 托管部署对照Heroku 和 GCP 都偏托管式部署。
sudo yum update -y
sudo yum install -y gcc glibc-devel make openssl-devel libyaml-devel zlib-devel readline-devel sqlite3-devel
cd /usr/src
sudo wget http://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.0.tar.gz
sudo tar xvf ruby-3.0.0.tar.gz
cd ruby-3.0.0
sudo ./configure
sudo make
sudo make install

这里的关键点有两个:一是依赖包必须先装齐,否则 Ruby 编译阶段容易出错;二是文中使用的是源码安装方式,因此后续升级、维护和环境一致性需要你自己负责。

把 Rails 应用部署到实例上

Ruby 环境准备好后,就进入应用层部署:拉代码、装依赖、配数据库、跑迁移,再把服务跑起来。

  1. 克隆 Git 仓库到 EC2 实例:
git clone <你的 Git 仓库地址>
  1. 安装 Bundler 和项目依赖:
gem install bundler
bundle install --path vendor/bundle
  1. 设置数据库配置:
cp config/database.yml.example config/database.yml
# 编辑 config/database.yml 文件以匹配你的数据库配置
  1. 运行数据库初始化与迁移:
rails db:create db:migrate
  1. 启动 Rails 服务:
rails server -b 0.0.0.0

其中,rails server -b 0.0.0.0 的作用是让服务监听外部可访问地址,而不只绑定本机。对首次部署来说,这是一条经常被忽略但很关键的命令。

使用 Heroku 部署 Ruby 应用

先完成账号和命令行环境准备

Heroku 的优势在于流程短,适合把注意力放在代码本身,而不是服务器维护。开始前,你只需要完成账号注册并准备好 CLI。

  1. 访问 Heroku 官网注册账号。
  2. 安装 Heroku CLI 并登录:
heroku login

通过 Git 直接发布应用

Heroku 的常见部署方式是把应用作为 Git 仓库推送到平台。对已有 Ruby 或 Rails 项目来说,这条路径通常比自建服务器更直接。

  1. 如果项目还没有 Git 仓库,先初始化:
git init
  1. 创建 Heroku 应用并添加远程仓库:
heroku create
  1. 推送代码到 Heroku:
git push heroku master
  1. 如有需要,设置环境变量:
heroku config:set SECRET_KEY_BASE=<你的密钥>

对 Rails 项目来说,像 SECRET_KEY_BASE 这类配置不建议直接写进仓库,交给平台环境变量管理会更稳妥。

上线后的基本管理命令

Heroku 部署完成后,常用的不是再进服务器,而是直接通过 CLI 做访问、排障和资源调整。

heroku open
heroku logs --tail
heroku ps:scale web=1

heroku open 用于快速打开应用,heroku logs --tail 适合实时看运行日志,而 heroku ps:scale web=1 则体现了平台托管的便利:你可以直接调整 Web 进程规模,而不必手动改服务器进程。

使用 Google Cloud Platform 部署 Ruby 应用

先准备 GCP 项目和结算

在 GCP 上部署前,需要先有可用账户,并完成项目与结算设置。这个前置步骤虽然简单,但属于 App Engine 发布前不可跳过的基础条件。

  1. 访问 Google Cloud Platform 官网注册账户。
  2. 设置项目并启用结算功能。

用 App Engine 发布 Ruby 应用

如果你不想长期维护底层服务器,App Engine 是更偏托管化的一条路线。文中的流程以 Google Cloud SDK 为入口,完成初始化、创建应用和部署。

  1. 安装 Google Cloud SDK 并初始化:
curl https://sdk.cloud.google.com | bash
exec -l $SHELL
gcloud init
  1. 创建新的 App Engine 应用:
gcloud app create --project=<你的项目 ID>
  1. 部署应用:
gcloud app deploy
  1. 设置环境变量:
gcloud app variables set SECRET_KEY_BASE=<你的密钥>

和 Heroku 类似,GCP 这一路线也强调把敏感配置放到平台层管理。这样做的好处是应用代码与运行时配置分离,后续切换环境时更容易维护。

三种部署方式怎么选

如果从运维参与度来看,这三条路线的差异很清晰:

  • AWS EC2:你拥有更多控制权,也要承担更多安装、维护和排障工作。
  • Heroku:流程最直接,适合想快速完成上线、验证功能或减少服务器管理负担的项目。
  • GCP App Engine:介于灵活性与托管便利之间,更适合希望借助平台能力完成部署的应用。

如果你的重点是“自己掌控环境”,优先看 AWS;如果重点是“尽快发布并持续管理简单”,Heroku 更省力;如果你更看重托管部署和平台化能力,可以考虑 GCP。无论选择哪条路径,核心部署顺序其实都一致:准备运行环境、发布代码、配置数据库与环境变量、完成上线后的验证和管理。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。