このトピックでは、Elastic Compute Service (ECS) インスタンスでホストされている Web サイトにアクセスできない場合の、迅速なトラブルシューティング方法について説明します。
問題の説明
ECS インスタンスでホストされている Web サイトにアクセスしようとすると、次の問題が発生することがあります:
「ICP 登録がないか、接続されていません」または「ウェブサイトのコンテンツが ICP 登録情報と一致しません」というプロンプトが表示されます。
ブラウザは 403、404、502、503 などの数値エラーコードを返します。
初めて構築したウェブサイトにアクセスできません。
以前は実行されていたウェブサイトにアクセスできなくなります。
Server Load Balancer (SLB) インスタンスを使用して ECS インスタンス上のウェブサイトにアクセスできません。
Alibaba Cloud CDN によって高速化された後、ウェブサイトにアクセスできません。
Web Application Firewall (WAF) によって保護されているウェブサイトにアクセスできません。
原因
ECS インスタンスでホストされている Web サイトにアクセスできなくなる原因は多数あります。このセクションでは、一般的な原因をリストアップします。実際の原因は、トラブルシューティングの結果によって異なります。
TCP ポート 80 が利用できません。
Web サービスが利用できません。
ウェブサイトに ICP 登録がありません。
Web サイトのリソースまたはバックエンドサービスで問題が発生している。
Web サイトが標準的な手順に従って構築されていない。
オリジンサーバーで問題が発生します。
Web サイトへのアクセス問題を引き起こす要因や症状は多数あります。ECS インスタンスでの Web サイトアクセス失敗の原因に関する詳細については、「ECS インスタンスのアクセス例外に関するトラブルシューティングとガイドライン」をご参照ください。
トラブルシューティング
ECS インスタンスでの Web サイトアクセス失敗には、さまざまな症状と原因があります。以下のいずれかの方法を選択して、問題を迅速にトラブルシューティングできます。
フローチャートを使用したトラブルシューティング
フローチャートの手順に従って問題をトラブルシューティングします。

症状に基づいたソリューションの選択
以下にリストされている一般的な症状については、対応するソリューションを迅速に選択できます。
「ICP 登録がないか、接続されていません」または「ウェブサイトのコンテンツが ICP 登録情報と一致しません」というプロンプトが表示されます。
Web サイトの ICP 登録を取得する前に、IP アドレスまたはドメイン名を使用して Web サイトへのアクセスを有効にすることはできません。Web サイトの IP アドレスまたはドメイン名の ICP 登録を申請する必要があります。詳細については、「一般的な ICP 登録」をご参照ください。
ブラウザは 403、404、502、503 などの数値エラーコードを返します。
ブラウザが数値エラーコードを返す場合、通常はクライアントとサーバー間のネットワーク接続は安定しているものの、Web サイトのリソースまたはバックエンドサービスに問題があることを示しています。
初めて構築したウェブサイトにアクセスできません。
標準的な Web サイト構築手順に従っていることを確認してください。手順の詳細については、「クイックスタート」をご参照ください。
以前は実行されていたウェブサイトにアクセスできなくなります。
Web サービスとバックエンドデータベースをチェックして、それらが実行中であることを確認してください。サービスが実行されていない場合は、そのログでエラーメッセージを確認し、それらを使用して問題を修正してください。
説明Web サービスのログファイルは通常、access.log または error.log という名前です。詳細については、ご利用の Web サービスの公式サイトをご参照ください。
PHP、Java、Tomcat、またはデータベースなどのバックエンドサービスの問題も、Web サイトにアクセスできなくなる原因となる可能性があります。この場合、ウェブサイト管理者にご連絡ください。
SLB インスタンスを使用して ECS インスタンス上のウェブサイトにアクセスできません。
ECS インスタンスのフロントエンドで SLB インスタンスが使用されている場合、問題は SLB インスタンスのリスナーポリシーの問題が原因である可能性があります。詳細については、「SLB インスタンス経由で ECS インスタンス上の Web サイトにアクセスできない」をご参照ください。
CDN によって高速化された後、ウェブサイトにアクセスできません。
まず、問題がオリジンサーバーにあるかどうかを判断します。詳細については、「CDN 高速化後にアクセスできない Web サイトのトラブルシューティング手順」をご参照ください。
WAF によって保護されているウェブサイトにアクセスできません。
まず、問題がオリジンサーバーにあるかどうかを判断し、次に WAF からの誤検知であるかどうかを判断します。詳細については、「Web Application Firewall (WAF) によって保護されている Web サイトにアクセスできない」をご参照ください。
ソリューション
このセクションでは、TCP ポート 80 または Web サービスが利用できないことが原因で発生する問題のソリューションについて説明します。以下の手順に従ってください:
TCP ポート 80 または Web サービスが利用できないため、Linux インスタンスで実行されているウェブサイトにアクセスできません
以下の手順では、CentOS 7 を実行しているインスタンスを例として使用します。実際の操作は、ご利用のオペレーティングシステムによって異なる場合があります。
TCP ポート 80 が利用できません
Linux インスタンスにリモート接続します。
詳細については、「ECS リモート接続方法の概要」をご参照ください。
次のコマンドを実行して、TCP ポート 80 がリッスンされているかどうかを確認します:
netstat -an | grep 80次のコマンド出力例は、Web サービスが TCP ポート 80 で起動しており、チェックが正常に完了したことを示します。問題が発生した場合は、「Web サービスの利用不可」を参照して問題を解決してください。
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN # すべてのネットワークインターフェースでリッスン中tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN # ローカルマシンでリッスン中説明127.0.0.1 でのリッスンは、Web サービスへの外部アクセスを妨げます。この場合、ローカルマシンのみがサービスにアクセスできます。すべてのネットワークインターフェースでリッスンするように構成を変更する必要があります。
TCP ポート 80 が許可されているか、接続が正常かどうかを確認します。
インスタンスのセキュリティグループが TCP ポート 80 のトラフィックを許可しているかどうかを確認します。許可されていない場合は、セキュリティグループルールを追加する必要があります。詳細については、「セキュリティグループルールの追加」をご参照ください。
インスタンスのオペレーティングシステムのファイアウォールが有効になっているかどうかを確認します。有効になっている場合は、無効にして代わりにセキュリティグループを使用できます。詳細については、「Linux インスタンスでのシステムファイアウォールの管理」をご参照ください。
telnet コマンドと traceroute コマンドを使用して、TCP ポート 80 の接続性をトレースできます。詳細については、「サーバーに ping できる場合のポート接続問題のトラブルシューティング方法」をご参照ください。
ECS インスタンスに十分な帯域幅があるかどうかを確認します。
詳細については、「Linux インスタンスのシステム負荷をクエリして分析する」をご参照ください。
帯域幅が不十分な場合は、インスタンスの帯域幅をスペックアップできます。詳細については、「帯域幅構成の変更」をご参照ください。
Web サービスが利用できません
Linux インスタンスにリモート接続します。
詳細については、「ECS リモート接続方法の概要」をご参照ください。
Web サービスのログを確認します。
Apache のエラーログを表示します。
エラーログに基づいて問題を分析し、トラブルシューティングできます。
CentOS または Alinux:
less /var/log/httpd/error_logUbuntu:
less /var/log/apache2/error.log
Nginx のエラーログを表示します。
エラーログに基づいて問題を分析し、トラブルシューティングできます。
less /var/log/nginx/error_log
topコマンドを実行して、インスタンスの実行ステータスを表示します。異常なプロセスがないか確認します。次の図は、サンプルコマンドの出力を示しています。

load averageパラメーターの0.01、0.02、0.03は、それぞれ過去 1 分、5 分、15 分の平均システム負荷を表します。一般的に、この値を論理 CPU の数で割った値が 5 を超える場合、システムは過負荷状態です。具体的な値は、サーバーの CPU 処理能力とシステム使用状況によって異なります。この場合、プロセスリストで%CPUの値が高いプロセス ID (PID) を見つけ、異常なプロセス (COMMANDパラメーターの値) を特定し、システムの実際の状況に基づいて問題を解決します。コンソールでインスタンスのモニタリング情報を表示します。
詳細については、「インスタンスのモニタリング情報を表示する」をご参照ください。
インスタンスに十分な CPU とメモリがあるかを確認します。不足している場合は、「Linux ECS インスタンスでの高い CPU 使用率のトラブルシューティング」でソリューションをご参照ください。
インスタンスに十分な帯域幅があるかどうかを確認します。ない場合は、インスタンスの帯域幅をスペックアップできます。詳細については、「帯域幅構成の変更」をご参照ください。
次のコマンドを実行して、インスタンスのポート 80 に TCP 接続が多すぎるかどうかを確認します。
netstat -anp | grep ':80 ' | grep tcp以下は応答のサンプルです。

次のコマンドを実行して、すべての TCP 接続をカウントします。
netstat -anp |grep tcp |wc -lTCP 接続の総数を、
net.ipv4.tcp_max_tw_buckets構成ファイルの/etc/sysctl.confパラメーターの最大値と比較します。TCP 接続の総数がこの最大値を超える場合は、次の操作を実行できます:vi /etc/sysctl.confコマンドを実行して/etc/sysctl.conf構成ファイルを編集し、net.ipv4.tcp_max_tw_bucketsパラメーターを確認します。
TCP 接続数が多く、制限を超える可能性が高いことを確認した場合は、必要に応じて
net.ipv4.tcp_max_tw_bucketsパラメーターの値を増やすことができます。sysctl -pコマンドを実行して、構成を適用します。
TCP ポート 80 または Web サービスが利用できないため、Windows インスタンスで実行されているウェブサイトにアクセスできません
以下の手順では、Windows Server 2012 R2 を実行しているインスタンスを例として使用します。実際の操作は、ご利用のオペレーティングシステムによって異なる場合があります。
TCP ポート 80 が利用できません
Windows インスタンスにリモート接続します。
詳細については、「ECS リモート接続方法の概要」をご参照ください。
コマンドプロンプトを開きます。
デスクトップの左下隅にある
アイコンをクリックし、
アイコンをクリックします。検索ボックスに
cmdと入力します。
[コマンド プロンプト] をクリックします。
コマンドプロンプトが開きます。

次のコマンドを実行して、TCP ポート 80 がリッスンされているかどうかを確認します:
netstat -ano | findstr :80次のコマンド出力例は、Web サービスが TCP ポート 80 で起動しており、チェックが正常に完了したことを示します。問題が発生した場合は、「Web サービスの利用不可」を参照して問題を解決してください。
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1172 # すべてのネットワークインターフェースでリッスンしていることを示します TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 1172 # ローカルでリッスンしていることを示します説明127.0.0.1 でのリッスンは、Web サービスへの外部アクセスを妨げます。この場合、ローカルマシンのみがサービスにアクセスできます。
netsh http delete iplisten ipaddress= 127.0.0.1:80コマンドを実行して、すべてのネットワークインターフェースでリッスンするように構成を変更できます。TCP ポート 80 が許可されているか、接続が正常かどうかを確認します。
インスタンスのセキュリティグループがポート 80 のトラフィックを許可しているかどうかを確認します。許可されていない場合は、セキュリティグループルールを追加する必要があります。詳細については、「セキュリティグループルールの追加」をご参照ください。
インスタンスのオペレーティングシステムのファイアウォールが有効になっているかどうかを確認します。有効になっている場合は、無効にして代わりにセキュリティグループを使用できます。詳細については、「Windows システムファイアウォールポリシーの構成ガイド」をご参照ください。
telnet コマンドと tracert コマンドを使用して、ポート 80 の接続性をトレースできます。詳細については、「サーバーに ping できる場合のポート接続問題のトラブルシューティング方法」をご参照ください。
ECS インスタンスに十分な帯域幅があるかどうかを確認します。
詳細については、「Windows インスタンスの高いまたは完全な帯域幅と CPU 使用率のトラブルシューティング」をご参照ください。
帯域幅が不十分な場合は、インスタンスの帯域幅をスペックアップできます。詳細については、「帯域幅構成の変更」をご参照ください。
Web サービスが利用できません
Windows インスタンスにリモート接続します。
詳細については、「ECS リモート接続方法の概要」をご参照ください。
Web サービスのログを確認します。
方法 1: ログフォルダーを参照します。
Windows Server 2008 R2 以降のログパスは
C:\inetpub\logs\LogFilesです。方法 2:インターネットインフォメーションサービス (IIS) マネージャーの確認
[ > Windows 管理ツール] [> インターネットインフォメーションサービス (IIS) マネージャー] を選択します。Web サービスのホームページで、IIS セクションに移動し、ロギング をクリックします。次に、操作 列で 参照 をクリックします。

ロギング ページで、必要に応じてログの保存パスを変更できます。パスをコピーし、ファイルエクスプローラー に貼り付けて、
Enterキーを押します。ファイルエクスプローラー で対応するログフォルダを表示できます。

タスクマネージャーを使用して、インスタンスの実行ステータスを表示し、異常なプロセスを確認できます。
デスクトップを右クリックし、[タスクマネージャー] を選択します。
[プロセス] タブをクリックします。
タスクマネージャーでプロセスの CPU とメモリ情報を表示して、異常なプロセスを特定できます。

コンソールでインスタンスのモニタリング情報を表示します。
詳細については、「インスタンスのモニタリング情報を表示する」をご参照ください。
インスタンスに十分な CPU とメモリがあるかを確認します。不足している場合は、「Windows インスタンスでの高い帯域幅と CPU 使用率のトラブルシューティング」でソリューションをご参照ください。
インスタンスに十分な帯域幅があるかどうかを確認します。ない場合は、インスタンスの帯域幅をスペックアップできます。詳細については、「帯域幅構成の変更」をご参照ください。
インスタンスのポート 80 に TCP 接続が多すぎるかどうかを確認します。
コマンドプロンプトを開きます。
デスクトップの左下隅にある
アイコンをクリックし、
アイコンをクリックします。検索ボックスに
cmdと入力します。
[コマンドプロンプト] をクリックします。
コマンドプロンプトが開きます。

次のコマンドを順番に実行して、TCP 接続をカウントします。
netstat -n |find /i "time_wait" /c netstat -n |find /i "close_wait" /c netstat -n |find /i "established" /cデフォルトでは、動的ポートの数は 16,384 で、範囲は 49152 から 65535 です。
close_wait状態の接続数が動的ポートの数に近い場合、それは多くのclose_wait接続が解放されていないことを示します。次のステップに進み、レジストリを変更して Time-Wait の期間を短縮できます。
レジストリエディターを開きます。
デスクトップの左下隅にある
アイコンをクリックし、
アイコンをクリックします。検索ボックスに
regeditと入力します。
[regedit] をクリックします。
レジストリエディターが開きます。

レジストリエディターで、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parametersパスに移動し、TcpTimedWaitDelayレジストリキーの値のデータを 10 進数値の30に設定します。TcpTimedWaitDelayキーが存在しない場合は、レジストリキーを作成してからその値のデータを変更します。以下の手順は、TcpTimedWaitDelayキーが存在しない場合の操作方法を示しています:レジストリエディターで、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parametersパスに移動します。空白の領域を右クリックし、新規 > DWORD (32 ビット) 値 を選択します。
TcpTimedWaitDelayと入力し、Enterキーを押します。TcpTimedWaitDelayレジストリキーを右クリックし、修正 をクリックします。
表示されるダイアログボックスで、10 進数 を選択し、値のデータ を
30に設定します。
[OK] をクリックします。