3.3. クイックスタート (RHEL 7, CentOS 7)¶
ここでは、BaaS サーバ(バイナリ配布)を RHEL 7, CentOS 7 にインストール・起動する手順を説明します。
なお、Ansible を使って自動デプロイするための Playbook を別途提供していますので、こちらをお使いいただくことを推奨します。
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 以上をインストールしてください。
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通信(サーバ証明書)の設定 を参照してください。