6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

さくらVPS(Cent OS6.7)上にLoopBackアプリをデプロイする

Last updated at Posted at 2016-04-25

フレームワークの意図をつかむまでにちょっ混乱した
前回作成したbookアプリをもとにアプリ公開まで行う

なお、Loopbackについての概要はこちら
Parseがサービス終了する今、選ぶべきはオープンソースBaaS!探し求めていたのはLoopBackだった…!

ローカルとサーバで使用するツールの違い

LoopBackはStrongLoop Process Manager(PM)というツールを使ってアプリの公開を行う
こちらには開発用のコマンドはない
一方、前回、ローカル(Mac)で構築した環境には開発用ツールも同梱されている
こちらはサーバ側にインストールしなくてよい

前回の記事
LoopBackをサクッと触ってみた(環境構築からAPIまで)+おまけでUnity

StrongLoop Process Manager(PM)とは?

サーバ上にLoopBack作業用ユーザを作り、サーバに必要な機能をいろいろとやってくれるツール
・slc deploy、slc ctlの受け口となる
・サービスが落ちないようにしてくれる
・複数アプリを管理してくれる
参考:StrongLoop Process Manager

アプリを公開するまでの簡単なフロー

1.ローカルに開発環境を構築(前回やった)
2.サーバにPMをインストール
3.ローカルでアプリを作る
4.ローカルでサーバに配置するアプリの設定を行う
5.ローカルでビルド
6.ローカルでサーバにデプロイ

見てもらってわかるようにサーバ側は環境構築のみで完結した
よく出来ている

この切り分けさえ分かれば迷わない
それではサーバの環境構築をする

これから環境構築する色々

ここにまとめておくので適宜読み替えてほしい
ホスト名:111.222.333.444
アプリが使用するポート:3030
Strong PMユーザ名:myuser
Strong PMパスワード:password
Strong PMの(デプロイ等で使用する)ポート:7070
アプリ名:sampleapp
アクセスURL:/api/books
※使用するポートはiptablesで許可設定をする

#さくらVPSの設定
これらの設定を問題なく終えていると想定

npmのインストール

公式サイトに従ってやった

Node.jsの4系の場合
curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs

終わったら下記で確認

node -v

StrongLoop Process Manager(PM)の環境構築

参考:公式サイトの説明
※最新版である5.2系では正しく動作しなかったので5.1.0を指定

sudo npm install -g strong-pm@5.1.0

PMを扱うユーザをサーバ上に作成する
PMのユーザ名、パスワード、ポートをパラメータとして指定する

sudo sl-pm-install --upstart=0.6 --http-auth myuser:password -p 7070
sudo /sbin/initctl start strong-pm
sudo /sbin/initctl status strong-pm

※--upstart=0.6はCentOS6等で必要なオプション

これでサーバが起動している間は7070ポートでLISTEN状態となる

使用するDBの構築(MongoDB)

前回ローカルでMongoDBを構築した
サーバ側でも必要になるのでMongoDBをインストールする
Mongo公式から

###設定ファイルを作成

sudo touch /etc/yum.repos.d/mongodb-org-3.2.repo
sudo vi /etc/yum.repos.d/mongodb-org-3.2.repo

ファイルに以下を書き込む

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

設定ファイルを使用してインストールとサービス起動

sudo yum install -y mongodb-org
sudo service mongod start

LoopBackアプリの設定

slc ctlコマンドを使うことで、PMを通じてサーバ側のアプリ設定を行える

アプリ名作成

slc ctl -C http://myuser:password@111.222.333.444:7070 create sampleapp

###本番環境用として設定

この設定により、config.production.json、datasources.production.json等の本番環境用ファイルを使用できる

slc ctl -C http://myuser:password@111.222.333.444:7070 env-set sampleapp NODE_ENV=production

###アプリが使用するポートを設定

アプリが使用するポートを設定

slc ctl -C http://myuser:password@111.222.333.444:7070 env-set sampleapp PORT=3030

アプリ設定の確認

slc ctl -C http://myuser:password@111.222.333.444:7070

アプリのビルド

git管理をしていれば自動でdeployブランチが作成される

slc build

アプリのデプロイ

slc deploy -s sampleapp http://myuser:password@111.222.333.444:7070 deploy

アップロード先のパスがログに出るが、特に意識する必要はない
何かあればローカルからslc ctlコマンドで操作(再起動や停止など)をしてやればいい

アプリにアクセス

疎通確認する(200が返ってくるか?)

http://111.222.333.444:3030/api/books

productionの設定

productionに設定するとAPI Explorerはオフになる

開発用と本番用に分けたい場合

アプリの設定で開発用も作成する
独自設定にはなるがNODE_ENV=developmentを設定して、config.development.jsonを定義すれば読み込んでくれる(…はず、まだやってない)

複数のアプリの管理

アプリの設定で別のアプリを作成する
本番用と開発用を切り分けるのと大差はない

#ログは?
var/log/messagesに残る

#まとめ
サクッと書いたけど要所要所でハマる
また後日読み返して追記できるところは追記します

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?