はじめに
GCE のVMインスタンス上に「Unleash」を構築しましたが、
ファイアウォールルールの設定をせずにUnleash のWeb サービスにアクセスしようとしたため、接続できない問題が発生しました。
本記事では、この事象と対応方法について紹介します。
なお、Unleash 以外のWeb サービス構築にも応用できる内容なので、同じ問題に直面した際の参考になれば幸いです。
当時の環境
GCE 上にVM インスタンスを作成しており、その上にUnleash を構築しました。
Unleashの構築手順は、https://github.com/Unleash/unleash?tab=readme-ov-file#getting-started-with-unleash に従いました。
発生事象
- $ docker compose up -d でUnleash を起動
- ブラウザからhttp://{VMインスタンスの外部IP}:4242 にアクセス(4242 はUnleash のポート番号)
しかし、期待していたUnleash のログイン画面が表示されず、接続失敗の画面が表示されました。
原因の特定
まず、URLやポート番号が正しいか、Unleash が起動しているかを確認し、どちらにも問題がないことを確認しました。
次に、インスタンスのファイアウォール設定を確認したところ、設定が行われていないことが判明しました。
このため、インターネットからのネットワークトラフィックがすべてブロックされ、ポート4242 へのアクセスが失敗していました。
解決手順
以下の手順でファイアウォールルールを作成し、 アクセスを許可しました。
-
GCP コンソールで「VPCネットワーク」→「ファイアウォール」に移動
-
「ファイアウォールルールを作成する」を選択
-
- ターゲットタグ
- 識別しやすい名称を設定
- 送信元IP 範囲
- 0.0.0.0/0
- アクセス制限が必要な場合は、特定のIPアドレス範囲を指定
- プロトコルとポート
- TCP を選択し、ポート番号に4242 を入力
- ターゲットタグ
-
VM インスタンス のネットワークタグに、作成したファイアウォールルールのネットワークタグを設定
-
Unleash を再起動
最後に
ファイアウォールの設定を失念していたため、原因特定に時間がかかりました。
今後同様の問題が発生した場合はまずファイアウォールの設定を確認するようにしたいと思います。
この記事が同じようなトラブル解決の参考になれば幸いです。
参考記事