はじめに
こちらはRaspberry Pi と LINE messaging API で作る監視カメラシリーズ第10弾です。
ここではNgrokの準備をします。
写真をLINEに送信するには
前提として、ラズパイからLINE Messaging API で写真を送信する場合、一度写真をWebに公開し、公開したURLをMessaging API に送る必要があります。
その公開する方法で候補にあがったのが、
・クラウドストレージサービス(Google Cloud Storage等)に画像をアップロードし公開する
・ラズパイでWebサーバー(Apache等)を構築して外部公開する
です。
過去にAWSのEC2にてApacheを使用した経験(趣味の範囲です)があったため、最初はラズパイでWebサーバー構築を行う方向で検討しました。
ですが、外部公開することのセキュリティ面に不安を感じました。
しかし、さらに調べる中でNgrokというトンネリングサービスを知りました。
Ngrokとは
私も使用している範囲しか分かりませんが、便利だと言うことは分かります。
どんなサービスかというと、
Ngrokとはローカルのサーバーを安全にインターネット上に公開できるトンネリングサービスです。
つまり、ローカルのWebサーバー(ポート)をNgrokを経由して安全に公開できます。
しかも無料です。
※無料だとセッションの更新で公開するURLが変わりますが、私が使用している2〜3ヶ月ほどは変更されていません。なので試す範囲での使用や、定期的に手動更新する手間が嫌でなければ無料で十分使用できます。
そしてなにより、すごく簡単に使用できます。
Ngrokを使うには
Ngrokを使用するまでの手順はざっくり次の通りです。
- Ngrokアカウントの作成
- ngrokをラズパイにインストール
- 認証トークンの紐付け(コマンドでちょちょっとするだけ)
以上です。
この後は、使いたいときにコマンド1つですぐ使用できます。
では、手順です。
1.Ngrokアカウントの作成
PCでngrok公式サイトにアクセスし、右上の「Sign up」からアカウントの作成する
↓
確認メールが届いたら、メールのリンクをクリックして認証する
↓
登録が完了したら、ログインする
↓
ログインすると、ngrokのダッシュボード画面があるのでそこの「Your Authtoken」を確認する
※このAuthtokenをラズパイにインストール後の紐付けで使用するので、メモします。
2.ngrokをラズパイにインストール
公式サイト内の「Setup & installation」を参考にインストールしていきます。
「Agents」の下の「RaspberryPi」をクリックします。
下にこのような画面が表示されますので
ラズパイにsnapコマンドでインストールします。

snapが使えるかの確認はこちらで確認します。snap --versionバージョンが表示されたら使えます。
snapが入っていない場合は下記のコマンドでsnapdをインストールします。sudo apt update sudo apt install snapd -yその後、一度ラズパイを再起動したらOKです。
3. 認証トークンの紐付け
snapコマンドでインストールしたら、そのまま公式ページのインストールの説明に書いてあるコマンドでAuthtokenを紐付けします。
ngrok config add-authtoken (ご自分のトークンが書いてあります)
実行したら紐付けは完了です。
インストール直後にngrokのコマンドが見つからないと出た場合は、ターミナルを一度閉じて開き直して実行してみて下さい。たまにsnapサービス自体がパスを認識していないことがあるみたいです。(私はこれで解決しました)
試しに動作確認
動作確認とURLを確認します。
次のコマンドを実行します。
ngrok http 8080
ngrokコマンドがcommand not foundとでたら次のコマンドでPATHに入れましょう。sudo mv ngrok /usr/local/bin/
正常に動作すると次のようなForwardingと書かれた行があります。
Forwarding https://xxxxxx.xxx.xxx -> http://localhost:8080
この行のhttps://xxxxxx.xxx.xxxがトンネリングにより公開されるURLです。
次から使うのでついでにメモしておきましょう。
※セッションの更新でURLが変更されたと思ったら確認しましょう。
ngrokを終了するときはctr + c です。
さいごに
Ngrokは本当に便利なサービスだと思いました。
こんな便利なサービスを作ってくれる方々を尊敬します。
