코멘토 - 직무부트캠프

성능테스트 - RDS MySQL - Jmeter - CloudWatch

1son 2023. 2. 6. 08:38

이번시간에는 성능테스트를 위한 툴을 설치해보고 DB부하 테스트에 사용해보겠습니다. 

 

성능테스트에 사용되는 툴은 여러가지가 있는데요, 무료버전으로는 Jmeter와 Locust툴이 많이 사용됩니다.

 

여기서는 만들어진지 가장 오래되어 웬만한 것을 모두 테스트 할 수 있는 jmeter를 사용해보겠습니다. 

 

https://jmeter.apache.org/download_jmeter.cgi

 

Apache JMeter - Download Apache JMeter

Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava

jmeter.apache.org

여기서 다운 가능

 

설치하고 압축을 해제하세요 

그 후, jmeter.bat을 실행합니다.

 

 

 

Jmeter가 테스트할 DB도 만들어줍니다. 

DB가 private 서브넷에 생성되어 있으면 접속할 수 없습니다. 

 

https://velog.io/@tlsalsckd13/AWS-%EA%B8%B0%EB%B3%B8-VPC-%EB%A7%8C%EB%93%A4%EA%B8%B0

 

AWS 기본 VPC 만들기

AWS에서 사용한 모든 서비스를 삭제/종료 하였는데도 계속 소액이 과금이 되서 계정에 존재하는 모든 서비스를 다 삭제하였다. 하지만 삭제 한 후 계정 내부 구성이 아무것도 없어서 EC2 서비스를

velog.io

기본 VPC를 삭제해서 다시 생성해주었고 

 

만들 수 있을 줄 알았는데 

서브넷 그룹이 없다. 

다시 생성하러 

 

 

서브넷을 생성해주고 

인터넷게이트웨이를 생성한 후, 연결시켜서 서브넷이 인터넷 망에 접속할 수 있게 만들겠습니다. 

 

이렇게 변경!

 

인터넷게이트웨이 들어가보니 이미 있네요?

 

에잇

 

다시 VPC생성하고 다시 합니다

근데 이게 뭐죠

 

또 데이터베이스 생성에 실패했습니다. 

이제는 참을 수 없네요 

다른 계정에 들어가서 처음부터 다시 해보겠습니다.

 

안했던거를 해볼게요 

서브넷그룹을 생성해줍니다.

 

그랬더니 드디어 DB서브넷 그룹이 뜬다.

 

 

드디어 데이터베이스 만들기 성공한듯?!

 

DB를 만들고 나면 로컬컴퓨터에서 DB에 접속가능하도록 보안그룹을 수정합니다. 

 

인바운드 보안그룹 규칙편집-> SSH유형, 내IP 

이렇게 하면 나만 22포트로 접근할 수 있게됩니다. 

 

 

 

로컬에서 MySQL에 접속하기 위해서는 MySQL Client가 필요한데요, 

이를 설치해줍니다. 

https://dev.mysql.com/downloads/file/?id=516465 

 

MySQL :: Begin Your Download

The world's most popular open source database Contact MySQL  |  Login  |  Register

dev.mysql.com

 

다운로드 후 압축을 풀어줍니다.

설치가 잘 되었으면 버전 정보가 아래와 같이 나옵니다. 

저는 이전에 설치했던 버전이 나오는 것 같습니다.

 

 

로컬에서 접속하도록 방화벽을 구성했고, 퍼블릭 허용을 했었기 때문에 

로컬에서 바로 접속할 수 있습니다. 

바로 접속해보도록 하겠습니다. 

 

 

mysql -u 아이디 -p -h 엔드포인트주소 -E로 접속했지만 에러가 뜹니다. 

 

한번에 제대로 된적이 없네요 mysql접속은 

 

^^

 

https://veneas.tistory.com/entry/MySQL-MySQL-%EC%99%B8%EB%B6%80-%EC%A0%91%EC%86%8D-%EB%B6%88%EA%B0%80%EB%8A%A5-%ED%98%84%EC%83%81-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95-%EC%A0%91%EA%B7%BC-%EA%B6%8C%ED%95%9C

 

[MySQL] MySQL 외부 접속 불가능 현상 해결 방법 (접근 권한)

목차 1. 증상 1.1. ERROR 1130 (HY000): Host 'Host IP' is not allowed to connect to this MariaDB server # mysql -u root -h HostIP -p --port 3306 Enter password: ******** ERROR 1130 (HY000): Host 'Host IP' is not allowed to connect to this MariaDB server

veneas.tistory.com

 

....

 

+

 

수정하기에서

 

해줍니다. 

 

그것이 문제였던 것이다...

 

 

DB에 부하

 

 

또 Jmeter가 제대로 안되는 문제 발생

 

해당 Request를 클릭해서 로그를 확인한다. 

 

뒤에 DB명이라는 것은 

 

앞서 데이터베이스 mysql에서 생성해주었던 

 

create database comento를 뜻한다. 

따라서 뒤에 comento를 붙여주고 

 

file-> save를 눌러 저장해주고 다시 재생해준다. 

 

 

다시 초록불로 변경되었다. 정상적이다. 

 

 

DB에서도 데이터가 잘 들어갔는 지 확인해볼 수 있다.

 

10개의 데이터가 들어가 있다.

 

 

이제 더 큰 부하를 주겠습니다. 

 

300개의 요청이 10초안에 요청하도록 쓰레드 그룹을 수정합니다. 

 

 

JDBC Request를 실행하고, 

RDS 모니터링 혹은 클라우드 와치 서비스에서 부하를 확인해봅니다. 

 

Q. 쓰레드그룹을 조절해서 CPU가 높아지는 순간이 언제인지 테스트를 해보고, 

이 DB의 성능적 한계를 파악해보세요 

 

JDBC request를 실행하고 부하를 일으켰던  11:38이 가장 CPU 사용량이 높은 것을 확인했다. 

 

 

이제 성능테스트의 기본을 배웟습니다. 

지금 테스트한 이 성능 테스트는 DB뿐만 아니라 다양한 서버에 시도해볼 수 있습니다. 

각 분야 전문가도 경우에 따라서는 성능 테스트가 생소한 영역이니, 

이번 기회에 잘 숙지하시고 인정받으시길 

 

 

'코멘토 - 직무부트캠프' 카테고리의 다른 글

Backend 서버배치 - Lambda - postman  (0) 2023.02.07
AWS 과금 방지  (0) 2023.02.02
2tier 구축 - wordpress  (0) 2023.02.02
2tier 구축 - Load Balancing-2  (0) 2023.02.02
2tier 구축 - Load Balancing  (0) 2023.02.01