EC2 インスタンスでホストされているウェブサイトへの接続が遅い問題のトラブルシューティング方法を教えてください。
最終更新日: 2020 年 12 月 7 日
Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでパブリックウェブサイトを実行しているのですが、ウェブサイトへの接続が遅いです。解決方法を教えてください。
簡単な説明
インスタンスのリソースの使用率が高すぎると、インスタンスでホストされているウェブサイトへの接続が遅くなる可能性があります。以下をチェックして、インスタンスのリソースを過剰に活用していないことを確認します。
- インスタンスのシステムログで、メモリを使い果たしたまたはディスクがいっぱいになったエラーがないか確認します。
- インスタンスのシステムログに、ウェブサービスが正しく開始され、実行中であることが示されていることを確認します。
- インスタンスが CPU 使用率の制限内であることを確認する
- インスタンスにアタッチされた Amazon Elastic Block Store (Amazon EBS) ボリュームが IOPS またはスループットの上限に達していないことを確認します。
解決方法
インスタンスのシステムログで、メモリを使い果たしたまたはディスクがいっぱいになったエラーがないか確認する
- インスタンスのシステムログをチェックして 、「Out of memory: kill process」(メモリ不足: プロセスを強制終了) などのエラーがないかを確認します。
- インスタンスのシステムログで、「oom-killer」、「failure to fork」(フォークの失敗)、またはその他のメモリ不足エラーなどのエラーがないかを確認します。詳細については、「Amazon EC2 Linux インスタンスで実行されている Apache ウェブサーバーへのメモリ割り当てを調整する方法を教えてください」を参照してください。
- インスタンスのスクリーンショットでエラーがないか確認します。
注: ドッカーコンテナや cgroups などを使用している場合、メモリ不足やその他のメモリ不足エラーが表示されることがあります。これらのエラーは、設定が原因で、意図的な場合があります。
インスタンスのシステムログに、ウェブサービスが正しく開始され、実行中であることが示されていることを確認する
インスタンスを再起動し、ウェブサービスが正常に起動していることを確認するか、再起動を妨げている可能性のあるエラーがないか確認します。
インスタンスが CPU 使用率の制限内であることを確認する
CloudWatch メトリクステーブルで NetworkIn および NetworkOut インスタンスメトリクスを確認します。
T2 または T3 インスタンスの場合は、CloudWatch メトリクステーブルの CPU クレジットメトリクスを調べて、CPU クレジットがゼロかほぼゼロに近いかを確認します。CPU クレジットがゼロの場合、CPUUtilization メトリクスはインスタンスのベースラインパフォーマンスが飽和停滞状態であることを示します。インスタンスタイプに応じて、ベースラインパフォーマンスは 20%、40% などになります。
この問題の解決については、「リソースを過剰に使用しているため、EC2 Linux インスタンスはインスタンスチェックに失敗しました。この解決方法を教えてください」を参照してください。
インスタンスにアタッチされた Amazon Elastic Block Store (Amazon EBS) ボリュームが IOPS またはスループットの上限に達していないことを確認する
EBS ボリュームが IOPS 上限に達していないことを確認します。 ボリュームが IOPS 上限に達すると、レイテンシーが増加し、ウェブサイトに悪影響を与えます。ボリュームパフォーマンスの最適化の詳細については、「Amazon EBS プロビジョンド IOPS ボリュームのパフォーマンスを最適化するにはどうすれば良いですか?」を参照してください。
GP2 ボリュームを使用している場合は、ボリュームがバーストクレジットを使い果たしていないことを確認してください。