Ruby on Rails の使い方 1-Click Install on
序章
ルビー。 Ruby と Rails の両方を使用すると、スケーラブルなアプリケーションをすばやく構築してデプロイできます。
このチュートリアルでは、このガイドを終了した後、DigitalOcean Ruby チュートリアルを使用して、Ruby on Rails がプリインストールされた DigitalOcean ドロップレットをスピンアップする方法について説明します。
ワンクリック導入
Ruby on Rails 1-Click には、Ubuntu 20.04 ドロップレットに次のパッケージがプリインストールされています。
Package | Version |
---|---|
Ruby | 27.2 |
Rails | 6.0.3.4 |
Puma | 5.0.2 |
Postgres | 12.4 |
Nginx | 1.17.10 |
Node.js | 12.19.0 |
Certbot | 0.40.0 |
パッケージのインストールに加えて、この 1-Click は以下も処理します。
- SSH (ポート
22
)、HTTP (ポート80
)、および HTTPS (ポート442
) へのアクセスのみを許可する UFW ファイアウォールを有効にする. - アプリケーションをデプロイするための
rails
システム ユーザーと、PostgreSQL に接続するためのrails
データベース ユーザーを作成します。 - インストールされたソフトウェアを使用し、すべての Gem とプロセスを
rails
ユーザーにローカルにインストールするように Ruby を構成します。 - ローカルの UNIX ソケットにリクエストを転送するように Nginx を構成し、アプリケーション サーバーのリバース プロキシとして機能します。
これを書いている時点で、これらのパッケージは Ruby on Rails のバージョン 7.0.4.2 とともに Ubuntu 20.04 サーバーで実行されています。
前提条件
Ruby on Rails 1-Click をブラウザーで起動して実行するには、ドメイン名が必要です。 DNS クイックスタート ガイドを使用して、DigitalOcean DNS を使用してセットアップする方法を学習できます。
ステップ1-Ruby on Railsドロップレットの作成
Ruby on Rails ワンクリック ドロップレットを作成するには、まず、Ruby on Rails アプリケーションのリストでそれを見つけます。これにより、DigitalOcean コントロール パネルが表示されます。
ドロップレットの作成を開始するには、[Create Ruby on Rails Droplet] ボタンをクリックします。
DigitalOcean アカウントにまだログインしていない場合は、続行するにはログインする必要があります。アカウントを持っていない場合は、サインアップするよう求められます。
次に、ドロップレットの作成ページに移動します。ここでは、Ruby on Rails ドロップレットを作成する前にサーバー設定をカスタマイズできます。最初のドロップレットを作成する方法に関するドキュメントでは、必要なすべての選択について詳しく説明していますが、次のセクションでは、考慮すべき重要な設定について説明します。
画像の選択
イメージは、Ruby on Rails が選択された [Marketplace] タブに既に設定されています。設定されていない場合は、Marketplace タブに切り替えて、キーワード検索ボックスで Ruby on Rails を検索します。適切に設定すると、コントロール パネルは次のようになります。
Ubuntu 20.04 上の Ruby on Rails 7.0.4.2 が選択されています。まだ選択されていない場合は、検索ボックスを使用して Ruby on Rails を検索します。
Ruby on Rails イメージが適切に選択されたら、デフォルトを受け入れるか、ユースケースに応じて設定を調整できます。通常、次の変更をお勧めします。
データセンター リージョンの選択
潜在的な待ち時間を回避するために、ユーザー ベースに最も近いデータセンター リージョンを選択することをお勧めします。一部の地域では、複数のデータセンターがあります。これらの同じ地域のデータセンター (例: SFO3 と SFO2) に違いはありません。
プランの選択
あなたに合ったプランをお選びください。必要に応じてドロップレットのサイズを変更できることに注意してください。 Ruby on Rails でドロップレットを実行するには、少なくとも 1GB の RAM を搭載することをお勧めします。
認証方法の選択
認証方法を選択するときは、ドロップレットのパスワードではなく、SSH キー オプションをお勧めします。通常、SSH キーを使用した認証の方が安全です。
追加オプションの選択
改善されたメトリクスの監視とアラートをドロップレットに追加すると、ドロップレットのリソースの使用状況を経時的に追跡するのに役立ちます。自動バックアップを有効にすることも検討してください。必要に応じて、後で戻って、既に作成したドロップレットのバックアップ機能を有効にすることができます.
ホスト名の選択
\Ruby on Rails Droplet 1 など、覚えやすい識別名をドロップレットに付けるか、使用するアプリケーションにちなんで名前を付けます。
すべての選択が完了したら、コントロール パネル画面の下部にある [ドロップレットの作成] ボタンを押します。ドロップレットが作成されると、その IP アドレスが表示されます。
この IP アドレスは、ドロップレットに接続するためだけでなく、今後行う必要のある構成のためにも重要です。 IP アドレスにカーソルを合わせると、クリップボードにコピーできます。
ワンクリック マーケットプレイスで作成されたドロップレットには、[開始] リンクをクリックしてアクセスできる追加のリソースも付属しています。
これにより、選択した 1-Click に固有の追加情報を取得できる新しいパネルが切り替わります。これには、概要、ドロップレットの使用を開始するための追加の手順、コミュニティ サイトからの関連チュートリアルへのリンクが含まれます。サポートを得たり、Ruby on Rails のリソースを見つけたりするための便利なリンクもあります。 Ruby on Rails の公式ドキュメントを参照して、サポートを受けることもできます。
次に、以前に設定した SSH 認証方法を使用して、ターミナル経由で Ruby on Rails ドロップレットにアクセスします。
ステップ2-SSH経由でドロップレットにアクセスして構成を有効にする
Ruby on Rails ドロップレットをスピンアップしたら、SSH を使用してドロップレットに接続する方法を実行する必要があります。
- ssh root@your_server_ip
ログインすると、次の今日のメッセージ (MOTD) が表示され、このアプリケーションにインストールされているソフトウェアに関する情報と、ワンクリック展開セクションに記載されているように構成されているその他の機能が表示されます。
Thank you for using DigitalOcean's Rails Application.
The "ufw" firewall is enabled. All ports except for 22, 80, and 443 are BLOCKED.
Let's Encrypt has been pre-installed for you. If you have a domain name, and
you will be using it with this 1-Click app, please see: https://do.co/2GOFe5J
You can use the following SFTP credentials to upload your files (using FileZilla/WinSCP/Rsync):
* Host: 24.199.120.116
* User: rails
* Pass: cd083867dfdb40970449c422797378c1
If you provided an ssh-key when creating this Droplet, the key should be used for SFTP as well
You can use the following Postgres database credentials:
* User: rails
* Pass: a0d8c213e0d797342b1450e4e880180f
Ruby has been configured to use vendored bundles. Please use the 'rails' user to
interact with the default project via "su - rails"
Passwords have been saved in /root/.digitalocean.passwords
Nginx is configured to forward requests for rails to a local unix socket
Public IP: http://24.199.120.116
Access Logs: /var/log/nginx/access.log
Error Logs: /var/log/nginx/error.log
Rails using the Puma server is managed via 'systemd'.
Proccess management: systemctl {start|stop|restart} rails.service
systemd Unit file: /etc/systemd/system/rails.service
Ruby information:
All Gems and processes have been installed locally to the 'rails' user. Please
'su - rails' to use this environment.
You can learn more about using this image here: https://do.co/2GTOVjB
-------------------------------------------------------------------------------------
To delete this message of the day: rm -rf /etc/update-motd.d/99-one-click
このメッセージから他に注意すべき点がいくつかあります。
- システムとデータベースのユーザー パスワードの資格情報が利用可能になります。この情報は、次のディレクトリ
/root/.digitalocean.passwords
にも保存されます。 - FileZilla、WinSCP、rsync などのソフトウェアを使用してファイルをアップロードする場合の SFTP 認証情報
- Rails が
systemd
によって管理される Puma を使用して、Puma の開始、停止、再起動、ステータスの確認を行う方法についての情報
ステップ 3 — ブラウザで Ruby on Rails を確認する
IP アドレスまたはドメイン情報に移動して、Ruby on Rails が動作しているかどうかを確認できます。
http://your_IP_or_domain
rails server --binding=your_IP_or_domain
などの追加のバインド手順を実行する必要はありません。これは 1-Click インストール プロセスで処理されるためです。
成功すると、ブラウザに次のページが表示されます。
エラーが表示された場合は、前提条件に従ってドメインが正しく設定されていることを確認してください。さらに、サービスがアクティブかどうかを確認することもできます。
ステップ 4 — Ruby on Rails サービスがアクティブであることを確認する
Puma を介して Ruby on Rails サービスをさまざまな方法で管理できます。たとえば、次のコマンドでサービスのステータスを確認できます。
- systemctl status rails.service
● rails.service - ExampleApp
Loaded: loaded (/etc/systemd/system/rails.service; enabled; vendor preset:>
Active: active (running) since Tue 2023-01-31 18:29:55 UTC; 37min ago
Main PID: 2172 (ruby)
Tasks: 13 (limit: 1116)
Memory: 143.6M
CPU: 3.518s
CGroup: /system.slice/rails.service
└─2172 "puma 5.6.5 (tcp://0.0.0.0:3000) [example]" "" "" "" "" ""
この出力は、サービスが現在 アクティブ (実行中)
であることを示しています。 Ruby on Rails が正常に動作していることを確認できたので、次は Ruby を使用して基本的なプログラムを作成します。
サービスを開始するには、次を実行します。
- systemctl start rails.service
サービスを停止するには、次を実行します。
- systemctl stop rails.service
サービスを再起動するには、次を実行します。
- systemctl restart rails.service
結論
Ruby on Rails のワンクリック ドロップレットの準備が整いました。ただし、プロジェクトのニーズに応じて、さまざまな機能を使用する必要がある場合があります。以下は、Ruby on Rails ドロップレット用にプリインストールされたソフトウェアで実行できるすべての可能性を探るためのチュートリアルのリストです。
- Ruby on Rails アプリケーションの構築を開始するには、Ruby on Rails アプリケーションの構築方法に関するチュートリアルで開始方法を学ぶことができます。
- Rails エコシステムの詳細については、プロジェクトのドキュメントをご覧ください。
- React などのフレームワークを使用して堅牢なフロントエンド プロジェクトをセットアップするには、React フロントエンドを使用して Ruby on Rails プロジェクトをセットアップする方法に関するチュートリアルをご覧ください。
- SQLite などの他のデータベース オプションについては、Ruby on Rails アプリケーションで PostgreSQL を使用する方法に関するチュートリアルをご覧ください
- ネストされたリソースをプロジェクトに追加するには、Ruby on Rails アプリケーション用のネストされたリソースを作成する方法に関するチュートリアルをご覧ください。
- 他の Ruby プログラムの書き方については、初めての Ruby プログラムの書き方に関するチュートリアルをご覧ください。
Ruby と Ruby on Rails の詳細については、チュートリアル シリーズをご覧ください。