Amazon EC2 Windows 인스턴스 간의 네트워크 대역폭을 측정해야 합니다. 어떻게 해야 합니까?

Amazon EC2 네트워크 성능에 영향을 줄 수 있는 여러 요소는 다음과 같습니다.

  • EC2 인스턴스의 물리적 접근성(내림차순):
    • 동일한 가용 영역의 인스턴스
    • 동일한 리전의 다른 가용 영역에 있는 인스턴스
    • 동일한 대륙에 있는 다른 리전의 인스턴스
    • 다른 대륙의 다른 리전에 있는 인스턴스
  • EC2 인스턴스 최대 전송 단위(MTU). EC2 인스턴스의 기본 인터페이스 구성은 점보 프레임(9,001MTU)을 사용하므로, 단일 Virtual Private Cloud(VPC)에서 더 많은 양을 처리할 수 있습니다. 그러나 단일 VPC 밖에서 최대 MTU는 1,500 이하이기 때문에 중간 시스템이 큰 패킷을 작게 쪼개야 합니다. 그러므로 기본 MTU 값이 9,001인 것은 비효율적일 수 있습니다. 특히, 대부분 네트워크 트래픽이 인터넷에 연결되는 경우 네트워크 처리량에서 절약되는 것보다 처리 오버헤드에서 더 많은 비용이 들어갈 수 있기 때문입니다. 점보 프레임을 사용하도록 구성할 수 있는 인스턴스 유형은 CC2, C3, R3, CG1, CR1, G2, HS1, I2, T2, M3 등이 있습니다. 자세한 내용은 인스턴스 유형을 참조하십시오.
  • EC2 인스턴스 크기. 특정 인스턴스 유형의 인스턴스 크기가 더 크면 일반적으로 유형이 동일하고 인스턴스 크기가 더 작을 때보다 더 좋은 네트워크 성능을 제공합니다.
  • EC2는 Windows에 대한 네트워킹 지원을 향상하지만, T2 및 M3 인스턴스 유형은 예외입니다.
  • 배치 그룹을 사용한 EC2 고성능 컴퓨팅(HPC) 지원. HPC는 전체 바이섹션 대역폭과 낮은 지연 시간을 제공하며, 10기가비트 네트워크 속도를 지원합니다. 자세한 내용은 배치 그룹으로 인스턴스 시작을 참조하십시오. 각 인스턴스 유형의 네트워크 성능을 확인하려면 인스턴스 유형 표를 참조하십시오.

이러한 요소로 인해 클라우드 환경 사이에 상당한 네트워크 성능 차이가 발생하는 경우가 많습니다. 네트워크 성능이 클라우드 기반 애플리케이션에 미치는 영향을 평가하기 위한 모범 사례에는 환경에 대한 정기적 기준 네트워크 벤치마크 테스트가 포함되어야 합니다. 이 문서에서는 EC2 Windows 인스턴스 사이에 네트워크 성능을 설정, 구성 및 벤치마크하는 데 필요한 단계를 설명합니다. 네트워크 성능은 애플리케이션 성능에서 중요한 측면을 차지하는 경우가 많기 때문에 네트워크 성능을 테스트하면 요구 사항에 가장 알맞은 EC2 인스턴스 유형, 크기 및 구성을 결정하는 데 유용한 분석 정보를 얻을 수 있습니다.

벤치마크 테스트를 시작하기 전에 Windows EC2 인스턴스를 시작하고 구성합니다.

  1. Windows 인스턴스 시작에서 설명한 단계에 따라 Windows 인스턴스 2개를 시작합니다. 여기에서 네트워크 성능 테스트를 실행할 수 있습니다.
  2. 최적의 네트워크 성능을 구현하려면 인스턴스가 Windows를 위한 향상된 네트워킹을 지원하고, 동일한 VPC의 인스턴스를 시작하고, VPC에서 Windows 인스턴스에 향상된 네트워킹 활성화의 단계를 따라야 합니다.
  3. 동일한 배치 그룹에 함께 있지 않거나 점보 프레임을 지원하지 않는 인스턴스 간에 네트워크를 테스트할 경우, EC2 인스턴스의 네트워크 최대 전송 단위(MTU)의 단계에 따라 Amazon EC2 인스턴스의 MTU를 확인하고 설정하십시오.
  4. RDP를 사용하여 Windows 인스턴스에 연결에서 설명한 단계를 완료하고 인스턴스에 액세스할 수 있는지 확인합니다.

RDP를 통해 Windows 인스턴스에 연결하고 다음과 같이 실행합니다.

  1. Microsoft TechNet NTttcp 다운로드 페이지에서 NTttcp-v5.31.zip을 다운로드합니다.
  2. 폴더에 파일의 압축을 해제합니다.
  3. 관리자 권한으로 명령 프롬프트를 열고 디렉터리를 압축을 해제한 NTttcp-v5.31.zip이 있는 폴더로 변경합니다.
  4. NTttcp를 실행하기 전에 EC2 Windows 인스턴스의 아키텍처와 일치하는 이름을 가진 폴더로 디렉터리를 변경합니다.

NTttcp는 TCP 성능을 테스트할 때 기본적으로 포트 5001을 사용하여 통신합니다. 그러나 이 포트는 -p 스위치를 사용하여 구성할 수 있습니다. 보안 그룹이 NTttcp에서 사용할 포트로 통신을 허용하도록 구성되었는지 확인합니다. 또한, NTttcp.exe 연결을 허용하는 수신기와 송신기 모두에서 인바운드 및 아웃바운드 Windows 방화벽 규칙을 추가합니다.

  1. 인스턴스 1개를 수신기/서버로 구성하여 기본 포트 5001로 시작하는 리스너를 초기화하거나 -p 스위치로 다른 초기 리스너 포트를 지정합니다. 예를 들어 다음 명령은 지정된 IP 주소의 포트 80-81에서 수신 대기하는 2스레드 수신기를 초기화합니다. 첫 번째 스레드는 CPU 0에서 실행되고 두 번째 스레드는 CPU 1에서 실행됩니다. 이 예시에서 사용된 모든 ntttcp.exe 수신기 파라미터는 명령 아래에 설명되어 있습니다.
         ntttcp -r -p 80 -a 6 -t 60 -cd 5 -wu 5 -v -xml c:\bench.xml -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -r — 수신
         • -p 80 — 첫 번째 스레드가 데이터 수신에 사용하는 포트. 포트 번호는 수신기 스레드가 1개 추가될 때마다 증가합니다.
         • -a 6 — 스레드당 수신 중첩 버퍼 6을 포스트하는 비동기식 데이터 전송
         • -t 60 — 테스트 시간(초)
         • -cd 5 — 테스트 휴지 시간(5초)
         • -wu 5 — 테스트 워밍업 시간(5초)
         • -v — 상세한 테스트 결과 지정
         • -xml — 지정된 파일에 테스트 결과 저장(xml.txt에 기본으로 저장)
         • -m — 세션당 매핑 파라미터 3개 지정합니다(스레드 개수, CPUID, 수신기 IP 주소) 세션이 여러 개일 경우 공백으로 구분됩니다.
  2. 두 번째 인스턴스를 송신기/클라이언트로 구성하고 원하는 파라미터로 수신기에 대해 테스트를 실행합니다. 예를 들어 다음 명령은 지정된 IP 주소의 포트 80-81에 대해 2스레드 TCP 송신기를 초기화합니다. 첫 번째 스레드는 CPU 0에서 실행되고 두 번째 스레드는 CPU 1에서 실행됩니다. 이 예시에서 사용된 모든 ntttcp.exe 송신기 파라미터는 명령 아래에 설명되어 있습니다.
         ntttcp -s -p 80 -a -t 60 -cd 5 -wu 5 -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -s — 전송
         • -p 80 — 첫 번째 스레드가 데이터 전송에 사용하는 포트. 이 포트 번호는 송신 스레드가 1개 추가될 때마다 증가합니다.
         • -a — 스레드당 비동기식 전송 중첩 버퍼 기본값 2를 사용합니다. 원하는 경우, 기본값 외에 다른 값을 지정합니다.
         • -t 60 — 테스트 시간(초)
         • -cd 5 — 테스트 휴지 시간(5초)
         • -wu 5 — 테스트 워밍업 시간(5초)
         • -m — 세션당 매핑 파라미터 3개 지정(스레드 개수, CPUID, 대상 IP 주소). 세션이 여러 개일 경우 공백으로 구분됩니다.

수신기에서 생성된 xml 결과는 다음과 유사해야 합니다. 이 테스트에서 사용된 총 대역폭은 약 9.02Gbits/초였습니다.

bandwidth-tcp

NTttcp는 UDP 성능을 테스트할 때 기본적으로 포트 5001로 통신합니다. 하지만 이 포트는 -p 스위치를 사용하여 구성 가능합니다. 보안 그룹이 NTttcp에서 사용할 포트로 통신을 허용하도록 구성되었는지 확인합니다. 또한, NTttcp.exe 연결을 허용하는 수신기와 송신기 모두에서 인바운드 및 아웃바운드 Windows 방화벽 규칙을 추가합니다.

  1. 인스턴스 1개를 수신기/서버로 구성하여 기본 포트 5001로 시작하는 리스너를 초기화하거나 -p 스위치로 다른 초기 리스너 포트를 지정합니다. 예를 들어 다음 명령은 지정된 IP 주소의 포트 80-81에서 수신 대기하는 2스레드 수신기를 초기화합니다. 첫 번째 스레드는 CPU 0에서 실행되고 두 번째 스레드는 CPU 1에서 실행됩니다. 이 예시에서 사용된 모든 ntttcp.exe 수신기 파라미터는 명령 아래에 설명되어 있습니다.
         ntttcp –r –u -p 80 –t 60 –cd 5 –wu 5 –v –xml c:\bench.xml –m 1,0,192.168.1.4 1,1,192.168.1.4
         • -r — 수신
         • -u — UDP 테스트
         • -p 80 — 첫 번째 스레드가 데이터 수신에 사용하는 포트. 포트 번호는 수신기 스레드가 1개 추가될 때마다 증가합니다.
         • -t 60 — 테스트 시간(초)
         • -cd 5 — 테스트 휴지 시간(5초)
         • -wu 5 — 테스트 워밍업 시간(5초)
         • -v — 상세한 테스트 결과 지정
         • -xml — 지정된 파일에 테스트 결과 저장(xml.txt에 기본으로 저장)
         • -m — 세션당 매핑 파라미터 3개 지정합니다(스레드 개수, CPUID, 수신기 IP 주소) 세션이 여러 개일 경우 공백으로 구분됩니다.
  2. 두 번째 인스턴스를 송신기/클라이언트로 구성하고 원하는 파라미터로 수신기에 대해 테스트를 실행합니다. 예를 들어 다음 명령은 지정된 IP 주소의 포트 80-81에 대해 2스레드 UDP 송신기를 초기화합니다. 첫 번째 스레드는 CPU 0에서 실행되고 두 번째 스레드는 CPU 1에서 실행됩니다. 이 예시에서 사용된 모든 ntttcp.exe 송신기 파라미터는 명령 아래에 설명되어 있습니다.
         ntttcp -s –u -p 80 -t 60 -cd 5 -wu 5 -m 1,0,192.168.1.4 1,1,192.168.1.4
         • -s — 전송
         • -u — UDP 테스트(기본값은 TCP 테스트)
         • -p 80 — 첫 번째 스레드가 데이터 전송에 사용하는 포트. 이 포트 번호는 송신 스레드가 1개 추가될 때마다 증가합니다.
         • -t 60 — 테스트 시간(초)
         • -cd 5 — 테스트 휴지 시간(5초)
         • -wu 5 — 테스트 워밍업 시간(5초)
         • -m — 세션당 매핑 파라미터 3개 지정(스레드 개수, CPUID, 대상 IP 주소). 세션이 여러 개일 경우 공백으로 구분됩니다.

수신기에서 생성된 xml 결과는 다음과 유사해야 합니다.

bandwidth-udp

NTttcp와 함께 사용할 수 있는 모든 스위치를 신속히 확인하려면 명령 프롬프트에서 ntttcp를 실행합니다.

NTttcp와 함께 사용할 수 있는 옵션에 대한 자세한 내용을 알아보려면 NTttcp 다운로드 파일에 포함된 TCP_Tool.docx Word 파일을 참조하고 Microsoft TechNet NTttcp 다운로드 페이지에서 NTttcp에 대한 최신 업데이트를 검토하십시오.

Amazon EC2 Windows, 네트워크, 성능, 배치 그룹, HPC, 처리량, NTttcp, MTU, VPC, UDP, TCP


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.