2. intdashサーバーを作成する¶
Amazon EC2を使ってintdashサーバーを作成します。
2.1. 準備¶
AWS上に以下を準備してください。
AWSアカウント
intdashサーバー用のネットワーク環境
VPC
サブネット
サブネットを2つ作成することを推奨します。
パブリックサブネット(APIサーバー用)
プライベートサブネット(DBサーバー用)
ルーティングテーブル
セキュリティグループ
パブリックのインバウンド通信は以下を許可します。
HTTP(TCP 80 番ポート)
HTTPS(TCP 443 番ポート)
メンテナンス用途として、作業端末から以下のSSH接続を行えるようにご利用の環境に応じて設定してください。
SSH(TCP 22 番ポート)
その他の通信を制限する場合は、使用されているポートについての情報を 付録:intdashを構成するサービスと設定ファイル で確認してください。
Elastic IP(外部に公開する場合のみ必要)
インスタンス(APIサーバー用とDBサーバー用に計2つ)
インスタンスタイプ:m5.large以上
オペレーティングシステム:Amazon Linux 2
アーキテクチャ:x86_64
ストレージ:
ルートデバイス:20GB以上
追加ボリューム:10GB以上
/data にマウント
ボリュームサイズは保存する計測データの量に応じて調整
intdash yum リポジトリの認証情報
未取得の場合は当社インテグレーションパートナー窓口にお問合せください。
2.2. DBサーバーを作成する¶
SSHを使ってDBサーバー用のEC2インスタンスに接続し、以下のOSS(Open Source Software) をインストールします。
リレーショナルデータベース PostgreSQL (https://www.postgresql.org/)
時系列データベース InfluxDB (https://www.influxdata.com/)
PostgreSQLをインストールします。
$ sudo amazon-linux-extras enable postgresql11=stable $ sudo yum -y install postgresql postgresql-server
PostgreSQLのdataディレクトリとして、追加ボリューム内のディレクトリを設定します。
$ sudo mkdir -p /data/pgsql/11/data $ sudo chown postgres:postgres /data/pgsql/11/data $ sudo chmod 700 /data/pgsql/11/data $ sudo sed -i \ -e 's/Environment=PGDATA=\/var\/lib\/pgsql\/data/Environment=PGDATA=\/data\/pgsql\/11\/data/' \ /usr/lib/systemd/system/postgresql.service
PostgreSQLの初期化とサービスの起動を行います。
$ sudo postgresql-setup --initdb $ sudo systemctl enable postgresql.service $ sudo systemctl start postgresql.service
PostgreSQLのユーザーとデータベースを作成します。
$ sudo -u postgres psql -d template1 template1=# CREATE ROLE "intdash" WITH LOGIN ENCRYPTED PASSWORD 'POSTGRESQL-INTDASH-USER-PASSWORD'; template1=# CREATE DATABASE "intdash-api" OWNER "intdash"; template1=# CREATE DATABASE "intdash-micro-auth" OWNER "intdash"; template1=# CREATE DATABASE "intdash-micro-measurement" OWNER "intdash"; template1=# CREATE DATABASE "intdash-micro-config" OWNER "intdash"; template1=# CREATE DATABASE "intdash-micro-broker" OWNER "intdash"; template1=# CREATE DATABASE "intdash-micro-media" OWNER "intdash";
- POSTGRESQL-INTDASH-USER-PASSWORD
PostgreSQLデータベース接続ユーザーのパスワード。 任意の値を設定してください。
PostgreSQLの外部接続設定を行います。
$ sudo cp -p /data/pgsql/11/data/postgresql.conf /data/pgsql/11/data/postgresql.conf.orig $ sudo sed -i -e "s/#listen_addresses = 'localhost'/listen_addresses = '\*'/" \ /data/pgsql/11/data/postgresql.conf $ sudo cp -p /data/pgsql/11/data/pg_hba.conf /data/pgsql/11/data/pg_hba.conf.orig
/data/pgsql/11/data/pg_hba.confの末尾を以下のように変更します。
$ sudo vi /data/pgsql/11/data/pg_hba.conf # TYPE DATABASE USER ADDRESS METHOD local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust host all all 0.0.0.0/0 md5 host all all ::/0 md5
設定を反映させます。
$ sudo systemctl restart postgresql.service
InfluxDBをインストールします。
$ sudo yum -y install https://dl.influxdata.com/influxdb/releases/influxdb-1.8.10.x86_64.rpm
InfluxDBのdataディレクトリとして、追加ボリューム内のディレクトリを設定します。
$ sudo mkdir -p /data/influxdb $ sudo chown influxdb:influxdb /data/influxdb $ sudo chmod 700 /data/influxdb $ sudo cp -p /etc/influxdb/influxdb.conf /etc/influxdb/influxdb.conf.orig $ sudo sed -i -e 's/dir = "\/var\/lib\/influxdb\/meta"/dir = "\/data\/influxdb\/meta"/' \ /etc/influxdb/influxdb.conf $ sudo sed -i -e 's/dir = "\/var\/lib\/influxdb\/data"/dir = "\/data\/influxdb\/data"/' \ /etc/influxdb/influxdb.conf $ sudo sed -i -e 's/wal-dir = "\/var\/lib\/influxdb\/wal"/wal-dir = "\/data\/influxdb\/wal"/' \ /etc/influxdb/influxdb.conf
InfluxDBの初期設定とサービスの起動を行います。
$ sudo sed -i -e 's/# index-version = "inmem"/index-version = "tsi1"/' /etc/influxdb/influxdb.conf $ sudo sed -i -e 's/# auth-enabled = false/auth-enabled = true/' /etc/influxdb/influxdb.conf $ systemctl enable influxdb.service $ systemctl start influxdb.service
InfluxDBのユーザーとデータベースを作成します。
$ influx > CREATE USER intdash WITH PASSWORD 'INFLUXDB-INTDASH-USER-PASSWORD' WITH ALL PRIVILEGES; > auth username: intdash password: INFLUXDB-INTDASH-USER-PASSWORD > CREATE DATABASE "intdash" WITH SHARD DURATION 1h;
- INFLUXDB-INTDASH-USER-PASSWORD
InfluxDBデータベース接続ユーザーのパスワード。 任意の値を設定してください。
2.3. APIサーバーを作成する¶
SSHを使ってAPIサーバー用のEC2インスタンスに接続し、intdashサーバーの各独自アプリケーションと以下のOSS(Open Source Software) をインストールします。
ウェブサーバー nginx (https://nginx.org/en/)
エッジルーター Traefik (https://doc.traefik.io/traefik/)
利用するリポジトリの有効化を行います。
$ sudo amazon-linux-extras enable nginx1=stable $ sudo curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
以下のようにintdashリポジトリの設定ファイルを作成します。
$ sudo vi /etc/yum.repos.d/intdash.repo [intdash] name=intdash packages baseurl=https://private-repository.aptpod.jp/intdash/202206/linux/rpm username=INTDASH-REPOSITORY-USERNAME password=INTDASH-REPOSITORY-PASSWORD enabled=0 gpgcheck=0 [intdash-testing] name=intdash packages - testing baseurl=https://private-repository.aptpod.jp/intdash/202206/testing/linux/rpm username=INTDASH-REPOSITORY-USERNAME password=INTDASH-REPOSITORY-PASSWORD enabled=0 gpgcheck=0
- INTDASH-REPOSITORY-USERNAME
intdash yum リポジトリ用のユーザーID
- INTDASH-REPOSITORY-PASSWORD
intdash yum リポジトリ用のパスワード
必要なソフトウェアをインストールします。
$ sudo yum -y --enablerepo=intdash,intdash-testing install \ intdash-api intdash-ffmpeg intdash-micro-auth intdash-micro-broker \ intdash-micro-config intdash-micro-measurement intdash-micro-media \ intdash-nginx intdash-web-admin intdash-web-edges intdash-web-email \ intdash-web-me intdash-web-measurements intdash-web-media intdash-web-oauth2 \ intdash-web-password intdash-web-shared-assets intdash-web-signin \ intdash-web-widget-app-links vm2m-assets vm2m-dataviz vm2m-dataviz-backend \ vm2m-dataviz-plugins-core $ sudo yum -y install httpd-tools
以上でintdashサーバーが作成できました。 intdashサーバーの設定を行う に進んでください。