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

数分で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ポートアクセスなど、幅広い機能をサポートしています。

Stackheroでプロジェクトをデプロイするために必要なのは、お使いのPCにGitがインストールされていることだけです。

複雑なローカル環境のセットアップを避けたい、または時間を節約したい場合は、StackheroのCode-Heroもご検討ください。

Code-Heroは、ブラウザから直接アクセスできる即利用可能な開発プラットフォームです。PC、タブレット、スマートフォンのいずれからでも利用でき、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公開鍵をプロフィールに追加しておくと、新規サービス作成時に自動で反映されます。

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

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

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

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を作成してください:

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サーバーを起動し、アプリケーションを提供します。

準備が整いました。Stackheroにコードをデプロイするには、以下のコマンドを実行してください:

git push stackhero main

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

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

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

デプロイ後は、Stackheroダッシュボードに表示されているWebサイトURL(例:https://<XXXXXX>.stackhero-network.com)からアプリケーションにアクセスできます。

おめでとうございます。アプリケーションが本番環境で稼働開始しました。

デプロイでお困りの場合は

トラブルシューティングセクションをぜひご確認ください。迅速な解決策が見つかります。

Stackheroを使って、シンプルかつ強力なプロセスでRubyコードを本番環境にデプロイする方法をご紹介しました。

さらに詳しく知りたい方は、高度なデプロイ活用法ドキュメントをご覧ください。異なるgitブランチや特定のタグ・コミットのデプロイ、ステージングや本番など複数環境の管理、環境変数の活用方法など、より実践的なノウハウを掲載しています。

また、デプロイ中に問題が発生した場合は、トラブルシューティングドキュメントが効率的な解決に役立ちますので、ぜひご活用ください。