【第1回】ラズパイで自前のBTCPayサーバーを構築&公開して個人決済システムを作る!準備編
今までUmbrelのBTCPayサーバーや、クラウドホスティングサービスLunaNodeでBTCPayサーバーを構築してきました。
上記のLunaNodeは手軽に構築出来る魅力はありますが、やはり月額15ドルの料金とクラウドサービスに依存してしまうという面で引っ掛かるところがあります。
という訳で、今回からUmbrel同様にラズパイ4を利用して自前のBTCPayサーバ-を自宅に構築&公開してクリアネット上でも利用できる自分だけの決済システムを立ち上げてみたいと思います!
上手くいけばUmbrelと同等の機械代で構築できるので約2.5万円≒230ドル程度(LunaNode15カ月分)で自分の決済システムを構築できるはずです。
自宅サーバーを構築する際の流れ
まずは自宅サーバーを構築する際の注意点ですが、何を隠そう私は今まで自宅サーバーなんて構築したこともなければその方法も仕組みも全然イメージができないド素人です!
なんだかんだ色々と調べてみたところ、自宅サーバーを構築&公開する流れとしては以下のような感じ。
・ネット上から自宅サーバーマシンへのリクエストを受け、それに対して返答する。
・自宅サーバーへのリクエストを受けるためには自宅サーバーの住所、すなわち「グローバルIPアドレス」を把握し公開する必要がある。
・グローバルIPアドレスは数字「142.250.196.142」なので覚えにくい、これを覚えやすくするためにドメイン名を紐づけている【142.250.196.142=Google.com】
・グローバルIPアドレスは契約しているネット回線(プロバイダ)によっては固定ではなくてコロコロ変わるケースがある。
・グローバルIPアドレスが変わるとドメイン名との紐づけ・リクエストを受けれなくなる、しかしアドレスが変わってもドメイン名との紐づけを随時更新してくれるDDNS(ダイナミックドメインネームシステム)というものを使えば解決できる。
・外部から自宅サーバーマシンへのリクエストを受け付けれるように一部ポート番号を開放する必要がある(ルーターとサーバー側のファイアウォールのポートを開ける)
素人がザックリと調べただけなので怪しい所があるかもしれないが、ラズパイ上で構築したBTCPayサーバにグローバルIPアドレスと紐づけたドメインを与えて公開することでネット上で決済を受け付けることができるといった感じだ。
自宅サーバーを公開することの注意点・デメリット
上記の流れ見るとWordpressブログを立ち上げた時の事を思い出し、意外と難しくないのでは?と感じた(サーバーをレンタルしてドメイン名を取得、紐づけて公開)
しかし今回はレンタルサーバーではない、自宅にあるサーバーを公開するのだから色々と気を付けなければならない。
自宅のグローバルIPアドレスを公開するということは自宅のおおよそな位置情報や、アクセス履歴などと紐づけることが可能になるので匿名性という点では懸念点が多い。
この辺りは自宅サーバーの前にプロキシ(代理)サーバーを経由させることで解決できるらしい。
他にも自宅サーバーマシンへのリクエストが通るように経路を開けているのでパスワードやセキュリティをしっかりしておかないと自宅サーバーマシンやそれに繋がる自宅ネットワーク機器まで危険となる恐れがある(多分)。
こういう面を考えると外部のVPSサービスでサーバーを立ち上げるのが手軽で安全と言える。それでもやっぱり手元に置いておきたいというのは自分だけだろうか?
自宅サーバーの公開は契約している回線によっては厳しい場合も…
とりあえず自宅サーバーを公開する流れと注意点は分かった、まずはやってみよう!それから考えよう!
そう思っていたのだが、少し前に書いたように契約している回線によってはグローバルIPアドレスが固定されていない場合がある。
これはDDNSで解決できるのだが、さらに問題なのは契約している回線プロバイダ(ISP:インターネットサービスプロバイダ)によってはポート設定ができないケースがあるのだ…
私が契約している楽天ひかりでは次世代高速通信サービスとしてIPv6クロスパス接続が可能で、実際これを利用することでフレッツ光回線でありながらかなりの高速通信ができている。
しかしこのIPv6サービスを利用した場合、ポートの設定はプロバイダ側でしか変更できないらしい…(別のプロバイダだとIPv6でも割り当てられた5ポートは設定できたりする)
ポート設定ができないということはせっかくサーバーを公開してもリクエストが弾かれてしまう…
結局楽天ひかりでIPv6クロスパスを利用して自宅サーバーを構築する方法を見つけることはできず諦めかけたのだが、楽天ひかりでは従来のPPPoE(IPv4)接続も可能ということでそちらで試してみることにした。
以下の図のようにIPv6クロスパスでの高速通信を使いながら、PPPoEパススルー機能を利用して余っていたルーターでPPPoE IPv4接続をするという2重ルーター・疑似2回線方式とした。
楽天ひかり回線でもPPPoE IPv4の場合はこちらでポートの開放や転送設定が出来るので旧ルーターに繋げば自宅サーバーを公開することができるわけだ。
また普段使いのクロスパスネットワークと分けることでセキュリティ面が向上、普段使い端末ではVPNを利用することで匿名性も確保できる。
ただ難点はPPPoEの場合回線速度が遅すぎるということ…(IPv6だと200Mbpsは出る)
まぁ動画配信をするわけでもないのでこれくらいでもなんとかなるはず、ブロックチェーンの同期中はIPv6回線を利用すればOK。
第1回ということで今回は自宅BTCPayサーバー構築前の注意点や構築環境に関して書きましたが、正直一番ネックというかトラブルの元になるのが利用している回線・ルーターだと思います。
こればっかりは人によって様々なので、BTCPayサーバー用の機器をそろえる前に自身の回線環境や注意点を確認し公開できる状況なのか判断することが大事だと思いました。
次回はラズパイへのインストール手順などをまとめたいと思いますが、いかんせん素人ですので本記事も含めてDon't Trust Verifyでオナシャス!