본문 바로가기
성능 테스트

Devops Day 64 (6.7) 성능 테스트_Sprint AWS EC2와 K6를 이용한 성능테스트

by Jackykim 2023. 6. 10.

Procedure
1. Aws EC2 인스턴스 생성
- 버스트 기능이 있는 t2 micro를 생성
- ubuntu 20.04


2. SSH 접속 (인스턴스 접속)

3. Docker를 인스턴스 EC2에 설치
#업데이트 및 HTTP 패키지 설치

3.1 sudo apt update

3.2 sudo apt-get install -y ca-certificates \

    curl \

    software-properties-common \

    apt-transport-https \

    gnupg \

    lsb-release

# GPG 키 및 저장소 추가

3.3 sudo mkdir -p /etc/apt/keyrings

 

3.4 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

 

3.5 echo \

  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \

  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 도커엔진 설치

3.6 sudo apt update

3.7 sudo apt install docker-ce docker-ce-cli containerd.io

 

4. 컨테이너 작동
성능 테스트를 위한 타깃 서버를 컨테이너로 배포합니다.
docker run --name <이름> -d -p 8080:8080 sebcontents/cozserver:1.0

4.2 서버 배포 확인
curl http://localhost:8080

5. Install K6
- 공식 홈페이지를 이용하여 k6를 설치합니다. (트러블 슈팅 주의)

- 클라우드 상에 빠른 설치를 위해서 snapd도 추천합니다.
sudo apt update

sudo apt install snapd

sudo snap install k6

6. 리포지토리에 유형별 테스트 스크립트가 작성되어 있습니다.
리포지토리 : https://github.com/cs-devops-bootcamp/sprint_k6_test (git clone)

 

7. Run test
각각의 스크립트를 실행해 보고 ec2 인스턴스의 CPU 사용률 대시보드를 확인해 보세요.

run k6 basic_test.js

 

run k6 load_test.js

 

run k6 stress_test.js

 

run k6 spike_test.js

run k6 soak_test.js

 

Error :
1. 컨테이너 작동 할려고 하였지만 권한 문제로 미작동

해결 : sudo docker run --name -d -p 8080:8080 sebcontents/cozserver:1.0 하면 이상없이 작동

 

2. Curl 했을때 “curl: (7) Failed to connect to localhost port 8080: Connection refused”
해결 : sudo docker run --name local -d -p 8080:8080 sebcontents/cozserver:1.0 컨테이너 이름 추가 하면 해결 완료

3. AWS EC2 인스턴스에서 git clone 할때 repository-git@github.com: Permission denied (publickey) 권한 문제로 SSH key 새로 설정 필요
해결 :
3.1 sudo apt-get install git
3.2 cd ~/.ssh
3.3 ssh-keygen -t rsa -C github@email.com 후 비밀번호 설정
3.4 cat id_rsa.pub -> ssh 정보를 github 키에 기입 및 설정한 후 git clone 하면 이상없음

 

4. git clone 후 Script 실행하기 위해 run k6 basic_test.js 하였지만 Command 'run' not found, did you mean: error 메시지로 명령어 변경 후 실행 k6 run basic_test.js