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) をインストールします。

  1. PostgreSQLをインストールします。

    $ sudo amazon-linux-extras enable postgresql11=stable
    $ sudo yum -y install postgresql postgresql-server
    
  2. 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
    
  3. PostgreSQLの初期化とサービスの起動を行います。

    $ sudo postgresql-setup --initdb
    $ sudo systemctl enable postgresql.service
    $ sudo systemctl start postgresql.service
    
  4. 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データベース接続ユーザーのパスワード。 任意の値を設定してください。

  5. 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
    
  6. InfluxDBをインストールします。

    $ sudo yum -y install https://dl.influxdata.com/influxdb/releases/influxdb-1.8.10.x86_64.rpm
    
  7. 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
    
  8. 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
    
  9. 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) をインストールします。

  1. 利用するリポジトリの有効化を行います。

    $ 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 リポジトリ用のパスワード

  2. 必要なソフトウェアをインストールします。

    $ 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サーバーの設定を行う に進んでください。