Precena Tech Book
コーポレートサイト採用サイト
  • はじめに
  • ソフトウェア開発
    • 開発環境構築
      • Homebrew
        • Homebrew用語の意味
      • ngrok
        • ngrokの導入
        • ngrokのアップグレード(v2 to v3)
      • Slack
        • Slackの/remind コマンドの形式
        • 対面での相談を気軽にするためのSlack設定
      • AWS CLI
      • Ruby
      • Scala
      • Prettier
      • zsh
        • zsh-completion
      • Mac
        • M1 Macでの開発環境構築(rosetta 無し)
    • バックエンド
      • OpenAPI
        • OpenAPI 定義ファイル分割のすゝめ
      • Ruby on Rails
        • ActiveRecordのfind_or_initialize_byメソッドにブロックを渡したときの挙動
        • Railsのアプリケーションサーバーのプロセス数とスレッド数の設定方法
        • Railsを6.1系から7.0系へアップグレードした時に調査したこと
        • schema.rbで差分が発生する事例とその復旧について
        • tmux + overmind を利用して、複数システムを1コマンドで起動できるよう設定する
        • Rails Migrationチートシート
        • GithubのプライベートリポジトリをGemfileで参照する方法
        • ActiveSupportのto_jsonメソッドの注意点
        • 危険なJSON出力を禁止するRuboCopカスタムルールの作成方法
      • Scala
        • Validated を直列に処理したい
      • DB
        • PostgreSQLにおける、削除行に対するロック獲得時の挙動
    • フロントエンド
      • React
        • Storybookを利用したビジュアルリグレッションテスト
  • インフラ開発
    • AWS
      • IAM
        • スイッチロールの設定手順
        • AWS CLIでのスイッチロールの設定手順
        • AWS Vaultを使ったスイッチロール設定手順
        • Github ActionsでIAMロールを利用してAWSリソースを操作する
      • ECS
      • SES
        • AWS SESメールボックスシミュレーターにて、カスタムヘッダや添付ファイル付きのテストEメールを送信する
      • CloudWatch
        • Amazon SNS + Slack Workflowを使って、CloudWatch Alarmの通知をSlackチャンネルへ投稿する
      • Lambda
        • lambrollでAWS Lambda関数をデプロイしたときのTips
    • Heroku
      • HerokuのStackの設定
      • Heroku Postgresの運用でよく使うコマンド集
  • セキュリティ
    • Web
      • Same Origin PolicyとCORS
      • 脆弱性診断 2社同時依頼実施記録
  • Mail
    • SPF、DKIM、DMARCを使用した迷惑メール対策
  • データ分析
    • データ分析プロセス
  • SaaS
    • Zendesk
      • 問い合わせフォームの項目をサービスごとに出し分け、各サービス担当者に自動で振り分けてメールで通知する
  • イベント
    • RubyKaigi
      • RubyKaigi 2023 に現地参加しました
    • EMConf
      • EMConfJP2025_参加レポート
  • やってみた
    • IoT
      • Raspberry Pi + PaSoRi + Python で、勤怠打刻マシンを作ってみた
  • Precena Tech Book 管理
    • コンテンツ執筆時のルール
  • 関連リンク
    • プレセナエンジニア公式Twitter
GitBook提供
このページ内
  • ngrokとは
  • ngrokのインストール
  • ngrokアカウントのサインアップ
  • auth tokenの設定
  • ngrokエージェントの起動
  • ngrokのサブドメインの固定
  • ngrokのアップデート

役に立ちましたか?

PDFとしてエクスポート
  1. ソフトウェア開発
  2. 開発環境構築
  3. ngrok

ngrokの導入

前へngrok次へngrokのアップグレード(v2 to v3)

最終更新 1 か月前

役に立ちましたか?

ngrokとは

()は、httpのトンネリングサービスです。

ngrokでホストされるURL(例:http://xxxx.ngrok.io/ )へのアクセスをローカル環境のwebサーバー(http://localhost:3000 など)にトンネリングしてくれます。

例えば、stripeやLINE、その他クラウドサービスのwebhook処理を開発する際に、インターネット上に本番やステージングのwebサーバーを構築する前に、ローカル開発環境でwebhookへの対応コードを実装、テストすることができるようになります。

この記事では、ngrokの開発環境を用意する手順を紹介します。

ngrokのインストール

でダウンロードして、インストールすることもできますが、インストールはmacOSの場合であれば、homebrewを使うほうが楽です。以下のコマンドでインストールできます。

% brew install --cask ngrok

ngrokアカウントのサインアップ

ngrokを使うためには、サービスの利用登録が必要なので、でサインアップを行ってください。

auth tokenの設定

サインアップするとにauthtokenが表示されているので、それをコピーして、以下のように、コンソールから設定します。

% ngrok authtoken <your-token>

そうすると、~/.ngrok2/ngrok.yml にtokenの値が書き込まれてサインアップしたngrokアカウントが認識されるようになります。

ngrokエージェントの起動

トンネリングを開始するためには、以下のようなコマンドを実行します。

% ngrok http 3000

これで、以下のような情報がコンソールに表示され、トンネリングに使えるURLが分かります。

ngrok by @inconshreveable                                                                                                                                                                                       (Ctrl+C to quit)
                                                                                                                                                                                                                                
Session Status                online                                                                                                                                                                                            
Account                       <your account name>(Plan: Basic)                                                                                                                                                                        
Update                        update available (version 2.3.40, Ctrl-U to update)                                                                                                                                               
Version                       2.3.35                                                                                                                                                                                            
Region                        United States (us)                                                                                                                                                                                
Web Interface                 http://127.0.0.1:4040                                                                                                                                                                             
Forwarding                    http://<your-random-subdomain>.ngrok.io -> http://localhost:3000                                                                                                                                             
Forwarding                    https://<your-random-subdomain>.ngrok.io -> http://localhost:3000                                                                                                                                            
                                                                                                                                                                                                                                
Connections                   ttl     opn     rt1     rt5     p50     p90                                                                                                                                                       
                              0       0       0.00    0.00    0.00    0.00                                                                                                                                                      
                                                                                               

この記事では <your-random-subdomain> と記載しましたが、ここに、トンネリングで使えるインターネットアクセス可能なURLが表示され、また、そのURLがローカルのhttp 3000番ポートにトンネリングされているのが分かります。

この一般公開されているURLをクラウドサービスのwebhookのエンドポイントとして指定しておけば、ローカル環境のwebサーバーを使って動作確認をしながら開発を行うことができます。

ngrokのサブドメインの固定

無償のアカウントでは、ngrokを起動するたびに、http://<your-random-subdomain>.ngrok.io の <your-random-subdomain> の部分がランダムなサブドメインになってしまい、そのたびに、クラウドサービス側の呼び出し先設定を更新しなければなりません。

これは、ngrokの有償登録をすることで固定化できます。有償登録をすると、以下のようにサブドメインを他のユーザーが使っていない任意の文字列に固定できます。

% ngrok http 3000 -subdomain=<任意の固定したいサブドメイン>

ngrokのアップデート

ngrok起動中のコンソールでCtrl+U でアップデートが開始されます。

本サイトの更新情報は、Twitterので発信しています。ご確認ください。

ngrok
エングロクと読む
公式サイト
公式サイト
ログイン後のページ
株式会社プレセナ・ストラテジック・パートナーズエンジニア公式アカウント