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

数分でRubyコードを本番環境にデプロイする方法

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

Stackheroは、数多くの利点を提供する、すぐに使えるRubyクラウドソリューションを提供しています。

  • シンプルなgit pushでアプリケーションを数秒でデプロイ
  • 独自のドメイン名を使用し、HTTPS証明書の自動設定による強化されたセキュリティを享受。
  • 自動バックアップワンクリック更新、そしてシンプルで透明性があり、予測可能な価格設定で安心を提供。
  • プライベートで専用のVMによる最適なパフォーマンスと強固なセキュリティを実現。

時間を節約し、生活を簡素化:StackheroのRubyクラウドホスティングソリューションを試すのに5分しかかかりません

StackheroのRubyクラウドホスティングサービスを利用すれば、強力なプラットフォームと直感的なユーザーエクスペリエンスを組み合わせ、Rubyプロジェクトをわずか数分で本番環境にデプロイできます。

以下のメリットがあります:

  • シンプルなgit pushだけでコードをデプロイできます。
  • 独自ドメインの利用が可能で、TLS証明書(HTTPS)の自動管理もサポートされています。
  • アプリケーションは専用のプライベートVM上で稼働し、最高レベルのセキュリティとプライバシーを確保します。
  • 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コマンドを利用するため、追加のツールは不要です。

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

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ブランチや特定のタグ・コミットのデプロイ、ステージングや本番など複数環境の管理、環境変数の活用方法など、さまざまなトピックをカバーしています。

また、デプロイ中に何か問題が発生した場合は、トラブルシューティングドキュメントが効率的な解決に役立ち、スムーズなワークフローをサポートします。