Amazon VPC의 네트워크 성능 문제를 해결하려면 어떻게 해야 합니까?
Amazon Virtual Private Cloud(Amazon VPC)의 네트워크 성능 문제를 해결하고 싶습니다.
해결 방법
문제 해결 모범 사례 준수
문제를 해결할 때는 다음과 같은 모범 사례를 사용하십시오.
- 관찰한 지연 시간의 시작 및 종료 시간을 가져옵니다.
- 지연 시간 문제가 지속적인지 간헐적인지 확인합니다.
- 지연 시간 문제가 발생하기 전에 변경 사항이 발생했는지 확인합니다.
- 지연 시간이 발생하는 전체 네트워크 경로를 가져옵니다.
- 소스 네트워크와 대상 네트워크 사이에서 사용 중인 프로토콜과 포트를 식별합니다.
- VPC Flow Logs를 활성화합니다.
- 현재 지연 시간을 기준 네트워크 성능과 비교합니다.
- 수행한 작업과 변경한 사항을 문서화합니다.
네트워크 경로에 구성 변경 사항이 있는지 검토
다음 작업을 수행하십시오.
- Reachability Analyzer를 사용하여 네트워크 경로에서 트래픽이 목적지에 도달하기 전에 통과하는 중간 디바이스를 식별합니다. 예를 들어 Reachability Analyzer를 사용하여 방화벽, 로드 밸런서 또는 NAT 게이트웨이를 찾을 수 있습니다.
- Reachability Analyzer를 사용하여 소스 리소스와 대상 리소스 간의 연결 분석을 수행합니다. 트래픽을 불필요하게 차단하거나 허용하는 라우팅 테이블, 보안 그룹 규칙, 네트워크 액세스 제어 목록(네트워크 ACL) 또는 인터페이스 설정을 식별합니다.
참고: Reachability Analyzer는 VPC 내 AWS 리소스 간의 연결을 분석합니다. AWS 계정 전반의 리소스를 분석하려면 Reachability Analyzer에서 신뢰할 수 있는 액세스를 활성화해야 합니다. 자세한 내용은 Reachability Analyzer에 대한 교차 계정 분석을 참조하십시오. - 네트워크 문제가 최근에 발생한 경우 네트워크 활동 이벤트를 로깅하는 AWS CloudTrail을 사용하여 구성 변경을 식별하십시오. 예를 들어, 네트워크 문제를 일으킬 수 있는 보안 그룹 규칙, 네트워크 ACL 또는 라우팅 테이블의 변경 사항을 찾아보십시오.
참고: CloudTrail은 최대 90일 동안 계정 내에서 이루어진 모든 API 호출을 기록합니다.
소스 리소스와 대상 리소스 간의 연결 테스트
ping 명령을 실행하여 소스 및 대상 네트워크 리소스 간의 기본 IP 주소 수준 연결 및 패킷 손실을 테스트합니다. ping 명령은 Internet Control Message Protocol(ICMP)을 통해 작동하므로 보안 그룹과 네트워크 ACL 규칙 모두에서 ICMP를 허용해야 합니다.
참고: 지연 시간을 측정하지 않고 ping을 실행하여 연결성을 확인하는 것이 가장 좋습니다.
Linux 환경에서 연결을 테스트하려면 다음 단계를 완료하십시오.
-
소스 네트워크 리소스로 이동합니다.
참고: 예를 들어 소스 네트워크 리소스는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스일 수 있습니다. -
Reachability Analyzer로 식별한 네트워크 경로의 각 리소스에 대해 다음 ping 명령을 실행합니다.
ping YOUR_DESTINATION_IP_ADDRESS -c 5 # Send 5 echo requests참고: YOUR_DESTINATION_IP_ADDRESS를 대상 IP 주소로 바꾸십시오. ping 명령은 중지할 때까지 계속 실행됩니다. -c 플래그를 사용하여 전송할 에코 요청 수를 지정하고 -s 플래그를 사용하여 페이로드 크기를 설정할 수 있습니다.
네트워크의 지연 시간 확인
네트워크에서 지연 시간을 찾고 지연이 시작되는 위치를 확인하려면 Linux의 경우 traceroute를, Windows의 경우 tracert를 사용하십시오. 사용자 환경에서 My Traceroute(MTR)를 사용할 수 있는 경우 traceroute 대신 MTR을 사용하십시오. 네트워크 진단 도구를 사용하여 소스와 대상 간의 각 네트워크 홉을 매핑하고 모든 홉의 왕복 시간(RTT)을 표시합니다.
Linux용 MTR
MTR을 사용하려면 다음 단계를 완료하십시오.
- ICMP 또는 TCP 프로토콜 중 하나를 선택합니다.
참고: 대상이 ICMP에 응답하거나 일반 경로를 평가하는 경우 ICMP를 사용하십시오. 대상이 ICMP에 응답하지 않거나 애플리케이션이 TCP를 사용하여 실제 트래픽을 시뮬레이션하는 경우 TCP를 사용하십시오. - TCP MTR을 생성하려면 다음 MTR 명령을 실행하십시오.
ICMP MTR을 생성하려면 다음 MTR 명령을 실행하십시오.mtr YOUR_DESTINATION_IP_OR_HOST_NAME -T -P 443 -c 100 --report
참고: YOUR_DESTINATION_IP_OR_HOST_NAME을 대상 IP 주소 또는 호스트 이름으로 바꾸십시오. --report 옵션과 -c 플래그를 사용하여 출력 보고서에서 생성할 프로브 수를 제어하십시오.mtr YOUR_DESTINATION_IP_OR_HOST_NAME -c 100 --report - 보고서에서 각 홉을 이전 홉과 비교하여 RTT가 가장 먼저 증가하는 위치를 확인하십시오. 문제를 식별하려면 Loss%, Avg, Wrst 및 StDev 지표와 최종 홉의 RTT 및 손실 값을 검토하십시오.
참고: 보고서를 분석할 때는 후속 홉에서 일관된 패턴을 찾아보십시오. 예를 들어 지속적인 패킷 손실 또는 경로에서 증가하는 RTT는 네트워킹 문제를 나타냅니다. - ping 또는 hping 명령을 실행하여 보고서 결과를 평가하고 엔드-투-엔드 손실 또는 지연 시간을 확인하십시오.
Linux용 Traceroute
ICMP 기반 테스트를 수행하려면 다음 traceroute 명령을 실행합니다.
traceroute YOUR_DESTINATION_IP_OR_HOST_NAME
참고: YOUR_DESTINATION_IP_OR_HOST_NAME을 대상 IP 주소 또는 호스트 이름으로 바꾸십시오.
TCP 기반 테스트를 수행하려면 다음 traceroute 명령을 실행합니다.
traceroute YOUR_HOST_NAME -T -p 443
참고: YOUR_HOST_NAME을 호스트 이름으로 바꾸십시오.
Windows용 Tracert
ICMP 기반 테스트를 수행하려면 다음 tracert 명령을 실행합니다.
tracert YOUR_DESTINATION_IP_OR_HOST_NAME
참고: YOUR_DESTINATION_IP_OR_HOST_NAME을 대상 IP 주소 또는 호스트 이름으로 바꾸십시오.
다음 출력 예시는 NAT 게이트웨이를 통과하는 두 IP 주소 간의 추적 경로를 보여줍니다.
traceroute to amazon.com (98.82.161.185), 30 hops max, 60 byte packets 1 21.0.3.151 (21.0.3.151) 0.219 ms 0.238 ms 0.247 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 7 * * * 8 * * * 9 * * *
패킷 수준에서 네트워크 트래픽 보기
네트워크 트래픽을 더 자세히 분석하려면 tcpdump 또는 Wireshark와 같은 패킷 캡처 도구를 사용하십시오. 자세한 내용은 TCPDUMP 및 LIBPCAP 웹 사이트의 tcpdump 설명서를 참조하십시오. Wireshark를 다운로드하려면 Wireshark 웹 사이트에서 Download Wireshark: your network analysis tool을 참조하십시오.
패킷 캡처를 수행할 때는 분석하지 않는 트래픽을 포함한 모든 트래픽을 캡처하는 것이 가장 좋습니다. 그런 다음 분석이 필요한 트래픽을 필터링합니다.
모든 트래픽을 캡처하려면 다음 tcpdump 명령을 실행합니다.
sudo tcpdump -i [interface] -w packetcapture.pcap
참고: 오버헤드 지연 시간이나 프로덕션 환경에 미치는 영향을 피하려면 Traffic Mirroring을 tcpdump 또는 Wireshark와 함께 사용하여 패킷 캡처를 실행하십시오. 하나의 EC2 인스턴스 또는 여러 대역외 인스턴스에서 패킷 캡처를 실행할 수 있습니다.
리전과 가용 영역 간의 네트워크 지연 시간 테스트
AWS Network Manager의 인프라 성능을 사용하여 AWS 리전과 가용 영역 간의 실시간 및 과거 네트워크 지연 시간을 확인할 수 있습니다. 인프라 성능을 사용하여 지연 시간이 VPC 구성에서 발생하는지 아니면 AWS 글로벌 인프라에서 발생하는지 식별할 수 있습니다.
TCP 기반 지표 모니터링
Network Flow Monitor를 사용하여 가용 영역 또는 VPC 간에 TCP 기반 지표를 실시간으로 수집, 집계 및 시각화할 수 있습니다. Network Flow Monitor를 사용하여 지연 시간이 AWS로 인해 발생했는지 확인할 수도 있습니다. 지연 시간 문제의 기간을 지정해야 합니다.
IP 트래픽 로깅
VPC Flow Logs를 사용하여 IP 주소 트래픽을 로깅합니다. 로그를 사용하여 트래픽을 차단하는 트래픽, 보안 그룹 또는 네트워크 ACL 규칙의 소스와 대상을 식별할 수 있습니다.
- 언어
- 한국어
