【Railway】Rust Axumをデプロイする方法

Rust 製フレームワーク Axum を Railway にデプロイする実践ガイド。テンプレート/CLI/GitHub/Docker の4通りを日本語で丁寧に解説。

Share

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

Rust Axumアプリをデプロイする方法

Axum は Rust 製の非同期 Web フレームワークで、tokiohyper 上に構築されています。安全性とパフォーマンスを両立しつつ、モジュール化された設計で高い生産性を実現します。

本記事では、Axum アプリを Railway にデプロイする 4 つの方法を紹介します。

  1. テンプレートからワンクリックデプロイ
  2. GitHub リポジトリからデプロイ
  3. Railway CLI からデプロイ
  4. Dockerfile を使ったデプロイ

どの方法を選ぶべき?

  • 初めてで最短で試したい: テンプレート
  • 手元から素早く都度デプロイしたい: CLI
  • プッシュで自動デプロイしたい: GitHub 連携
  • 既存の Docker イメージ/複雑な依存がある: Dockerfile

Axum アプリを作成する

既にプロジェクトがある場合はこの章をスキップしてください。
cargo new helloworld --bin
cd helloworld
cargo add axum
cargo add tokio --features full

次に src/main.rs を以下のように書き換えます。

use axum::{ routing::get, Router };
use std::net::SocketAddr;
 
#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(|| async { "Hello World, from Axum!" }));
 
    let port: u16 = std::env::var("PORT").unwrap_or_else(|_| "3000".into()).parse().unwrap();
    let addr = SocketAddr::from(([0, 0, 0, 0], port));
 
    println!("🚀 Axum app listening on {}", addr);
    axum::Server::bind(&addr).serve(app.into_make_service()).await.unwrap();
}
Railway はコンテナの PORT を自動で割り当てます。上記のように環境変数から取得し、0.0.0.0 で待ち受ける実装にしておくと安心です。

ローカルで実行

cargo run

ブラウザで http://localhost:3000 を開き、“Hello World, from Axum!” と表示されれば準備完了です。


Railway へのデプロイ方法

テンプレートからワンクリックデプロイ

Railway テンプレートマーケットプレイスに Axum テンプレートがあります。ワンクリックでインフラ設定からビルドまで自動化されます。

CLI からデプロイ

# CLI が未インストールなら
npm i -g @railway/cli
railway init   # プロジェクト初期化
railway up     # デプロイ
railway domain # 公開 URL 発行

CLI はプロジェクトを圧縮してアップロードし、実行ログをリアルタイムに確認できます。

GitHub リポジトリからデプロイ

Railwayダッシュボード
  1. Railway ダッシュボード → New ProjectDeploy from GitHub repo
  2. リポジトリ選択 → Deploy
  3. デプロイ完了後、Settings → NetworkingGenerate Domain をクリック

Dockerfile を使ったデプロイ

以下は cargo-chef を活用したマルチステージビルド例です。

FROM lukemathwalker/cargo-chef:latest-rust-1 AS chef
WORKDIR /app
 
FROM chef AS planner
COPY . .
RUN cargo chef prepare --recipe-path recipe.json
 
FROM chef AS builder
COPY --from=planner /app/recipe.json recipe.json
RUN cargo chef cook --release --recipe-path recipe.json
COPY . .
RUN cargo build --release
 
FROM debian:bullseye-slim
WORKDIR /app
COPY --from=builder /app/target/release/helloworld ./helloworld
CMD ["./helloworld"]

次のステップ

  • データベースとの連携sqlx を使って Postgres に接続
  • 観測性の向上tracing と OpenTelemetry で分散トレースを導入
  • 環境変数/Secrets の管理 – Railway の Variables に DATABASE_URL などを登録

Rust × Axum × Railway で安全かつ高速なバックエンドを構築しましょう!

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

Read more

サービス更新履歴

ここでは、LiveQのサービス・製品への変更を全て紹介しております。 このページは大きな変更があった場合に更新されます。 いつごろにどのような機能がリリースされたかが分かります。 2026年6月: 高速化・安定化 * 5月よりサーバーおよびアプリケーションの大型リニューアルに取り組み、6月に読み込み速度の向上や、大規模アクセス時にも安定して高速に動作するように変更をおこないました。 2026年4月: 画像スライド * 新たなスライドの種類として画像スライドを追加しました。 * PowerPoint, PDFファイルを一括インポートし、画像スライドとして追加する機能を追加しました * そのほか多数の細かな変更(操作性などのデザイン改善や、不具合)をおこないました 2026年3月: ワードクラウド、コメントのAIモデレーション(監視) * 新たなスライドの種類としてワードクラウドを追加しました * コメントをAIで自動監視する機能をリリースしました * そのほか細かな改善や不具合の修正をおこないました 2026年2月: 有料プランのデータエクスポート

By 阿部 隼也

チームメンバーを招待する方法

チームメンバーを追加するには、招待する必要があります。 その招待方法を紹介します。 招待可能なチームメンバーの数は、ご利用のプランによって異なるため、事前にご確認ください。 チームページの「新しいチームメンバーを招待」にて、招待するメンバーのメールアドレスを入力し、「招待を送信」をクリックします。 招待された側で招待を承認 次に、招待された側の方によって招待を承認する必要があります。 ※この承認にはLiveQのアカウントが必要となりますので、必ず事前にご登録ください。 下記のような招待メールが届きます。 件名:【LiveQ】チームへの招待が届いています 差出人:[email protected] 既にLiveQに登録済みの方はそのまま「招待を承認して参加する」ボタンをクリックします。 まだLiveQに登録していない方は、登録後、同様に承認ボタンをクリックします。 チームを切り替える 招待を承認すると、チームページに下記のように「チーム切り替え」ができるようになります。 招待したユーザーにもメールが届きます 招待が承認されると、招待したユーザーに

By 阿部 隼也