3. プライベートクラウドの展開方法

概要

  • 当マニュアルでは、プライベートクラウドを認証するための展開方法について、主にインストール、設定、重要なサービスの起動、また発生する可能性のある問題とその解決策について詳しく説明しています。

  • プライベートクラウドを展開する前に、運用および保守担当者はこのマニュアルを注意深くお読みください。

システム環境設定の要件

推奨されるマシン構成は、ubuntu 18.04のOSです。ハードウェアに関しては、クアッドコアまたはそれ以上の CPU、8GM 以上の RAM、そして 100GB 以上のディスク容量があることを推奨します。

注意事項: 命令セットには、AVX が必要です。

構成項目

構成要件

最小の OS カーネルバージョン

バージョン 3.2.0 以上

CPU モデル

x86_64

CPU コア数の要件

クアッドコア以上

CPU 命令セット

SSEAVXFMA のいずれか。互換性: SSE > AVX > FMA。動作速度: FMA > AVX > SSE

RAM 要件

8GB 以上

サポートされる OS の種類および最小バージョン

Ubuntu (16.04)debian (9)centos (7)redhat (7.0)

ディスクスペース要件

100GB 以上

サービスについて

  • ruby-cloud-api: クライアントから呼び出される主要なインタフェースを含むHTTP サービス。

  • go-workers: バックエンドのコンピューティングサービス。主にアルゴリズムをカプセル化してあり、ruby-cloud-api に対して HTTP 形式で提供されます。

プライベートクラウドのアクティベーション

プライベートクラウドのライセンスファイルはメールに添付されて提供されます。プライベートクラウドを展開する前に、ライセンスファイルの名前を変更して、対応するディレクトリに配置する必要があります。

ライセンス数とタイプは、開くように設定されているさまざまなインターフェースによって異なる場合があります。詳細については「プライベートクラウドファイルのライセンスに関する説明」をご参照ください。

プライベートクラウドの展開プロセス

1. 概要

展開パッケージ名: 1v1-private-cloud.tgz

1.1 展開先のマシンにまず展開パッケージをコピーして解凍

$ tar -xvzf 1v1-private-cloud.tgz

o 注意事項: 必ず Linux 上で解凍するようにしてください。Windows 上でパッケージを解凍した場合、動的リンクライブラリのソフトリンク障害が発生します。

1.2. 解凍されたファイルのディレクトリへ移動

$ cd 1v1-private-cloud

1.3 現在のディレクトリにあるファイルを表示

$ ls -a

ストラクチャは次のとおりです。

.
├── .env
├── docker-compose
├── load_image.sh
├── docker-compose.yml
├── docs
├── go-workers
└── ruby-cloud-api.tar
  • (ライセンスにより) デバイスを紐づけるする必要があるため、go-workers の Dockerイメージは展開に使用できません。

  • ruby-cloud-api.tar は、対応するサービスの Docker イメージです。展開には、docker-compose を使用できます。

2. go-workers の展開

このサービスは主要なコンピューティングサービスであるため、できれば専用のサーバーリソースを割り当てます。

2.1 go-workers ディレクトリへ移動

$ cd go-workers

2.2 並行数を調整

注意事項: まずは、マシンの物理 CPU コア数を確認する必要があります。物理 CPU コア情報を取得するコマンドは以下のとおりです。

$ echo Cores=$(($(lscpu | awk '/^Socket/{print $2}') * $(lscpu | awk '/^Core/{print $4}')))

env ファイルを開き、CONCURRENT の値を物理 CPU コア数に設定し、保存します。

$ vim .env

注意事項: CONCURRENT には、マシンの物理 CPU コア数を超える値を設定することはできません。CONCURRENT 値が大きいほど、サービスの同時実行数が高くなり、メモリと CPU の消費量が多くなります。

2.3 サービスを開始 (注意: 実行する必要があるのは一度のみです)

開始前に、ライセンスが置き換えられていることを確認します。

$ ./start.sh

なお、展開ディレクトリ内に停止スクリプトも用意されています。

$ ./stop.sh

2.4 サービスが正常に開始したか確認するためにログを参照

$ tail -f tmp/worker.log.0

注意事項: tail コマンドの実行結果にポート番号 50050 の Server Listen が含まれている場合、サービスが正常に開始されたことを示します。

2.5 正常に展開されたか確認

$ curl 127.0.0.1:50050/healthcheck

正常に展開された場合の実行結果の例は以下のとおりです (サービスが正常に開始したことを示しています)。

{"request_id":"07a41c21822e4223a373e77bfc186ed2","status":"ok"}

3. ruby-cloud-apiを展開

以下のサービスのデプロイはDockerに依存しますので、ご自身でDockerをインストールしてください。

3.1 サービスイメージを読み込む

$ ./load_image.sh

実行結果は以下のとおりです。

Loaded image: registry.sensetime.com/senseid-cloudv2/ruby-cloud-api:v1.0.0

3.2 go-workers サービスアドレスを設定

.env ファイルを開きます。

$ vi .env

最終行の WORKER_IP 値を修正し、go-workers サービスが展開されているマシンの IP アドレスを設定します。保存後、ファイルを閉じます。

IP アドレスの取得コマンド:

$ hostname -I | cut -d' ' -f1

3.3 サービスを開始

$ docker-compose up -d

結果は以下のとおりです。

Creating network "senseid-private-cloud-yyyymmdd_default" with the default driver
Creating senseid-private-cloud-yyyymmdd_ruby-cloud-api_1     ... done

3.4 サービスステータスを表示

$ docker-compose ps

結果は以下のとおりです。

                       Name                                      Command                  State                Ports
-----------------------------------------------------------------------------------------------------------------------------
senseid-private-cloud-20191225_ruby-cloud-api_1       ./entrypoint.sh start            Up (healthy)   0.0.0.0:3000->3000/tcp

ここまでにサービスが展開されています。

3.5 展開の成功を確認

$ curl 127.0.0.1:3000/healthcheck

返されるサンプルは次のとおりです。展開が正常である場合(サービスが正常に開始されたことを証明します):

{"code":1000,"status":"ok"}

サービスについて

こちらの節に記載しているサービスはサーバー内部で動作するものの為、認証情報を変更することはできません。安全に使用して頂けれる為に、安全なAPIメカニズム、認証メカニズム、通信、DNSをSenseID外部に実装することを強く推奨します。

go-workers

  • サービスポート: 50050

ruby-cloud-api

  • サービスポート: 3000

  • インターフェース定義: 詳細については、インターフェースファイルをご参照ください。

Last updated