脱Tor!tailscaleでなんとかなる!②eショップ向け編-GCPの説明とtailscale導入まで-
はじめに
前回の記事でTorを使用せずにUmbrelのアプリとして稼働しているBTCPayにアクセスする方法をご紹介しました。
ただ、この方法ですとtailscaleネットワークに参加している2拠点間でしか通信できないため、eコマースサイトにLN決済を導入するとかブログに投げ銭ボタンを仕込むなどといった使い方はできませんでした。
今回はこれらのことをなるべく安く実現したいと思います。
上記の動画は左が着金用のumbrel、中央が送金用のumbrel、右は投げ銭ボタンを実装したwebサイトで、これまではTor越しでなければ動作しなかったものを通常のWEBで動かしているデモとなります。
今回は記事が長くなるのできりのいいところで分けて投稿していきます。
参考にした資料(元ネタ)
この記事で紹介されている方法を少しアレンジしています。
ほぼ同じことを行っているtanakeiさんの記事です。
この記事で紹介されているように年額5.99ユーロ(7~8000円)で専用のVPCを借りれば簡単で十分な性能のBTCPayが手に入りますが、今回は性能を犠牲にしてでも安さにこだわります。小さく始めるには安さが大事。安さイズ神。
私の場合、そこそこ動くものがドメイン代として年1000円払うだけで手に入れることができました。
作戦概要
本作戦の要旨をまとめます
- 無料でグローバルIPが付与されたVPCを用意する(図の左側)
- VPC内でリバースプロキシ(nginx)を稼働させ、独自ドメイン+Letsencryptでhttpsで通信できるようにする
- 独自ドメインのDDNS設定を行いVPCを独自ドメインで常時公開する
- VPC内にtailscaleを導入し自宅ラズパイとVPCが通信できるようにする(図中央)
- VPCにアクセスすると自宅ラズパイのコンテンツ(BTCPay)が応答する(図右側)
以上です。
VPC、nginx、Letsencrypt、DDNSと、私には特盛MAXな内容でしたが、一応稼働させることができましたので本記事を書き始めた次第です。
必要な物
- Google Cloud Platformのアカウント(=Googleのアカウント)
- 独自ドメイン
- BTCPayが稼働中のumbrelマシン
- 回線は何でもOK、格安SIMでも問題なし
先人達が紹介してくれている方法では、「グローバルIPを使用できる通信回線」が必要なのですが今回の方法ではこの点をtailscaleを使う事で突破します。
では始めていきましょう。
Umbrel側で行う作業
① APPストアからBTCPayを有効にしておく
この点は何も言うことはない。クリックしてください。umbrel便利。
② APPストアからTailscaleを有効にし、適当なアカウントでログインをしておく
インターネット上にLAN内の機器を間接的にとはいえ公開するので、念のため普段使いのtailscaleアカウントとは違う、別のアカウントでログインしておきましょう。
また、tailscaleによって割り当てられたipアドレスをアドミンコンソールなどで確認し、メモっておきます。後で使います。
アドミンコンソールについては前回の私の記事を参考にしてください。
Umbrel側で行う作業はなんと以上です。
VPC側で行う作業
無料のVPCであればなんでもいいと思うのですが、当記事ではGoogle Cloud Platform(以下GCP)を利用します。
グーグルのアカウント1つにつき、無料枠内でVPCを1つ持つことができます。
また、このVPCにはグローバルIPが付与されていますので、即インターネットに公開することができます。
今回はGCP無料枠内で最も日本向けに性能がでる設定としたいので、
- オレゴン(us-west1~3のどれか)
- e2-micro(メモリ1GB)
- 標準永続ディスク30GB
のVPCを構築することにしました。
OSはDebianやUbuntuを選択しておけば無難だと思います。
私は最新版のDebianを選択しています。
GCP無料枠の構築方法については長くなってしまうので思い切ってカットです。需要があれば追記しますが、ググれば豊富に記事は見つかるので大丈夫、たぶん。
httpとhttps通信ができるようにファイアウォールの設定をする必要があるのでお忘れなく。
GCPでの作業
GCPの場合、VPC管理画面にSSH接続ボタンがあるので、これをクリックすればVPCにログインできます。
①スーパーユーザー(root)になる
sudo su -
特に断りがなければ以下の作業は全てrootで行っています。
② OS内の各ソフトウェアを最新状態にする
apt update
しばらく待ち、操作可能になったら、
apt upgrade
Yes/Noを聞かれたらyを入力してエンターでOKです。
初回はかなり待つことになるのでお風呂にでも入ってきましょう。
③ nginx導入
apt install nginx
④ tailscale導入
tailscale公式サイトに導入方法があるのでVPCのOSに合わせた方法を確認してください。大体以下の入力でいけると思います。
curl -fsSL https://tailscale.com/install.sh | sh
OSの違いなどを自動判定してくれるイケてる導入方法なのですが、もし上手くいかなかった時は上記公式サイトに手作業で導入する方法が掲載されています。手作業でも入力するコマンドは5行くらいです。
⑤ 準備しておいたアカウントでtailscaleにログイン
tailscale up
上記コマンドを実行するとURLが表示されます。
このURLをブラウザにコピペしてアクセスすると、tailescaleのログイン画面になりますので、準備しておいたアカウントでログインします。
ちゃんとtailscaleネットワークに接続できているか確認してみます。
tailescale ip -4
IPアドレスが表示されたなら、ちゃんと接続されています。
⑥ 疎通確認
LAN内のラズパイと通信できるか確認します。vpc側で以下を実行します。
ping [ラズパイのtailscaleでのIPアドレス]
反応が返ってきたなら成功です。
次回予告
今回の記事はここまでにします。
- 残る作業は、
- (該当者のみ)独自ドメインの取得
- GCPにおけるDDNS設定
- LetEncriptからVPC用の証明書を取得
- Nginxのリバースプロキシ設定
です。
続く
役に立つ記事ありがとうございます! GCPの無料インスタンス、f1-microからe2-microに変わってメモリも1GBに増えてたんですね、素晴らしい。^^)