2016.05.30

cloud9のRuby on Railsで作ったアプリをサーバーにデプロイしよう!

160620_ruby_scr01_p3

皆さんこんにちは。株式会社Dive into Codeの宮岡聖也です。
GMOクラウド様が提供するクラウドサーバーALTUSを使用し、「ALTUSを使ってRuby on Railsでアプリケーション公開!」を6回に渡り連載させていただいております。

今回の第4回は「Cloud9から本番サーバーへアプリケーションをデプロイ!」です。
さっそく始めていきましょう!!

【STEP3】
Cloud9からアプリをサーバーへデプロイ

Ⅰ.疎通確認

Ⅰ-ⅰ.Cloud9へログイン

※Cloud9の画面を既に表示している場合は、飛ばしてください。
【手順】Cloud9のIDE画面を表示する

160530_rails_02


Ⅰ-ⅱ.Cloud9からALTUSへの接続を確認する

【確認】 ALUTUSへログインできるか確認する

【手順】作成したALTUSサーバーにCloud9から接続します。

【コマンド】
ssh cloud@前の手順で作成したVMのIPアドレス

cloud@IPアドレス's password:
と表示されたら、前の手順でダイアログとして表示されて控えていたパスワードを入力してください。
なお、セキュリティ上画面上には表示されませんのでお気をつけてください。

@以降が登録したサーバー名になればログイン完了です

160530_rails_03


Ⅰ-ⅲ.ALTUSへアプリを送付用のGitリモートリポジトリを作成

【手順】cloud9のGitを経由してALTUS側にリポジトリ取得用のGitリポジトリを構築します。

【コマンド】

mkdir repos.git

160530_rails_04

Gitは恥ずかしがり屋のため、反応は何もありません。

【手順】前の手順で作成したgitリポジトリへディレクトリを移動する

【コマンド】

cd repos.git/

160530_rails_05

【手順】(サーバー操作)共用リポジトリを作成する。

【コマンド】

git --bare init --share

160530_rails_06

※gitの共用リポジトリを作る際は、「--bare」と「--share」オプションを指定します。
「--bare」はbareリポジトリを作成するという意味で、通常「.git」の下に作成される管理情報ファイルをカレントディレクトリに展開します。(リモートリポジトリではファイルは編集しないので、管理情報のみ存在させます。)

【手順】ALTUSからログアウトをする

【コマンド】

exit

160530_rails_07

【手順】Cloud9のachieveディレクトリに移動する

【コマンド】

cd achieve

160530_rails_08
【手順】(サーバー操作)共用リポジトリを作成する。

【コマンド】

git remote add gmo ssh://cloud@IPアドレス/home/cloud/repos.git

160530_rails_09


Ⅰ-ⅳ.Cloud9からALTUSへアプリケーションをデプロイする

【手順】Cloud9からALTUSへアプリケーションをデプロイする

【コマンド】

git push gmo master

160530_rails_10

git push gmo masterコマンドは、ソースコードをALTUSに反映させる都度、実行するコマンドです。

【手順】ALTUSに作業用ディレクトリを作成する

※ALTUSに再度ログインをします。
ssh cloud@前の手順で作成したVMのIPアドレス
cloud@IPアドレス's password:

【コマンド】

mkdir code
cd code

160530_rails_11

gitからclone

【手順】前の手順で作成した共有リポジトリからgit cloneをする

【コマンド】

git clone ssh://cloud@IPアドレス/home/cloud/repos.git

160530_rails_12
Are you sure you want to continue connecting (yes/no)?
と表示されたら、大文字で yes と入力して処理を継続させてください。

途中で
[sudo] cloud@153.122.101.252's password:
と表示されたら、前の手順でダイアログとして表示されて控えていたパスワードを入力してください。

【手順】アプリケーション格納先のreposディレクトリに移動する

【コマンド】

cd repos
bundle install

160530_rails_13

【手順】問題なくインストールされたことを確認する

160530_rails_14


Ⅱ.DB&テーブル作成

Ⅱ-ⅰ.PostgreSQLのサービスを起動

【手順】最初からインストールされているPostgreSQLサービスを「起動」する

[コマンド]

sudo service postgresql start

160530_rails_15

$ マークが表示され、reposディレクトリに表示が戻れば完了です。

途中で
[sudo] password for cloud:
と表示されたら、前の手順でダイアログとして表示されて控えていたパスワードを入力してください。

160530_rails_16


Ⅱ-ⅱ.PostgreSQLのデータベースユーザーを登録

【手順】PostgreSQLにフル権限ユーザーとしてSQL実行モードで接続する

[コマンド]

sudo sudo -u postgres psql

160530_rails_17

実行後に以下のようにpostgres=# と表示されればOKです。

160530_rails_18
【手順】PostgreSQLに OS のユーザー名と同名のユーザーを登録する

[コマンド]

CREATE USER cloud SUPERUSER;

160530_rails_19
※ERROR: role "cloud" already exists と表示されても大丈夫です。既にユーザーが作成されていただけです。この手順は、万一ユーザーが作成されていないと後の手順でエラーとなるため、行っています。

160530_rails_20

【手順】PostgreSQLのSQL実行モードから脱出する

[コマンド] ※ ¥マークはバックスラッシュ「\」の半角です

\q

160530_rails_21
~/workspace/achieve と再び表示されればOKです。

160530_rails_22


Ⅲ.本番環境(ALTUS内)データベースにテーブルを作成する

【手順】 ALTUS内のPostgreSQL内データベースにテーブルを作成する

[コマンド]

rake db:create db:migrate

160530_rails_23
※ALTUS内には push した時点で自動的にデータベースが作成されません。そのため、db:create db:migrateが必要となります。

【手順】 エラーが発生することなく「CreateBlogs: migrated」と表示されたことを確認する

160530_rails_24


Ⅳ.起動確認 ~ お試しアプリケーションを表示する

【手順】 achieveにアクセスできるようにHTTPServerを起動する

[コマンド]

rails s -b 0.0.0.0

160530_rails_25

【手順】 WEBrick::HTTPServer#start:と表示され、起動したことを確認する

160530_rails_26
【解説】 HTTPServerを起動するとコンソールはその起動処理で手一杯になります。別のコマンドを実行させたい場合は、HTTPServerを 「Ctrl + C」キーで
停止してから実行させてください。

【手順】 作成したWebアプリケーションを表示する

ブラウザにURLを追記する
[追記するURL]
http://IPアドレス's:3000/

160530_rails_27
【手順】 Welcome aboardと表示されていることを確認する

160530_rails_28
【手順】 URLの末尾に /blogs を追記してブラウザを再読込する

[URLに追記する文字列]
/blogs

160530_rails_29

【手順】achieveのblog一覧画面が表示されたら、facebookなどで友人にシェアして、他の人がアクセスして触れられるかどうかを確認する

【手順】画面が表示されたことを確認して、New Blogをクリックする

160530_rails_30

開発した手順が漏れていたり間違っていると、ここで赤いエラー画面が表示されます。

【手順】titleとcontent欄に任意の文字列を入力してCreate Blogをクリックする

160530_rails_31

【手順】 Blog was successfully created.と表示され、登録できたことを確認して、Backをクリックする

160530_rails_32

【手順】 Listing Blogs画面でShowやEdit、Destroy、New Blog等の操作を一通り試してみる

160530_rails_33


Ⅴ.HTTPServer停止 ~ お試しアプリケーションのHTTPServerを停止させる

【手順】下のコンソール画面に切り変えて、ctrlキー + cキー でHTTPServerを停止させる

160530_rails_34
「INFO going to shutdown ...」と表示されるのは、HTTP Serverがシャットダウン(停止)されたからです。

完了「お疲れ様でした!」

いかがでしたか?

160530_rails_35

次のステップへ進みましょう!
【次回連載】「cloud9 画面デザイン」

 

Dive into Code で経験ゼロからWebエンジニアになる!

・Dive into Code公式Facebookページ

・経験ゼロから実務経験を得られるプログラミングスクール【Dive into Code】

以下の facebook ページに”いいね”を押していただいた後に、メッセージ宛に「オンラインサポート用 facebook グループへの招待を希望」の旨、ご一報ください。
https://www.facebook.com/DiveintoCode.RubyonRails/

 

この記事を書いた人

株式会社Dive into Code 平井真司&宮岡聖也

【平井真司】
株式会社Dive into Code
Sales&Marketing Team Leader

起業と清算双方を経験した起業家たまごエンジニア
U30で起業と清算の双方を経験。これからの起業には、Webアプリケーション開発スキルが欠かせないとことを起業体験の中でのエンジニアメンバーとのやりとりで痛感し、独学とスクール通学でたまごエンジニアになる。
同じ轍を踏まない様に、同様の課題を抱える起業家たちへプログラミングスキルの必要性と最短経路での学習方法の普及に務める。

【宮岡聖也】
愛媛から上京してプログラミングを学習し、Dive into Codeでスクール講師をしながら受託開発チーム「Second Team」のリーダーを務める。
スキルを習得し、エンジニアとして型に縛られない新しい働き方を模索中。故郷の廃校した小学校でコワーキングスペースを開放するのが目標。

【株式会社Dive into Code】
「すべての人が、テクノロジーを武器にして活躍できる社会をつくる」 をミッションに掲げ、プログラミング経験ゼロから実務経験のあるエンジニア人材へ育成を行う【Dive into Code】と成長した受講生が実経経験を得られる【Second Team】を運営しております。

GMOクラウドアカデミーYouTubeチャンネルはこちらから

アカデミー用バナー

メルマガ会員募集中!

アカデミーの最新情報や会員限定のお得な情報をお届けします。

メルマガ登録はこちら