Ruby: 本番環境へのデプロイ

Stackheroで数分でRubyコードを本番環境にデプロイ

👋 Stackhero ドキュメントへようこそ!

Stackhero では、すぐに使える Ruby cloud ソリューションをご提供しています。主な特長は以下の通りです:

  • シンプルな git push だけで、数秒でアプリケーションをデプロイできます。
  • 独自ドメイン名をご利用いただけ、HTTPS 証明書の自動設定による高いセキュリティを実現します。
  • 自動バックアップワンクリックアップデート、そしてシンプルで透明性のある予測可能な料金体系で安心してご利用いただけます。
  • プライベートかつ専用インフラによる最適なパフォーマンスと堅牢なセキュリティを確保しています。

時間を節約し、運用をシンプルに:Stackhero の Ruby cloud hosting ソリューションは、わずか5分でお試しいただけます!

StackheroのRubyクラウドホスティングサービスを利用すれば、Rubyプロジェクトをわずか数分で本番環境に公開できます。インフラの管理ではなく、アプリケーション開発に集中できるよう設計された堅牢なプラットフォームをご利用いただけます。

主な特長は以下の通りです:

  • シンプルなgit pushでコードをデプロイ。
  • 独自ドメインの利用が可能で、TLS証明書(HTTPS)は自動管理。
  • 専用かつ分離されたインフラ上でアプリケーションを実行し、高いセキュリティとプライバシーを確保。
  • HTTP/2、TLS 1.3(HTTPS)、WebSockets、GZIPおよびBrotli圧縮、ETagサポート、TCP・UDPポートアクセスなど、豊富な機能を利用可能。

始めるために必要なのは、お使いのPCにGitがインストールされていることだけです。

時間を節約したい場合やローカル環境の構築を避けたい場合は、StackheroのCode-Heroもご検討ください。

Code-Heroは、どのデバイスからでも利用できるブラウザベースの開発環境です。VSCodeをベースにしており、主要なツールが事前にインストール・設定済みなので、セットアップ不要ですぐにコーディングを始められます。

<!-- ![ブラウザ上で直接動作するCode-Heroインスタンスの例](/images/docs/ruby/040_deploy/rubyInCodeHero.png) -->

RubyアプリケーションをStackheroにデプロイする手順はシンプルです。以下がワークフローで、各ステップの詳細は後述します:

  1. StackheroでRubyサービスを作成。
  2. Rubyサービスの設定にSSH公開鍵を追加。
  3. 開発環境でgit pushコマンドを設定。
  4. プロジェクトにMakefileを追加。
  5. コードを本番環境にデプロイ。

デプロイ中に問題が発生した場合は、トラブルシューティングドキュメントを参照すると、迅速に解決策を見つけて作業を進められます。

まだStackhero for Rubyサービスを作成していない場合は、Stackheroダッシュボードから数分で作成できます。

Rubyサービスが稼働したら、次にSSH公開鍵を追加します。公開鍵は以下のコマンドで表示できます:

cat ~/.ssh/id_*.pub

まだSSH鍵をお持ちでない場合

以下のコマンドで生成できます:

ssh-keygen -t ed25519

SSH鍵を追加するには、StackheroダッシュボードでRubyサービスを選択し、「Configure」をクリックし、「SSH public keys」欄に公開鍵を貼り付けてください。

<!-- ![Rubyサービス設定例](/images/docs/ruby/040_deploy/rubyStackheroPublicKey.png) -->

ヒント:今後のために、SSH公開鍵をStackheroのプロフィールに追加しておくと、新規サービス作成時に自動で反映されます。

ダッシュボード右上のプロフィール画像をクリックし、「Your profile」を選択してSSH公開鍵を追加してください。

StackheroへのデプロイはGit CLIのgit pushコマンドを利用するため、追加ツールは不要です。

Stackheroダッシュボードのサービスメインページからgit remoteコマンドをコピーできます。通常、以下のような形式です:

git remote add stackhero ssh://stackhero@<XXXXXX>.stackhero-network.com:222/project.git
<!-- ![Stackheroダッシュボード上のRuby Git remoteコマンド例](/images/docs/ruby/040_deploy/rubyStackheroGitRemote.png) -->

Stackheroにアプリケーションの起動方法を伝えるため、プロジェクトのルートにMakefileを追加します。このファイルで、デプロイ時にStackheroが実行するコマンドを定義します。

Makefileやmakeコマンドに不慣れな方も、以下の手順で動作するMakefileを作成できます。

以下の内容でMakefileを作成してください:

run:
	rake assets:precompile
	rake db:migrate RAILS_ENV=production
	RAILS_ENV=production bundle exec puma -C config/puma.rb

このMakefileのポイント:

  1. runルールは必須です。Stackheroはデプロイ時のエントリーポイントとしてこのルールを探します。ルール名は変更しないでください。
  2. サンプルではrakebundleを使っていますが、ご自身のアプリケーションに合わせてコマンドを調整可能です。
  3. 各コマンド行は必ずタブ文字で始めてください(スペース不可)。*** missing separatorエラーが出た場合はタブを確認してください。

上記例では、デプロイ時に:

  1. JavaScriptやCSSなどのアセットをpublic/assetsディレクトリにプリコンパイル。
  2. データベースマイグレーションを実行。
  3. Pumaサーバーを起動し、アプリケーションを提供します。

準備ができたら、以下のコマンドでデプロイします:

git push stackhero main

初回デプロイ時は、GitからSSH鍵のフィンガープリント確認が求められます。「yes」と入力して進めてください。

しばらく待つと、アプリケーションが公開されます。

<!-- ![git pushコマンドでStackheroにRubyコードをデプロイする例](/images/docs/ruby/040_deploy/rubyDeployGitPush.png) -->

デプロイ後は、Stackheroダッシュボードに表示されるWebサイトURL(例:https://<XXXXXX>.stackhero-network.com)にアクセスしてください。

これでアプリケーションが本番環境で稼働しています。

デプロイ時に問題が発生した場合は、トラブルシューティングセクションでよくある課題と解決策を確認できます。

Stackheroを使ったRubyコードの本番環境デプロイ手順をご紹介しました。シンプルかつ強力なプロセスで、効率的に運用できます。

さらに、異なるGitブランチ・タグ・コミットのデプロイや、ステージング・本番など複数環境の管理など、より高度な内容については高度なデプロイ活用法ドキュメントをご覧ください。環境変数の利用方法や便利な機能も紹介しています。

ご不明点や問題が発生した場合は、トラブルシューティングドキュメントがいつでもサポートします。デプロイワークフローをスムーズかつ効率的に保つためにご活用ください。