3.3. クイックスタート (RHEL 7, CentOS 7)

ここでは、BaaS サーバ(バイナリ配布)を RHEL 7, CentOS 7 にインストール・起動する手順を説明します。

3.3.1. ulimit の設定

/etc/security/limits.d/99-mongodb-nproc.conf に以下の内容の設定ファイルを新規作成してください。

*          soft   nproc    64000
*          hard   nproc    64000
*          soft   nofile   64000
*          hard   nofile   64000

3.3.2. SELinux の無効化

SELinux を無効化しておきます。/etc/selinux/config の SELINUX= の指定を permissive または disabled に変更し、再起動を行って下さい。

3.3.3. JDK のインストール

OpenJDK 8 以上または Oracle Java SE Development Kit (JDK) 8 以上をインストールしてください。

OpenJDK を使用する場合

以下手順で OpenJDK をインストールしてください。

$ sudo yum install java-1.8.0-openjdk-headless

Oracle Java SE Development Kit を使用する場合

Oracle の Java SE Downloads から JDK 8 の RPM ファイルをダウンロードしてください。

インストール手順は以下の通りです。 (Java のアップデートがされている場合は、バージョンの値は適宜修正してください)

$ sudo yum localinstall jdk-8u162-linux-x64.rpm

3.3.4. Tomcat のインストール

Tomcat を実行するユーザを作成します。

$ sudo useradd --no-create-home -s /bin/bash tomcat

下記のコマンドでTomcatのバイナリを取得し、インストールしてください。 Tomcat のバージョン番号は適宜読み替えてください。

$ wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.28/bin/apache-tomcat-8.5.28.tar.gz
$ tar -xzvf ./apache-tomcat-8.5.28.tar.gz
$ sudo mv  ./apache-tomcat-8.5.28 /opt/apache-tomcat-8.5.28
$ sudo chown -R tomcat:tomcat /opt/apache-tomcat-8.5.28
$ sudo ln -s /opt/apache-tomcat-8.5.28 /opt/tomcat8

起動設定

Tomcat を起動するための systemd 用の Unit ファイルを作成します。

/etc/systemd/system/ ディレクトリに 'tomcat8.service' という名前のファイルを作成してください。ファイルの内容は以下のとおりとしてください。

[Unit]
Description=Tomcat 8 application server
After=network.target

[Service]
Environment="JAVA_HOME=/etc/alternatives/jre"
Environment="CATALINA_HOME=/opt/tomcat8"
Environment="CATALINA_BASE=/opt/tomcat8"
Environment="JAVA_OPTS=-Xmx2048m -Xms1024m"

User=tomcat
Group=tomcat
Type=oneshot
RemainAfterExit=yes

ExecStart=/opt/tomcat8/bin/startup.sh
ExecStop=/opt/tomcat8/bin/shutdown.sh
ExecReStart=/opt/tomcat8/bin/shutdown.sh;/opt/tomcat8/bin/startup.sh

[Install]
WantedBy=multi-user.target

JAVA_OPTS に適切なオプションを設定するようにしてください。 ヒープサイズを指定するため -Xmx の設定が必須です。

以下手順で Tomcat8 を起動します。

$ sudo systemctl daemon-reload
$ sudo systemctl enable tomcat8.service
$ sudo systemctl start tomcat8.service

server.xml の設定

環境に合わせて、/opt/tomcat8/conf/server.xml を編集してください。 (特に Connector 設定)

3.3.5. MongoDB のインストール

MongoDB 3.2 以上(推奨は 3.6 以上)をインストールします。

Install MongoDB on Red Hat の手順に従い、インストールを行ってください。

詳細な手順は以下のとおりです。 まず、/etc/yum.repos.d/ ディレクトリに mongodb-org-(MongoDBバージョン).repo ファイルを作成します。 以下の例は MongoDB 3.6 の場合の例です。

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

ついで、MongoDB をインストールします。

$ sudo yum install -y mongodb-org

MongoDB をアップグレードする際の注意事項

既存の MongoDB をアップグレードする場合は、以下の注意事項があります。

  • MongoDB 3.2 から直接 MongoDB 3.6 にアップグレードすることはできません。
    • 一旦 MongoDB 3.4 にアップグレードし、db.adminCommand の setFeatureCompatibilityVersion を "3.4" に指定して実行する必要があります。
    • MongoDB 3.6 にアップグレード後、setFeatureCompatibilityVersion を "3.6" に指定して実行する必要があります。

具体的な手順の詳細は MongoDB の Release Notes を参照してください。

3.3.6. ファイヤウォール設定

必要に応じて、ファイヤウォールで TCP 8080 ポートの通信を許可します。

3.3.7. BaaS サーバのデプロイ

BaaS サーバのバイナリ(WAR ファイル)を Tomcat にデプロイします。

バイナリは api.war と console.war の2つがあります。前者は REST API サーバ、 後者はデベロッパコンソールサーバの実装になります。

$ sudo /bin/rm -rf /opt/tomcat8/webapps/console /opt/tomcat8/webapps/api
$ sudo cp api.war /opt/tomcat8/webapps
$ sudo cp console.war /opt/tomcat8/webapps

Tomcat をリブートします。

$ sudo systemctl restart tomcat8

3.3.8. 動作確認

ブラウザを開き、http://[hostname:8080]/console (hostname はBaaSサーバを起動したサーバ名) にアクセスし、正常にコンソールページが表示されることを確認してください。

また、http://[hostname:8080]/api/ にアクセスし、以下の JSON 応答が 表示されれば API サーバは正常稼働しています。

{"error":"Not Found"}

3.3.9. 補足事項

本手順では、HTTP:8080 でサーバを起動しています。

実運用時は HTTPS:443 でリクエストを受け付けるようにしてください。 具体的な手順は ロードバランサ/リバースプロキシとHTTP通信(サーバ証明書)の設定 を参照してください。