このトピックでは、Elastic Compute service (ECS) インスタンスにデプロイされたサービスにアクセスできないという問題をトラブルシューティングする方法について説明します。
考えられる原因とトラブルシューティング方法
次の表に、上記の問題の考えられる原因と、原因に基づいて問題をトラブルシューティングする方法を示します。
考えられる原因 | トラブルシューティング方法 |
サービスのポートは、ECSインスタンスのセキュリティグループルールによって許可されていません。 | |
サービスが無効または開始されていないか、サービスのポートがリッスンされていません。 | |
ECSインスタンスのファイアウォール設定が正しく設定されていません。 |
次のセクションでは、ECSインスタンスにデプロイされたNGINXにアクセスできない問題をトラブルシューティングする方法について説明します。 ポート80 (デフォルトのNGINXポート) が使用されます。 他のサービスをトラブルシューティングするには、コマンドのサービス名とポート番号を実際の値に置き換えます。
ECSインスタンスのセキュリティグループルールの確認
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
インスタンスリストページで、セキュリティグループルールを確認するインスタンスを見つけ、インスタンスIDをクリックします。
[インスタンスの詳細] ページで、セキュリティグループリスト タブをクリックします。
セキュリティグループリスト タブで、ルールを確認するセキュリティグループを見つけ、セキュリティグループIDをクリックします。
[アクセスルール] セクションで、インバウンド方向でポート80が許可されているかどうかを確認します。
ポート80が許可されていない場合は、ポート80を許可するインバウンドルールを追加します。 詳細については、「セキュリティグループルールの追加」をご参照ください。
ポート80が許可されている場合は、サービスのステータスとサービスのポートのリスニングステータスの確認セクションの操作を実行します。
サービスのステータスとサービスのポートのリスニングステータスの確認
Linux インスタンス
この例では、CentOS 7.9を実行するECSインスタンスが使用されます。 操作は、Linuxインスタンスのオペレーティングシステムのバージョンによって異なる場合があります。
Linuxインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、NGINXのステータスを確認します。
systemctl status nginx
次のサンプルコマンド出力は、NGINXが開始されたことを示します。
NGINXが起動していない場合は、次のコマンドを実行してNGINXを起動します。
systemctl start nginx
次のコマンドを実行して、ポート80がリッスンされているかどうかを確認します。
netstat -an | grep 80
次のサンプルコマンド出力は、ポート80が期待どおりにリッスンされていることを示します。 この場合は、[ECSインスタンスのファイアウォール設定の確認] セクションの操作を実行します。
前述のコマンド出力が返されない場合、ポート80はリッスンされません。 ポートはすでに別のサービスによって使用されている可能性があります。 サービスからポートを解放して、NGINXがポートでリッスンできるようにすることができます。 別のポートでリッスンするようにNGINXを設定することもできます。
Windows インスタンス
この例では、Windows Server 2012を実行するECSインスタンスが使用されています。 他のバージョンのWindows Serverを実行するインスタンスの操作も同様です。
Windowsインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したWindowsインスタンスへの接続」をご参照ください。
[開始] > [実行] を選択します。
service.msc
と入力し、[OK] をクリックして [サービス] ウィンドウを開きます。NGINXのステータスを確認してください。
NGINXにステータスが表示されない場合は、NGINXを右クリックし、[開始] を選択します。
NGINXのステータスが実行中である場合、ステップ4に進む。
Windows PowerShellで次のコマンドを実行して、ポート80がリッスンされているかどうかを確認します。
netstat -ano | findstr "80"
次のサンプルコマンド出力は、ポート80が期待どおりにリッスンされていることを示します。 この場合は、[ECSインスタンスのファイアウォール設定の確認] セクションの操作を実行します。
前述のコマンド出力が表示されない場合、ポート80はリッスンされません。 ポートはすでに別のサービスによって使用されている可能性があります。 サービスからポートを解放して、NGINXがポートでリッスンできるようにすることができます。 別のポートでリッスンするようにNGINXを設定することもできます。
ECSインスタンスのファイアウォール設定の確認
Linux インスタンス
この例では、CentOS 7.9を実行するECSインスタンスが使用されます。 操作は、Linuxインスタンスのオペレーティングシステムのバージョンによって異なる場合があります。
Linuxインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
次のコマンドを実行して、ファイアウォールのステータスを確認します。
systemctl status firewalld
コマンド出力に
Active: inactive (dead)
メッセージが表示された場合、ファイアウォールは無効になります。 この場合、追加の操作は必要ありません。コマンド出力に
Active: active (running)
メッセージが表示されると、ファイアウォールが有効になります。 この場合、ステップ3に進む。
次のコマンドを実行して、ファイアウォールで許可されているポートを確認します。
firewall-cmd --list-all
コマンド出力にports: 80/tcpメッセージが表示された場合、ファイアウォールはポート80を許可します。 この場合、追加の操作は必要ありません。
コマンド出力にports: 80/tcpメッセージが表示されない場合は、次のコマンドを実行してポート80を許可します。
firewall-cmd --zone=public --add-port=80/tcp --permanent
success
が返された場合、TCPポート80が許可されます。
Windows インスタンス
この例では、Windows Server 2012を実行するECSインスタンスが使用されています。 他のバージョンのWindows Serverを実行するインスタンスの操作も同様です。
Windowsインスタンスに接続します。
詳細については、「パスワードまたはキーを使用したWindowsインスタンスへの接続」をご参照ください。
デスクトップの左下隅にあるアイコンをクリックして、サーバーマネージャーを起動します。
[サーバーマネージャー] ウィンドウの右上隅で、[ツール] > [セキュリティが強化されたWindows Defenderファイアウォール] を選択します。
ファイアウォールの状態を確認してください。
ファイアウォールが無効の場合、追加の操作は必要ありません。
ファイアウォールが有効になっている場合は、次の操作を実行します。
[セキュリティ強化されたWindowsファイアウォール] ページで、[インバウンドルール] をクリックします。
Windowsリモート管理-互換モード (HTTP-In) のステータスを確認します。
Windowsリモート管理-互換モード (HTTP-In) のインバウンドルールが有効になっている場合、追加の操作は必要ありません。
Windowsリモート管理-互換モード (HTTP-In) のインバウンドルールが無効になっている場合は、Windowsリモート管理-互換モード (HTTP-In) を右クリックし、[ルールの有効化] を選択します。