投稿日: | 最終更新日:
ラズパイAIサーバを作る(ラズパイサーバのススメ)
ラズパイ(RaspberryPi)を使って、家庭内にクラウドサーバを作ります。
ドメスティッククラウドサーバ
家庭内にクラウドサーバと同等のサービスを作ります。家庭内に有るMYサーバに接続して様々な処理をさせて便利に使いたいと思います。
クラウドサーバの必要性
クラウドサーバの強みは拡張性です。情報を管理・加工を行うためにクラウドサーバを使うのが一般的になってきました。
ラズパイに機能分散してAIサーバに仕上げる
ラズパイあるいは別のマイコンにカメラモジュール・音頭センサー・湿度センサーを接続します。部屋の温度、湿度、画像をIOTサーバ(今回作るサーバの一部)へ送信します。そのデータをサーバ側で分析し、室温が適切でない場合はアラームを鳴らします。
機能
- 人工知能アルゴリズムを搭載
- ペットの行動解析
- 20人同時アクセスがあっても機能を継続
- ハードウェアの故障があっても機能を継続(冗長化)
- 複数あるサーバの機能を複数のCPUに実装して高速処理
家庭内にラズベリーパイでサーバを作る理由
ラズベリーパイで家庭用サーバを作るメリットは以下のとおりです。
サービスが終了しない
外部のクラウドサービスを使う以上は、いつかサービスが終了してしまうのではと不安になります。当たり前ですが、自宅のサーバは自分がサービスを止めてしまわない以上は稼働し続けます。
情報漏えいしない
多くのクラウドサービスは安全です。しかし、情報漏えいの可能性は0%ではありません。外部に画像を置くことに抵抗がある人は、自宅にデータがあるとわかれば精神衛生的に良いでしょう。
アクセス頻度の低いデータを管理できる
例えば、旅行の写真をクラウドに保存したとします。しかし、写真は保存後数年経過した後にアクセスする場合が多いため、パスワードを忘れたりサービスが停止したりすると保存していた画像を見ることができなくなります。
運用コストが少ない
AWS等の外部のクラウドサーバを1年以上利用すると、かなりお金がかかります。自宅で運用しますので、圧倒的に安くなります。
ラズパイサーバと外部サーバとの比較
ラズパイで自作した場合とAWSを利用した場合を比較します。
ラズベリーパイの値段は、本体+16GSDカード+ACアダプタの値段でおおよそ7,000円とします。
自作 | AWS | |||||
---|---|---|---|---|---|---|
機能 | 必要なもの | 必要数 | 購入費用 | 利用する機能 | 必要数 | 月利用料 |
ロードバランサー | ラズベリーパイ | 1 | 7,000 | EBL | 1 | 1,417 |
MQTT Broker | ラズベリーパイ | 2 | 14,000 | AWS IOT | 1 | 4,200 |
メッセージ処理エンジン | ラズベリーパイ | 2 | 14,000 | Lambda | 1 | 1,470 |
APIサーバ | ラズベリーパイ | 2 | 14,000 | API GW | 1 | 455 |
アプリケーションサーバ | ラズベリーパイ | ※APIサーバーと同じ | 0 | EC2 | 2 | 1,964 |
ストレージ | SSD+ケース | 2 | 26,000 | EBS | 1 | 1,417 |
1年運用 | 75,000 | 131,076 |
目標の仕様
サーバを購入することに比べれば、ラズパイは非常に安価です。家庭・職場で規模に応じてシステムを構築できます。
ハードウェア構成
以下の規模のシステムを想定しています。
- ロードバランサー
- アプリケーション・サーバ+APIサーバ ✕2
- メッセージ処理エンジン ✕2
- MQTT Broker ✕2
- リレーショナル・データベース
- ストレージ(200Gバイト)
ラズベリーパイ✕8使います。
ストレージとして、ハードディスクまたはSSD✕3を使います。
ディープラーニング絡みで学習・判定など高速処理が求められる場合は、GPU対応の仮想マシンが必要になります。クラウドで使う場合、「数万〜200万円/年」費用がかかります。PCにGPUボードを追加したものを追加すれば、20万円で準備出来ます。また、組み込みGPUボードもあるのでそちらも検討してみます。
システム構成
ロードバランサ
ロードバランサは、リクエストを複数のサーバに分散させます。そして、各サーバの処理を平準化(公平な状態)してシステム全体として処理能力を有効活用するためのコンポーネント(部品)です。
MQTT Broker
MQTT Brokerは、MQTTプロトコルを使ったメッセージ送受信を行う際のサーバです。主に以下の処理を行います。
- トピック(通信チャンネル)の管理
- 送信者・受信者の管理
- メッセージ配信の実行
イベントエンジン
イベントエンジンは、以下の処理を行います。
- ファイル保存
- システムで発生する事象の検出
- イベントに対して、事前登録された処理(画像加工・画像解析)を実行
冗長化
画像管理用のサーバを複数台用意します。サーバを分散すれば、画像管理処理を同時に複数台で実行できます。ここでロードバランサを利用します。また、このような構成にすれば一方のサーバが破損しても別のサーバが継続できます。
イベントエンジンとデータ加工処理およびAI処理を複数用意するのも同様です。同時処理を増やすことでシステムの処理性能を向上させることと信頼性を高めることを目的とします。SSDを複数用意するのは、複数箇所にデータを保存し、故障した場合にデータが消失することを防ぎます。
次回
さっそくストレージサーバを作ってみたいと思います。
→ラズパイAIサーバを作る(ストレージサーバ編 ストレージサービスとは?)
ストレージサーバの準備に入ります。
- Python 114
- 制作 54
- RaspberryPi 41
- Django 40
- WordPress 40
- Linux 27
- VPS 22
- JavaScript 21
- PHP 20
- HTML・CSS 19
- AWS 16
- 仮想環境 15
- レスポンシブデザイン 13
- マイコン 11
- WEB全般 11
- 動画製作 9
- Webサービス 8
- 統合開発環境 8
- 機械学習 8
- PyCharm 7
- jQuery 7
- AfterEffects 7
- 起業・設立 7
- Django REST framework 6
- C# 6
- デザイン 6
- SEO 6
- pydata 6
- Visual Studio 5
- 数学 5
- 携帯サイト 5
- heroku 5
- Mac 5
- illustrator 5
- node.js 5
- Anaconda 5
- Nginx 4
- Jupyter Notebook 4
- インフラ 4
- Google Colaboratory 4
- symfony 4
- Webスクレイピング 3
- photoshop 3
- Go言語 3
- PC 3
- ツール 3
- Docker 3
- facebook 3
- 作業効率化 3
- データベース 3
- Cloud9 3
- コマンド 2
- micro:bit 2
- Kali Linux 2
- Webサーバー 2
- MariaDB 2
- ドローン 2
- コンテナ 2
- DaVinci Resolve 2
- ネットワーク 2
- Java 2
- movie 2
- PCDJ 2
- 音楽 2
- XSERVER 2
- Ansible 1
- Vue.js 1
- JSON 1
- Bootstrap 1
- バージョン管理システム 1
- SSL 1
- S3 1
- ムームードメイン 1
- ネットワーク 1
- アニメーション 1
- D3.js 1
- Rhino 1
- アニメ 1
- git 1
- windows 1
- アクセス解析 1
- スマートフォン 1
- アフィリエイトノウハウ 1
- 知識 1
- TypeScript 1
- 役立つ本・書籍 1
- データサイエンス 1
- ESP32 1
- AI 1
- ownCloud 1
- API 1