웹 서비스를 구동하였을 때, 이것이 잘 동작하는 지를 확인하는 방법으로 크게 3가지가 있습니다.
- Ping 테스트
- Port 테스트
- Http Status 테스트
이번 포스팅에서는 이 중 첫 번째인 Ping 테스트에 대해 알아보고자 합니다.
참고로 위 세 가지를 꼭 순서대로 진행할 필요는 없습니다. 다만, 특정 테스트를 했을 때, 문제가 발생했다면 이것이 서버의 문제인지 네트워크의 문제인지를 파악하는 근거를 마련할 수 있을 것입니다.
1. Ping 체크를 하는 이유
Ping 명령어는 ICMP 프로토콜을 사용해 대상 서버에게 보내 IP 주소만으로 서버에 연결이 가능한지에 대한 피드백을 얻는 방법입니다.
ping 명령은 호스트나 게이트웨이로부터 ICMP ECHO_RESPONSE를 확보하기 위해 인터넷 제어 메시지 프로토콜(ICMP) ECHO_REQUEST를 전송합니다. ping 명령은 다음과 같은 경우에 유용합니다.
- 네트워크 및 다양한 외래 호스트의 상태를 판단할 때
- 하드웨어 및 소프트웨어 문제점을 추적하고 분류할 때
- 네트워크를 테스트, 측정 및 관리할 때
https://www.ibm.com/docs/ko/power9?topic=commands-ping-command
Ping 명령어를 통해 알 수 있는 값은 RTT(Round Trip Time)으로 패킷이 서버에 도착하고 응답이 내 PC에 도착하기까지 걸린 총 시간입니다.

온라인 게임을 하면서 보통 핑이 높다, 낮다고 말하지만 엄밀히 말하자면 RTT가 높다, 낮다라고 말해야 되는 것입니다.

2. ICMP
ICMP 프로토콜은 TCP와 달리 포트 번호가 존재하지 않습니다. 따라서 AWS 기준으로 보안그룹 설정 시, 포트번호를 지정하지 않고, ICMP 프로토콜 자체를 인바운드 규칙으로 적용해야 Ping 테스트를 할 수 있습니다. 또한, TCP와 달리 연결 지향하지 않는 프로토콜이기 때문에 데이터 전송 과정에서 별도의 핸드셰이킹이 필요하지 않으며, 오류 보고에만 사용되기에 패킷이 비교적 작습니다.


ICMP 프로토콜은 네트워크 계층으로 오류 보고 또는 네트워크 상의 정보 제공에 사용됩니다. Ping 명령어는 네트워크 상의 정보 제공 목적으로 ICMP 프로토콜을 활용하는 경우입니다.
- 오류 보고
- 네트워크 도달 불가
- 호스트 도달 불가
- TTL 만료
- 네트워크 상의 정보 제공
- Echo 요청 (Echo Request)
- Echo 응답 (Echo Reply)
만약, 라우터가 전달받은 패킷을 어떤 네트워크로 전송해야 할지 알 수 없을 경우, 네트워크 도달 불가 ICMP 메시지를 전송 호스트 쪽에 전달합니다.
3. Tracert
Tracert 명령어는 Windows 기반 네트워크 경로를 확인하기 위해 ICMP 프로토콜을 사용합니다. TTL 값을 사용해서 네트워크 전송 구간에 위치한 라우터들의 IP 주소를 알아냅니다.

먼저, TTL 값이 1인 패킷을 보낼 경우, 1개의 홉을 지난 후, 도착한 라우터에는 TTL이 0인 패킷이 있을 것입니다. 따라서 이 라우터에서는 ICMP 에러 메시지를 보내게 되며, 이를 통해 라우터 주소를 콘솔 창에 출력할 수 있게 됩니다.
위의 경우, 인터넷 게이트웨이인 192.168.0.1에서 가장 먼저 패킷을 받는다는 사실을 알 수 있습니다. (ipconfig -all 명령어로 인터넷 게이트웨이 주소 확인 가능)
4. 정리
ICMP 패킷은 네트워크 계층으로 비연결성이기 때문에 사이즈가 작아 네트워크 진단에 효과적으로 활용할 수 있습니다. 만약, Ping 명령어를 통해 확인한 RTT 값이 높다면, 애플리케이션 단의 성능개선보다는 네트워크 전송 구간 내에서 RTT 값이 높은 구간의 네트워크 진단이 필요할 것입니다.
참고자료 :
인프라공방 - 그럴듯한 서비스 만들기 강의 | 이동규 - 인프런
이동규 | , 인프라 막연하셨나요?만들고 부수며 인프라를 배워요 🤖 [사진] 📌 학습 환경에 따라 AWS 비용이 과금될 수 있어요!📌 예제 코드는 JVM 계열(java, kotlin) / 스프링부트로 준비되어 있어
www.inflearn.com
https://aws.amazon.com/ko/what-is/icmp/
ICMP란? ICMP 프로토콜 설명 - AWS
TCP는 신뢰할 수 있고 오류 검사가 적용되는 데이터 전송을 위한 연결 지향 프로토콜입니다. 일반적으로 웹 브라우징, 이메일, 원격 로그인 및 파일 전송 애플리케이션에 사용됩니다. TCP에는 발
aws.amazon.com
외워서 끝내는 네트워크 핵심이론 - 기초 강의 | 널널한 개발자 - 인프런
널널한 개발자 | , 네트워크, 외워서 쉽고 빠르게! 7시간에 끝내는 TCP/IP 네트워크 & HTTP 👨🎓 네트워크 이론, 배우긴 해야 하는데... 😥 여러분의 네트워크 공부가 어려웠던 이유? [사진] 네
www.inflearn.com
https://product.kyobobook.co.kr/detail/S000214014967
이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접 | 강민철 - 교보문고
이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접 | 기술 면접과 실무에 필요한 CS 지식, 한 권으로 끝내자!프로그램의 실행 원리를 이해하지 못한 채 ‘일단 작동만 하도록 만드는 것’과 정
product.kyobobook.co.kr
'사이드 프로젝트 > 인프라 공방' 카테고리의 다른 글
인프라 공방 - AWS 망에 대한 이야기 (0) | 2024.12.20 |
---|