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
'성능 테스트' 카테고리의 다른 글
Devops Day 65 (6.8) 성능 테스트_부하 테스트 도구와 활용 (0) | 2023.06.08 |
---|---|
Devops Day 64 (6.7) 성능 테스트_병목 찾기 (0) | 2023.06.08 |
Devops Day 64 (6.7) 성능 테스트_가용성과 확장성 + 부하 테스트 기본 (0) | 2023.06.08 |