オープンイノベーション【オープンイノベーション】vol.34:てんかく忍者をNASに詰め込んでみた(てんかく忍者NASプロトタイプ)

【オープンイノベーション】vol.34:てんかく忍者をNASに詰め込んでみた(てんかく忍者NASプロトタイプ)

前回の【オープンイノベーション】vol.33:てんかく忍者AWS環境で登録時間爆速の 術!?
以前の【オープンイノベーション】vol.22:てんかく忍者サービスをAWS上に構築してみた
の回では、AWS上でてんかく忍者サービスを動作させ、GV-Syncによる登録機能をクラウド上で実行してみました。

今回は、「LAN環境内にてんかく忍者環境を構築するなら、NASがいちばんうってつけなのでは?」というアイディアを思い立ち、NASにてんかく忍者環境を詰め込んでみました。

 

初めに結論です。

 

  •   GV-Syncによる登録、4D-dbの閲覧共に最速で動作します。
  •   高速性を活かして、大きなデータや大量のデータを連続で見たい、画像処理やAI処理などの一括処理を高速に行いたいなどの場合に最適です。
  •   NASのセキュリティ機能や公開機能を利用でき、イントラネットなど特定のネットワーク環境内でセキュアに運用する場合などに最適かもしれません。
  •   将来、利用者や登録データ量が増える想定があるとしても、まずはNAS環境で運用検証を行ってみよう、スモールスタートしてみようという場合の選択肢にもなりそうです。

 

NASとは何か

NASとは何か?
Network Attached Strage(ネットワークに接続されたストレージ)なので、NASの本質はストレージです。

つまりNASにてんかく忍者環境を構築する場合、既存運用環境のようにストレージにBoxを採用したり、AWS環境のようにAmazon EFSを採用したりする必要がありません。

NASそのもののストレージを"システム領域"、"プログラム領域"、"データベース領域"、"データ領域"として使えるわけです。
しかもNASは基本的な機能として、冗長化、ヒストリー管理、バックアップなどの機能を備えています。必要であればクラウドのストレージと同期する機能さえもあります。

さらにNASはLinuxなどのOSで制御されており、普通のLinuxのようにssh接続やプログラム実行なども可能です。特に最近ではPCサーバ並みのCPU性能を持たせ、Dockerなどの仮想サーバ構築まで可能になっているので、少し前ならPCサーバー+ディスクアレイが必要だった環境を、NASのみで構築することが可能になってきています。

vol34_fig1.jpg

 

つまりNASとは、ネットワーク性能とストレージ性能が高いサーバーマシンである、と言えます。

 

てんかく忍者 NASの構成

てんかく忍者クラウド構成

現在サービス提供しているクラウド運用環境では、Linuxサーバーを2つ立て、ストレージサービスにBoxをマウントしています。

vol34_fig2.jpg


登録時は、当社内のGV-Syncを使用し、DBサーバーとBoxにデータを送信します。

 

てんかく忍者クラウド(試作版)

AWS環境(現在R&Dセンターで試験中)では、DB、4D-db、GV-Sync、ストレージの一通りの機能を、AWSクラウド環境内に作成しています。

vol34_fig3.jpg


ほぼ全ての通信がAWSの特定のリージョン内で完結します。

 

てんかく忍者NAS(試作版)

そしてNAS環境は、NASだけで完結します。

vol34_fig4.jpg

...すみません、省略しすぎました。

 

NASの中で、データベース、GV-Sync、4D-dbのDockerコンテナを立ち上げています。
構成を表すと次図のようになっています。
ほぼ全ての通信が、NASの高速なバス内でやり取りします。

vol34_fig5.jpg

 

ASUSTOR AS6510TとAS7110T

 

今回検証に使用したNASは、ASUSTOR社製のAS6510Tです。
もともと自部署の業務データを格納する目的で使用していて、使い勝手も悪くないことから、てんかく忍者用に追加でもう一台購入したという経緯です。

このAS6510Tですが、スペック的にはまぁまぁの性能で、ハードディスク10枚まで格納可能です。これの初期メモリ8GBであったのを32GBに拡張して運用しています。

開発用PCでテストや検証の目的で環境一式を構築するために以前からコンテナ化してあった4D-db、GV-Sync、PostgreSQLを、このNAS上で`docker compose up -d`したところ、すんなり環境が出来上がりました。

このNAS環境の具体的な性能は後述するのですが、ボトルネックはCPUです。
登録処理では、CPUのほぼ100%を使い切っていました。


vol34_fig6.png

 

検証に使用したAS6510TのCPUはAtom C3538ですが、Intel Xeon 9th genのAS7110Tにすると、さらなる性能や安定性の向上が期待できそうです。※注1

 

※注1:AsustorのNASはその後、Lockstor 10 Gen3 (Ryzen V3C14CPU @2.3-3.8GHzを搭載)で更にCPUが高速化され、かつサーバ用ECCメモリで高性能化しています。

 

登録処理時間

NAS環境に構築したてんかく忍者の登録処理は、NASの中だけで完結します。
NASのHDDから動画を読み込み、NASのHDDに静止画を保存し、NAS上のデータベースに書き込みます。

1時間の動画(4K画質30fps)の登録時間を、他条件のGV-Syncの登録時間と比較してみましょう。

vol34_fig7.png

 

NAS構築環境での登録処理が、歴代で最速最短でした。
社内GV-Syncはデータベースが遠隔で、データベース登録時間が長くなります。
AWS環境GV-Syncはまだ本気出していなかった(低性能のCPUとメモリのインスタンス)のもありますが、本気出したら出したで(高性能のCPUやメモリ割り当てのインスタンス)時間あたりの課金額が心配です。

いっぽうNAS構築環境では外部通信による性能低下もなく、常に本気を出してくれるので、安定かつ短時間でデータを登録することができます。

 

 

4D-dbの閲覧

 

NAS構築環境で4D-dbを閲覧してみました。


既存運用環境に対し、全体的に応答速度が速いという結果になりました。
ネットワーク通信がボトルネックになりそうな操作に強い一方で、CPU性能依存の操作が弱いようです。

使用するNASをIntel Xeon 9th gen採用の"AS7110T"にすると、弱点克服になるかもしれません。

操作 既存運用環境  NAS 
地図全体検索 6.5秒 10秒
地図スクロール 1.4秒 0.5秒
サムネイル表示 11.5秒 0.3秒
ビューア表示 2.4秒 2秒

 

小規模環境やスモールスタートにてんかく忍者をNAS環境に構築すると、安定して高い性能が出ることがわかりました。

しかしNAS環境もメリットばかりではありません。

以下にNAS運用のデメリットを挙げます。 

 

NAS運用のデメリット

自前でハードウェアを保有しますから、当然システム管理のコストや気配りが必要です。

• OS更新時にダウンタイムが発生する
• 停電の影響を受ける
• インターネットに公開の敷居が高い
• 故障対応が必要(わりとハードディスク壊れます)
• 災害対策が必要

 

 

終わりに

サーバーレスの恩恵を受けられる時代に、あえてホスティングで運用する部分とオンプレミス環境のメリット・デメリットを見極める必要があります。

ベースシナリオとして、社内のみ、特定部門のみで使用を想定する小規模環境や、スモールスタートで導入してみたい、大人数での共有よりも、少人数での高速な環境の方が望まれる場合に、NAS環境もご検討の価値があると考えています。

 

※本記事中の、Docker、BOX、AWS、Amazon EFS、Amazon ECR、Amazon ECS、Asustor、Intel、Xeon、Ryzenなどは各社、各団体の登録商標です。

 

 

▼この記事を書いたひと

R&Dセンター 長尾 賢志

Pythonistaですが、Java、C#、Rubyなども経験があり、オブジェクト指向を得意とします。Djangoを使用したWeb開発をしたことがあるほか、データ解析・可視化なども行なっています。R&Dセンターではエッジコンピューティング、IoT関連を担当しています。保有資格:ソフトウェア開発技術者

 

おすすめの関連記事


お問い合わせ

ご意見・ご質問などお気軽にお問い合わせ下さい。
ナカシャクリエイテブ株式会社

●富士見事務所 TEL : 052-228-8744(交通部営業課) FAX : 052-323-3337(交通部共通)
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711  地図

PoCのお問い合わせ:交通部営業課
技術的なお問い合わせ:R&Dセンター

Email:メールでのお問い合わせ