동일한 VPC에 있는 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스 간의 네트워크 대역폭을 측정해야 합니다. 어떻게 해야 합니까?

이 예제는 동일한 VPC에 있는 EC2 인스턴스에만 적용됩니다. Amazon EC2 네트워크 성능에 영향을 미칠 수 있는 몇 가지 요인은 다음과 같습니다.

  • EC2 인스턴스의 물리적 근접성. 동일한 가용 영역에 있는 인스턴스가 지리적으로 서로 가장 가까운 반면, 동일한 리전의 다른 가용 영역에 있는 인스턴스, 동일한 대륙의 다른 리전에 있는 인스턴스, 다른 대륙의 다른 리전에 있는 인스턴스는 순차적으로 서로 더 멀리 떨어져 있습니다.
  • EC2 인스턴스 최대 전송 단위(MTU). 인스턴스가 점보 프레임(9001 MTU)에 나열된 인스턴스 크기 중 하나에 해당하는 경우 EC2 인스턴스에 대한 기본 인터페이스 구성에 점보 프레임이 사용됩니다.
  • EC2 인스턴스의 크기. 한 인스턴스 유형에 대해 인스턴스 크기가 더 크면 일반적으로 동일한 유형의 더 작은 인스턴스 크기보다 더 좋은 네트워크 성능을 제공합니다.
  • Linux에 대한 EC2 확장 네트워킹 지원(T2 및 M3 인스턴스 유형 제외).
  • 배치 그룹을 사용한 EC2 HPC(고성능 컴퓨팅) 지원. HPC는 전체 바이섹션 대역폭과 낮은 지연 시간을 제공하며 인스턴스 유형에 따라 최대 25기가비트 네트워크 속도를 지원합니다. 각 인스턴스 유형의 네트워크 성능을 검토하려면 인스턴스 유형 표를 참조하십시오. 자세한 내용은 배치 그룹에서 인스턴스 시작을 참조하십시오.

이러한 요인으로 인해 다양한 클라우드 환경 간에 상당한 네트워크 성능 차이가 있을 수 있습니다. 모범 사례로서, 해당 환경의 네트워크 성능을 정기적으로 평가하고 기준선을 설정하여 애플리케이션 성능을 향상하는 것이 좋습니다. 네트워크 성능 테스트는 필요에 가장 적합한 EC2 인스턴스 유형, 크기 및 구성을 결정하기 위한 가치 있는 통찰을 제공할 수 있습니다.

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

  1. 네트워크 성능 테스트를 실행할 수 있는 ​2개의 Linux 인스턴스를 시작합니다.
  2. 인스턴스가 ​Linux용 확장 네트워킹을 지원해야 하며 동일한 VPC에 있어야 합니다.
  3. (선택 사항) 다른 배치 그룹에 있거나 점보 프레임을 지원하지 않는 인스턴스 간에 네트워크 테스트를 수행하는 경우 EC2 인스턴스에 대한 네트워크 MTU(최대 전송 단위)의 단계에 따라 인스턴스의 MTU를 점검하고 설정합니다.
  4. 인스턴스에 연결하여 해당 인스턴스에 액세스할 수 있는지 확인합니다.

Amazon Linux와 같은 일부 디스트로에서는 iperf3가 EPEL 리포지토리의 일부입니다. EPEL 리포지토리를 활성화하려면 CentOS, RHEL 또는 Amazon Linux를 실행 중인 Amazon EC2 인스턴스에 대해 EPEL 리포지토리를 활성화하려면 어떻게 해야 합니까?를 참조하십시오.

Linux 인스턴스에 연결하고 다음 명령을 실행하여 iperf3를 설치합니다.

RHEL 6 Linux 호스트에 iperf3를 설치하려면 다음과 비슷한 명령을 실행합니다.

# yum -y install  https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm  && yum -y install iperf3

RHEL 7 Linux 호스트에 iperf3를 설치하려면 다음과 비슷한 명령을 실행합니다.

# yum -y install  https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm  && yum -y install iperf3

Debian/Ubuntu 호스트에 iperf3를 설치하려면 다음과 비슷한 명령을 실행합니다.

# apt-get install -y iperf3

CentOS6/7 호스트에 iperf3를 설치하려면 다음과 비슷한 명령을 실행합니다.

# yum -y install epel-release && yum -y install iperf3

TCP 성능을 테스트할 때 iperf3는 기본적으로 포트 5201을 통해 통신합니다. 하지만 사용하는 포트는 -p 스위치를 사용하여 구성할 수 있습니다. 보안 그룹이 iperf3에 사용되는 포트를 통한 통신을 허용하도록 구성되어 있는지 확인합니다.

한 인스턴스를 기본 포트에서 수신 대기하기 위한 서버로 구성하거나, -p 스위치를 사용하여 대체 리스너 포트를 지정합니다.

$ sudo iperf3 -s [-p <port number>]

두 번째 인스턴스를 클라이언트로 구성하고 원하는 파라미터를 사용하여 서버에 대한 테스트를 실행합니다. 예를 들어, 다음 명령은 10개의 병렬 연결이 있는 지정된 서버 인스턴스에 대해 TCP 테스트를 시작합니다.

$ sudo iperf3 -c 192.0.2.0 -P 10 -i 1 -t 60 -V [-p <port number>]

이러한 지정된 iperf3 파라미터를 사용하면 스레드당 간격(60초), 스레드당 전송된 데이터 및 각 스레드에 사용된 대역폭이 출력에 표시됩니다. 여기에 표시된 iperf3 출력은 HPC 지원을 제공하는 동일한 배치 그룹에 함께 배치된 두 개의 c4.8xlarge EC2 Linux 인스턴스를 테스트하여 생성되었습니다. 여기에서는 간편한 표시를 위해 -t 파라미터를 -t 60 대신 -t 2로 수정하고 -P 10을 -P 2로 수정했습니다. 모든 연결을 통해 전송된 총 대역폭은 9.6Gbits/sec였습니다.

Output:
$ iperf3 -c 192.0.2.0 -t 2 -i 1 -P 2 -R
Connecting to host 192.0.2.0, port 5201
Reverse mode, remote host 192.0.2.0 is sending
[  4] local 198.51.100.0 port 47122 connected to 192.0.2.0 port 5201
[  6] local 198.51.100.0 port 47124 connected to 192.0.2.0 port 5201
[ ID] Interval           Transfer     Bandwidth
[  4]   0.00-1.00   sec   572 MBytes  4.80 Gbits/sec
[  6]   0.00-1.00   sec   572 MBytes  4.80 Gbits/sec
[SUM]   0.00-1.00   sec  1.12 GBytes  9.60 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[  4]   1.00-2.00   sec   573 MBytes  4.80 Gbits/sec
[  6]   1.00-2.00   sec   573 MBytes  4.80 Gbits/sec
[SUM]   1.00-2.00   sec  1.12 GBytes  9.61 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-2.00   sec  1.12 GBytes  4.82 Gbits/sec    0             sender
[  4]   0.00-2.00   sec  1.12 GBytes  4.81 Gbits/sec                  receiver
[  6]   0.00-2.00   sec  1.12 GBytes  4.81 Gbits/sec    0             sender
[  6]   0.00-2.00   sec  1.12 GBytes  4.81 Gbits/sec                  receiver
[SUM]   0.00-2.00   sec  2.24 GBytes  9.63 Gbits/sec    0             sender
[SUM]   0.00-2.00   sec  2.24 GBytes  9.63 Gbits/sec                  receiver

iperf Done.

UDP 성능을 테스트할 때 iperf3는 기본적으로 포트 5201을 통해 통신합니다. 하지만 사용하는 포트는 -p 스위치를 사용하여 구성할 수 있습니다. 보안 그룹이 iperf3에 사용되는 포트를 통한 통신을 허용하도록 구성되어 있는지 확인합니다.

참고: 다른 대역폭이 지정되지 않는 한 UDP의 기본값은 초당 1Mbit입니다.

먼저, 한 인스턴스를 기본 포트에서 수신 대기하기 위한 서버로 구성하거나, -p 스위치를 사용하여 대체 리스너 포트를 지정합니다.

$ sudo iperf3 -s [-p <port number>]

그런 다음, 두 번째 인스턴스를 클라이언트로 구성하고 원하는 파라미터를 사용하여 서버에 대한 테스트를 실행합니다. 예를 들어, 다음 명령은 사용 중인 포트에서 대역폭 목표가 100Mbits/sec인 지정된 서버 인스턴스에 대해 UDP 테스트를 시작합니다.

$ sudo iperf3 -c 10.0.2.176 [-p <port number>] -u -b 100m

출력에는 간격(시간), 전송된 데이터의 양, 달성된 대역폭, 지터(데이터그램의 주기적 도착에 대한 시간 편차) 및 UDP 데이터그램의 손실/합계가 표시됩니다.

[ ID] Interval        Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  3]  0.0-10.0 sec   120 MBytes   101 Mbits/sec  ; 0.005 ms  0/85470 (0%)
[  3]  0.0-10.0 sec   1 datagrams received out-of-order
[  3] Sent 15113 datagrams

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

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

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

게시 날짜: 2015-08-06

업데이트 날짜: 2018-08-20