intdashサーバーを構成するコンポーネントと使用するポート番号(インフラ管理者向け)

intdashサーバー全体像

intdashサーバーは、以下のコンポーネントにより構成されています(ロードバランサーを除く)。

各コンポーネントの役割は以下の通りです。

  • nginx

    • クライアント(エッジ)からのHTTPリクエスト、およびintdashサーバー内の他のコンポーネントからのHTTPリクエストを処理します。
    • ウェブブラウザーから未認証の状態でアクセスがあった場合は、認証のためにログインページへの遷移を行います。
  • intdash-api

    • intdashサーバーのコアであるWeb APIサーバーです。時系列データやエッジの情報(リソース)を提供します。
    • intdash-apiが提供する情報の一部は、実際には別コンポーネント(micro-auth、micro-measurement、micro-config、micro-broker)が処理しています。
  • micro-auth

    • エッジに関する情報およびその認証認可を担当するサービスです。
  • micro-measurement

    • 計測(時系列データ)に関する情報を担当するサービスです。
  • micro-config

    • 主にモバイルアプリケーション用の設定情報を担当するサービスです。
  • micro-broker

    • 計測データのリアルタイム処理を担うマイクロサービスです。
  • micro-media

    • H.264動画をウェブブラウザ―用に変換して配信するサービスです。
  • NATS(intdash-apiをスケールアウトさせた場合のみ)

    • intdash-apiを複数のインスタンスに分散させた場合、それらの間のリアルタイムデータの受け渡しに使われるPub/Subサービスです。
  • InfluxDB

    • 時系列データを保持するデータベースです。
  • PostgreSQL

    • 時系列データ以外のデータを保持するデータベースです。
  • Redis(InfluxDBをスケールアウトさせた場合のみ)

    • InfluxDBをスケールアウトさせシャーディングを行う場合に、シャーディングに必要なメタデータを保持します。
  • S3 bucket

    • micro-mediaによりウェブブラウザ―用に変換された動画データを格納する、Amazon S3バケットです。
  • Web App (SPA)

    • ウェブアプリケーションの静的ファイルを配信します。
  • Web App (SSR+SPA)

    • ウェブアプリケーションのサーバーサイドレンダリングを担当します。

各アプリケーションが使用するポート番号

intdashサーバーを構成する各アプリケーションが使用するポート番号は以下の通りです。

上の図におけるコンポーネント名 アプリケーション名 ポート番号(デフォルト)
nginx nginx 80, 443
PostgreSQL postgresql 5432
InfluxDB influxdb 8086
Redis redis-server 6379
intdash-api intdashd 8097, 8179
intdash-api traefik 8080, 18080
micro-auth authd 8094
micro-measurement measurementd 8095
micro-config configd 8096
micro-broker brokerd 8180, 8178
micro-media mediad 8085
NATS gnatsd 4222
Web App web-oauth2 13003
Web App web-me 13000
Web App web-edges 13001
Web App web-measurements 13004
Web App web-admin 13006
Web App web-widget-app-links 13005
Web App web-media 13007