Ubuntu 24.04, 22.04 또는 20.04에 Siege를 설치하는 방법

Siege는 로드 중인 웹 서버의 성능과 안정성을 테스트하는 데 사용되는 강력한 벤치마킹 도구입니다. 이를 통해 웹 사이트에 동시에 액세스하는 여러 사용자를 시뮬레이션하여 서버가 높은 트래픽을 처리하는 방법에 대한 귀중한 통찰력을 제공할 수 있습니다. Siege는 기본 HTTP/HTTPS 프로토콜을 지원하며 GET, POST 및 기타 요청 방법을 수행할 수 있습니다. 스트레스 테스트, 성능 조정 및 웹 애플리케이션이 최대 부하를 처리할 수 있는지 확인하는 데 널리 사용됩니다.

Ubuntu 24.04, 22.04 또는 20.04에 Siege를 설치하려면 명령줄 터미널을 사용하여 Ubuntu 기본 저장소에서 설치하거나 최신 버전 및 추가 기능을 위해 소스에서 직접 Siege를 다운로드하고 설치하는 두 가지 기본 옵션이 있습니다. 이 가이드에서는 두 가지 설치 방법을 모두 안내합니다.

Siege 설치 전 Ubuntu 업데이트

효율적이고 안전하며 신뢰할 수 있는 컴퓨팅 환경을 유지하려면 Ubuntu 시스템을 최신 패키지로 최신 상태로 유지하는 것이 중요합니다. 우리가 명령을 실행할 때 sudo apt update, 시스템의 패키지 목록이 새로 고쳐집니다.

이를 수행하는 명령은 다음과 같습니다.

sudo apt update && sudo apt upgrade

Siege 설치 방법 선택

옵션 1: Ubuntu 기본 저장소를 통해 Siege 설치

Siege는 편리한 벤치마킹 도구로 Ubuntu의 기본 저장소에 포함되어 있습니다. 이를 통해 설치 프로세스가 크게 단순화되어 Ubuntu에 내장된 패키지 관리 도구(APT)를 사용하여 설치를 수행할 수 있습니다.

sudo apt install siege 명령은 APT 시스템을 트리거하여 리포지토리에서 Siege 패키지를 검색하고, 종속성을 처리하고, 시스템에 Siege를 설치합니다. 시스템 전체 설치에 필요한 루트 권한으로 명령을 실행할 수 있도록 시작 부분에 'sudo'가 필요합니다.

Siege를 설치하려면 다음 명령을 입력하세요.

sudo apt install siege 

옵션 2: 소스를 통해 Ubuntu에 Siege 설치

소스 코드에서 Siege를 컴파일하는 것은 최신 기능과 개선 사항에 대한 업데이트를 선호하는 개인에게 가장 적합합니다. 이 방법을 사용하려면 최신 소스 코드를 가져와서 수동으로 컴파일하여 Siege의 최신 버전을 유지해야 합니다.

최신 Siege 소스 다운로드

우선 최신 소스 코드를 확보해야 합니다. Siege 팀은 최신 버전에 대한 일관된 링크를 제공하여 이 프로세스를 단순화합니다. 그러나 시간이 지나도 링크가 유효한지 확인하는 것은 항상 좋은 습관입니다.

최신 소스 코드를 다운로드하려면 터미널을 열고 다음 명령을 실행하십시오.

wget http://download.joedog.org/siege/siege-latest.tar.gz

소스 추출 및 준비

다운로드가 완료되면 다음 단계는 아카이브 콘텐츠 추출입니다. 이를 달성하려면 다음 명령을 실행하십시오.

tar -xvf siege-latest.tar.gz

이 명령은 Siege 소스 코드를 디렉터리에 압축 해제합니다. 다음을 사용하여 이 디렉터리로 이동합니다.

cd siege-*/

정확한 디렉토리 이름은 Siege 버전에 따라 다를 수 있다는 점은 주목할 가치가 있습니다. 계속 진행하기 전에 올바른 디렉터리에 있는지 확인하세요.

컴파일 프로세스를 시작하기 전에 다음을 수행하는 것이 좋습니다. zlib 패키지 설치, 데이터 압축 및 압축 해제에 도움이 됩니다.

sudo apt install zlib1g-dev

Siege 바이너리 컴파일 및 설치

이제 Siege 소스 디렉터리 내에서 컴파일 및 설치 프로세스를 시작합니다. 아래 명령 시퀀스는 빌드 설정을 구성하고 소스 코드를 컴파일한 후 Ubuntu 시스템에 Siege를 설치합니다.

./configure --with-zlib
make
sudo make install

이 명령은 빌드 옵션을 구성하고, 소스 코드를 컴파일하고, Debian 시스템에 Siege를 설치합니다.

Siege 설치 확인

설치 후에는 Siege가 올바르게 설치되었는지 확인하는 것이 중요합니다. 또한 설치된 버전을 확인하면 특정 기능이나 플러그인과의 호환성에 대한 통찰력을 얻을 수 있으며 향후 업데이트가 필요한지 알려줄 수 있습니다.

시스템에 설치된 Siege 버전을 확인하려면 다음을 실행하세요.

siege --version

Ubuntu에서 Siege 구성

Siege가 최적으로 작동하고 기능을 완벽하게 활용하려면 올바른 구성이 필수적입니다. 이 프로세스에는 홈 디렉터리에 있는 Siege 구성 파일 .siegerc를 수정하는 작업이 포함됩니다.

Siege 구성 파일 찾기

siegerc 파일은 Siege 운영을 위한 제어 센터 역할을 하는 핵심 자산입니다. 이는 도구의 동작을 결정하는 수많은 매개변수로 구성됩니다. 이러한 매개변수에는 시뮬레이션된 사용자 수, 요청 간 지연, 로깅 수준이 포함됩니다.

기존 siegerc 파일을 탐색하는 것부터 시작해 보겠습니다. cat 명령을 실행하여 이를 수행할 수 있습니다.

cat /etc/siege/siegerc

Siege 구성 파일 구성

특정 사용 사례에 맞게 Siege 구성을 변경하려면 텍스트 편집기를 사용하여 파일을 열어야 합니다. 이 가이드에서는 사용자 친화성과 단순성을 위해 Nano를 사용합니다.

아래 명령을 사용하면 nano 텍스트 편집기에서 siegerc 파일을 열 수 있습니다.

sudo nano /etc/siege/siegerc

이 파일은 구성 가능한 옵션의 보물 창고이지만 보다 일반적으로 사용되는 일부 매개변수에 중점을 둘 것입니다.

  • verbose: 자세한 출력이 표시되는지(true) 또는 표시되지 않는지(false) 결정합니다.
  • csv: 출력이 CSV 형식이어야 하는지(true) 아니면 아닌지(false)를 나타냅니다.
  • 동시: 부하 테스트를 위해 시뮬레이션된 사용자 수를 지정합니다.
  • time: 부하 테스트 기간을 결정합니다.
  • 지연: 각 사용자의 요청 사이의 시간 지연을 설정합니다.
  • internet: 웹사이트에서 임의의 URL을 클릭하거나(true) 그렇지 않은 경우(false) 사용자 행동을 시뮬레이션합니다.
  • 벤치마크: Siege가 벤치마크 도구로 실행되도록 허용하거나(true) 실행하지 않도록 허용합니다(false).

예를 들어, 25명의 사용자가 시뮬레이션되고 각 사용자가 1초마다 요청을 보내고 테스트가 1시간 동안 지속되는 시나리오를 설정하려는 경우 관련 매개변수를 다음과 같이 수정합니다.

verbose = false
csv = true
concurrent = 25
time = 1H
delay = 1S
internet = false
benchmark = false

원하는 대로 변경한 후 Ctrl+X를 누르고 Y를 눌러 변경 사항 저장을 확인한 후 Enter를 눌러 저장하고 종료하세요.

Ubuntu에서 Siege를 사용한 HTTP 부하 테스트

이제 Siege를 설치하고 구성했으므로 이 도구의 작동 방식에 대한 구체적인 아이디어를 제공하기 위해 몇 가지 실제 예를 살펴보겠습니다. 이 데모에서는 DDoS 공격과 달리 요청 폭주를 시뮬레이션하여 웹 서버에 스트레스 테스트를 실시합니다.

이는 귀하의 웹사이트가 과도한 트래픽을 어떻게 처리하는지 이해하는 데 매우 유용할 수 있습니다. 그러나 필요한 권한을 얻고 이러한 도구를 책임감 있게 사용하십시오. 이상적으로는 서버에서만 사용해야 합니다.

Siege를 사용한 BenchMark 부하 테스트 웹사이트

먼저 Siege를 적용하여 기본 시뮬레이션 사용자(“작업자”라고도 함) 수인 25명을 사용하여 웹 사이트를 테스트합니다. 또한 스트레스 테스트 기간을 1분으로 설정합니다. 이는 아래 명령과 같이 -t 1m 플래그를 사용하여 수행됩니다.

siege https://www.example.com -t 1m

이 명령을 실행하면 Siege는 스트레스 테스트를 시작하여 1분 동안 사이트에 요청을 보내는 25명의 동시 사용자를 시뮬레이션합니다. 테스트가 끝나면 Siege는 결과에 대한 자세한 보고서를 제공합니다.

보다 의미 있고 정확한 통찰력을 얻기 위해 테스트를 실행하는 것은 일반적으로 5~15분 동안 가장 좋습니다. 1분이라는 시간은 단지 시연 목적으로만 사용되었습니다.

작업자 수를 늘리려면 -c 플래그 뒤에 원하는 수를 사용하면 됩니다. 예를 들어 100명의 작업자를 시뮬레이션하려면 -c 100 플래그를 사용합니다.

siege https://www.example.com -c 100 -t 2m

Siege를 사용하여 여러 웹사이트의 스트레스 테스트

시스템 관리자이거나 여러 도메인을 관리하는 경우 Siege가 여러 웹사이트를 동시에 처리할 수 있다는 사실에 기뻐하실 것입니다. 이는 Siege가 스트레스 테스트할 웹사이트를 결정하는 데 사용할 수 있는 구성 파일 /etc/siege/urls.txt를 통해 달성할 수 있습니다.

이 파일을 구성하려면 다음을 사용하여 엽니다. nano:

sudo nano /etc/siege/urls.txt

그런 다음 스트레스 테스트하려는 웹사이트의 URL을 삽입하세요.

https://www.example.com
https://www.example2.com
http://192.168.50.1

이러한 변경 사항을 저장하고 종료하려면 Ctrl+O, Enter를 누른 다음 Ctrl+X를 누르세요.

마지막으로 지정된 웹사이트에서 스트레스 테스트를 시작하려면 다음 명령을 실행합니다.

siege -f /etc/siege/urls.txt

Ubuntu의 추가 공성 명령

Siege는 서버에 요청을 쏟아 붓는 것만이 아닙니다. 다양한 옵션을 제공하여 테스트 접근 방식을 사용자 정의할 수 있는 다목적 도구입니다. 동시 사용자 수 제어부터 각 요청 간의 지연 조정까지 Siege의 명령 옵션을 사용하면 다양한 시나리오를 모델링할 수 있습니다.

이 섹션에서는 보다 미묘하고 세부적인 테스트를 수행할 수 있는 추가 Siege 명령에 대해 설명합니다.

Siege를 사용하여 요청 간 지연 제어

Siege를 사용하면 각 사용자의 요청 사이에 지연을 도입하여 보다 현실적인 사용자 행동을 시뮬레이션할 수 있습니다. 이렇게 하면 요청이 중단 없이 계속해서 전송되지 않습니다.

예를 들어, 아래 명령에서:

siege https://www.example.com -c 50 -d 5

Siege는 50명의 동시 사용자를 대상으로 지정된 웹 사이트를 스트레스 테스트하고 각 사용자의 요청 사이에 5초의 지연을 도입하도록 지시받습니다.

Siege를 사용하여 HTTP 메서드 및 헤더 사용자 정의

Siege를 사용하면 스트레스 테스트의 HTTP 메서드와 헤더를 맞춤설정할 수 있습니다. 예를 들어 사용자 정의 헤더를 사용하여 POST 요청을 보낼 수 있습니다. -H 플래그를 사용하면 사용자 정의 헤더를 설정할 수 있고 –method 옵션을 사용하면 HTTP 메서드를 설정할 수 있습니다. 이러한 옵션을 사용하는 방법은 다음과 같습니다.

siege --method="POST" -H "Content-Type: application/json" https://www.example.com

위 명령에서는 POST 메서드를 사용하고 요청에 대해 Content-Type 헤더를 application/json으로 설정합니다.

Siege로 결과 로깅

추가 분석이나 기록 보관을 위해 스트레스 테스트 결과를 기록할 수 있습니다. Siege는 테스트 결과를 다음과 같은 로그 파일에 기록할 수 있습니다. -l 옵션:

siege -l https://www.example.com

이 명령은 Siege에게 스트레스 테스트 결과를 기록하도록 지시합니다. 기본적으로 Siege는 홈 디렉터리에 있는 siege.log라는 파일에 로그를 기록합니다.

마무리 생각

Ubuntu 시스템에 Siege가 성공적으로 설치되면 웹 서버를 효과적으로 벤치마킹하고 스트레스 테스트할 수 있습니다. Ubuntu 기본 저장소의 편리함을 선택하든 소스에서 직접 설치하는 유연성을 선택하든 Siege는 로드 시 웹 애플리케이션이 최적으로 작동하도록 보장하는 안정적인 도구 세트를 제공합니다. Siege를 정기적으로 업데이트하여 새로운 기능과 개선 사항을 활용하고 이를 사용하여 웹 서버의 안정성과 성능을 유지하세요.

Joshua James

코멘트를 남겨주세요