コンテンツへスキップ

Raspberry Pi 4概要

SoC(システムオンチップ)の変更。Cortex-A72アーキテクチャ(64ビットのクアッドコアARMv8が1.5GHz)を採用。

  • H.265のハードウェアビデオデコーディング
  • 基本モデルは1GBのRAM、2GBと4GBのRAMを搭載するモデルをラインナップ
  • メモリ規格がLPDDR2からLPDDR4に更新
  • Gigabit Ethernet搭載(Gigabit Ethernet over USB 2.0からの変更)
  • USB 3.0×2とUSB 2.0×2
  • 電源用USB-Cポート装備
  • Bluetoothも、4.2から5.0にアップデート
  • 2つのmicro-HDMIポート(フルサイズのHDMIポートからの変更)
  • 2つの4Kディスプレイを、60fpsで接続可能

Raspberry Piの正規販売店によって米国時間6月23日に発売された。メモリが1GBのベースモデルの価格は35ドル。RAMが2GBのモデルは45ドル、4GBのモデルは55ドル。

Raspberry Pi 4 BとRaspberry Pi 3 B +比較

海外サイトで見つけたベンチマーク結果です。
個人的に気にしていた消費電力ですが、想定以上の優秀な結果。導入しても良いかなと思える結果です。

テスト項目Raspberry Pi 3 B +Raspberry Pi 4 B差分
起動時間39.941.74.51%
アイドル状態(消費電力)0.5050.68435.45%
ピーク状態(消費電力)1.141.12-1.75%
CPUベンチマーク(1スレッド)317.7250.4-21.18%
CPUベンチマーク(4スレッド)86.262.8-27.15%
RAMベンチマーク14202983110.07%
OpenGL30.935.815.86%
Ethernet332933181.02%
WiFi 2.4Ghz38.639.62.59%
WiFi 5Ghz98.61078.52%
USB Drive Write35155342.86%
USB Drive Read32233628.13%

大幅な入出力の増強。発熱は少し気になるものの、魅力ある製品だと思います。
また、イノベーションと呼べるモデルチェンジだと思います。

Webhooksの利用

Webhooksは、WEB APIとなります。
Webhook(Webコールバック、HTTPプッシュAPIなど)はあるアプリケーションから別のアプリケーションに対してリアルタイムな情報提供を実現するための仕組みです。
Web/URLアクセスを行います。
Webhooksは、WEB受信とWEB送信側の機能を実現出来ます。

  1. SynologyやRaspberry PiからのURLアクセスを受け付けるWebhook
  2. WebhookからSynologyやRaspberry PiへアクセスするWebhook

の2つの利用形態があります。

IFTTTは、「if(もし) this(この状態) then(の場合は) that(それをする)」なので、
Synologyなどが、IFTTT処理の実行を開始させたい場合は、SynologyよりWebhookを実行します。(SynologyよりWebhookにURLアクセスします)

IFTTT処理でアクションさせたい処理がSynology側などにある場合は、WebhookよりSynologyへURLアクセスさせます。

トリガー(That)

外部よりWebhookにURLアクセスする必要があります。
その際のアクセスするURLや、アクセスに必要なアクセスキーは、Webhooksの「Documation」画面より入手可能です。
{event}はトリガーごとに設定するので、IFTTTでレシピを作成する際に指定します。

実際にThis部分を指定する画面は以下となります。
Event Nameを設定する部分があり、ここで、設定した文字列がURL部分{event}となります。

例:https://maker.ifttt.com/trigger/test/with/key/XXXXXXXXXXXXXXXXXXXXXX
トリガーアクセス時に変数を加える場合は、GETやPOSTで変数を与えます。

アクション(This)

 

Webhookより外部にURLアクセスを実施します。
その際のアクセスするURLや、自分がSynologyなどに準備したPHPファイルなどのWEBコンテンツとなります。
アクセスURLにWEBアクセス方法GETやPOSTなど、そしてコンテンツタイプおよびBodyに変数を指定します。
日本語を扱う場面も多いと思うので、URLエンコードされたコンテンツの送信をオススメします。

 

前提条件

  • Synologyのサーバの公開設定が終わっている
    • ルーターのNAT / Port Foward / Virtual Serverの設定が出来ており、インタネットからサーバーにアクセスできる

DDNS(Dynamic DNS)ダイナミックDNS/動的DNS

インターネットを利用する際に必要となる、パブリックIPアドレス(インターネットにおける世界で一意なアドレス)。
ドメイン(miki-ie.comなど)は、人にもわかりやすい表札や屋号のようなもの。
DNS(Domain Name Serivce)は、ドメインとIPアドレスの割り当てを行います。

DDNSとは、IPアドレスが頻繁に変わるホストに固定的にドメイン名を割り当て、アドレス変更に即座に追随してDNS情報を更新するシステム。 また、その仕組みを利用して提供される動的なDNSサービス。

企業向けなどには固定IPアドレスが利用され、DNS(Domain Name System)運用においてもIPアドレスとドメイン名を固定的に長期間結びつけた運用となる。
個人宅など、一般のインターネットプロバイダ(ISP)を利用した際は、インターネットプロバイダより、一時的なIPアドレスが割り当てられる。

よって、通常の自宅環境でドメインを運用した際は、利用するIPアドレスに合わせてDNSレコードを変更する必要があります。
www.miki-ie.com(不変に利用を続けたい) ⇔ Public IPアドレス(ISP接続毎に変わる)

独自ドメイン取得

DDNS向けに無料でドメインを貸してくれるWEBサービスもありますが、永続的な無料での利用などが約束されているわけでもなく、WEBサイトなどを運営する際は、独自ドメインを利用するのも悪くないと考えています。

VALUE-DOMAIN(バリュードメイン)

  • 500種類以上の独自ドメインを取り扱い。
  • 自動更新設定、一括ドメイン取得・更新など運用がしやすい
  • ネームサーバー/DNSレコード設定/Whois代行などドメイン運用の基本機能も標準装備
  • 「バリューサーバー」「コアサーバー」「XREA」などのホスティングとの連携が容易



VALUE-DOMAINでのDDNS利用時のIP更新方法

VALUE-DOMAINで本設定を行う際は、VALUE-DOMAINのポータルサイトよりIP更新時に用いるドメインのパスワードを取得する必要があります。
参考URL:https://www.value-domain.com/ddns.php?action=howto

ツールなどからのアクセス先(HTTP GET/POSTリクエスト)

https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=ドメイン名&p=パスワード&h=ホスト名&i=IPアドレス

パラメータ説明
d更新するドメインを指定します。
例:value-domain.com
p更新するドメインのパスワードを指定します。
例: 1234
h更新するドメインのホスト名を指定します。DNSレコード編集画面のホスト名と全く同じ仕様です。
例: *(全ホスト)、www、指定なしはホスト名なし
i更新するドメインのIPアドレスを指定します。指定しない場合は、自動的に接続者のIPアドレスが設定されます。
aaaaレコードが存在し、IPアドレスがIPv6フォーマットの場合、aaaaレコードのホストがアップデートされます。

SynologyへVALUE-DOMAINのDDNS更新を設定

SynologyへVALUE-DOMAIN向けのプロバイダ登録を実施

「コントロールパネル」「外部アクセス」「DDNS」「カスタマイズ」よりDDNSプロバイダを新規登録します。
Query URLへは、以下を登録し、一部はSynologyの設定画面で設定する設定値を利用するために、準備されている変数を利用します。

  • ユーザー名:__USERNAME__ d=ドメイン名
  •  パスワード:__PASSWORD__ p=パスワード
  •  ホスト名:__HOSTNAME__ 利用しない
  • 外部アドレス:__MYIP__ i=IPアドレス

※ ホスト名(h=ホスト名)は、「 *(全ホスト)」を固定指定。

 

https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=__USERNAME__&p=__PASSWORD__&h=*&i=__MYIP__

SynologyへVALUE-DOMAIN向けDDNS更新を設定

「コントロールパネル」「外部アクセス」「DDNS」「追加」より作成したサービス・プロバイダVALUE-DOMAINに必要な情報をINPUTします。
※ ホスト名は何を設定しても、実際には「*」となります。このフォームに「*」のしては不可能な仕様となっておりました。



API連携プラットフォーム概要(Overview)

ラズベリーパイ(Raspberry Pi)とNAS(Synology)の使い分け

記載済み記事

ネットワーク構成

SynologyのWEBサーバとRaspberry PiのWEB APIを外部公開にする必要があります。
SynologyとRaspberry Piの両方をWEBサーバーとして、外部公開します。
通常WEBサービスでは、ポート80(http://)と443(https://)が利用されます。
家庭向けの製品では、パケットの到着ポートで、アクセスURLを見て、パケット送付先を振り分けることは出来ないので、2台のWEBサーバを公開する際は、1台を別ポートで運用します。

NAT / Port Forward / Virtual Server設定

インターネット側IP+Port を ローカルネット側IP+Port の転送ルールを設定します。この技術や機能名がNAT、Port ForwardやVirtual Serverと呼ばれております。

パブリック側プライベート側
(グローバルIP)Port:80(Synology プライベートIP)Port:80
(グローバルIP)Port:443(Synology プライベートIP)Port:443
(グローバルIP)Port:8443(Raspberry PiプライベートIP)Port:443

この際に、グローバル側からのRaspberry Piへのアクセス方法は、「https://www.miki.-ie.com:8443」とポート番号を指定したアドレスとなります。

複数DOMAIN(ドメイン)の運用

複数の独自ドメインでWEBサーバを運用します。これは、WEBサーバのVirtual Server機能で実現します。Synologyでは、簡単に設定が可能ですので、設定方法などは割愛します。

常時電源が入っているマシンが2台。
1台がベストなのですが、現時点のベストプラクティスは2台構成
・Synology DiskStation DS218j:サーバー機能、NAS機能、バックアップスペース など
・Raspberry Pi 3 modelB +:各種プログラム動作環境

SynologyとRaspberry Pi

CPUの性能など詳細な比較は、別のサイトを参考にして下さい。
私の現時点(2019年7月時点)の答えは、両方導入。

Synology DiskStation DS218j

Raspberry Pi 3 modelB +

HDDはRAID化によりデータ保全性や製品の特性上高信頼な24時間運転が期待できます。
SSHなどでコンソールログインできるものの、自由度は低いです。
また、GUIで提供されている機能の完成度が高いので、個別なカスタマイズなしで運用な範囲をすべてSynologyで運用が基本方針です。
やはり製品寿命が気になります。
ただし自由度が高い。
新規技術が容易。
(コードさえかければ、今世の中にあるオープンソフトはほとんど動くのでは?)よって、日次バックアップで復旧可能な範囲でのデータ格納。
  • パブリック公開
  • WEBサーバー
  • DBサーバー
  • Node.js関係の開発スピードが速いプラットフォーム
  • OSコマンド

SynologyとRaspberry Piの利用方針

「カスタマイズなしで運用できるものはSynology、Synologyで運用出来ないものをRaspberry Pi」