์ฑ๋ฅํ ์คํธ ๋?
- ์๋น์ค ๋ฐ ์๋น์ค ์์คํ ์ ์ฑ๋ฅ์ ํ์ธํ๊ธฐ ์ํด ์ค์ ์ฌ์ฉ ํ๊ฒฝ๊ณผ ๋น์ทํ ํ๊ฒฝ์์ ํ ์คํธ๋ฅผ ์งํํ๋ ๊ฒ์ ๋งํ๋ค.
- ์ด๋ฅผ ํตํด์ Response Time(์๋ต์๊ฐ) ๊ณผ Throughput(์ฒ๋ฆฌ๋), ๋ณ๋ชฉ๊ตฌ๊ฐ ๋ฑ์ ํ์ธํ ์ ์๋ค.
- ์ฑ๋ฅ ํ ์คํธ๋ก ์ป์ ์ ๋ณด๋ก ์๋น์ค๋ ์๋น์ค ์์คํ ์ ๋ฌธ์ ์ ์ ํ์ธํ๊ณ ์ด๋ฅผ ๊ฐ์ ํ์ฌ ๋ณด์ํ ์ ์๋ค.
1. JMeter
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ฌ์ผ๋ก ๋ค์ํ ์๋น์ค์ ์ฑ๋ฅ์ ๋ถ์ํ๊ณ ์ธก์ ํ๊ธฐ ์ํ ๋ถํ ํ ์คํธ ๋๊ตฌ๋ก ์ฌ์ฉํ ์ ์๋ ์ํ์น ํ๋ก์ ํธ์ด๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์ฒ๋ผ ํด๋ผ์ด์ธํธ-์๋ฒ ๊ตฌ์กฐ๋ก ๋ ์ํํธ์จ์ด์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์ํด์ ๋ง๋ค์ด์ง ๋ฌด๋ฃ ์๋ฐ ํ๋ก๊ทธ๋จ์ด๋ค.
JMeter๋ ๋จ์/์ฑ๋ฅ/์คํธ๋ ์ค ํ ์คํธ ๋ฑ ๋ง์ ๊ณณ์์ ํ์ฉํ ์ ์๋ค.
JMeter๋ ํต์ ํ๋กํ ์ฝ ๋จ๊ณ์์๋ง ๋์ํ๊ณ ์น ๋ธ๋ผ์ฐ์ ์๋ ๋์ํ์ง ์๋๋ค. ์ฆ , ํต์ ๊ท์ฝ์ ๋ง๋๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ๋ฉ์์ง๋ง ์ก์์ ํ ๋ฟ์ด๊ณ ํด๋ผ์ด์ธํธ ์์ฒด์์ ํํด์ง๋ ์ฐ์ฐ๋์์ ํ์ง์๋๋ค.
1) JMeter์ ๊ตฌ์ฑ ์์
JMeter๋ ํฌ๊ฒ Thread Group, Connector, Request, Result View์ ๊ตฌ์ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- Thread Group : ํ ์คํธ ์๋ฒ์ ์ ์๋๊ณผ ๋น๋๋ฅผ ์ ๋ ฅ
- Connector : ํ ์คํธ ์๋ฒ์ ์ ์์ ๋ณด๋ฅผ ์ ๋ ฅ
- Request : ์ค์ ํ ์คํธํ ๋ก์ง์ ์ ๋ ฅ
- Result View : ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค
2. JMeter ์ค์นํ๊ธฐ
1) java ์ค์น : jmeter๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์๋ฐ 8 ๋ฒ์ ์ด์์ด ํ์ํ๋ค. ์๋ ๋งํฌ์์ OS๋ง๋ ๋ฒ์ ์ ๋ค์ด๋ก๋ ๋ฐ์ ์ค์นํ๋ค. (์๋ ๊ฒฝ์ฐ ์ค์นํ ํ์X)
https://www.oracle.com/java/technologies/javase-downloads.html
2) jmeter ์ค์น : ์๋ ๋งํฌ์์ jmeterํด์ ์ค์นํ ์ ์๋ค. ๋ฐ์ด๋๋ฆฌ ํ์ผ ์ค zipํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ๋๋ค.
https://jmeter.apache.org/download_jmeter.cgi
3) JMeterํด ์คํ : ์์ถ์ ํ๊ณ bin ํด๋ ์์ ์๋ jmeter.bat ์ด์ด JMeter์ ์คํ์ํจ๋ค. cmd์ฐฝ์ผ๋ก ๋ก๊ทธ ๋ฑ์ ํ์ธํ ์ ์์ผ๋ฏ๋ก ํด์ด ๋จ๊ณ ๋ ํ์๋ cmd์ฐฝ์ ๋ซ์ง ์๋๋ค.
3. JMeter - DB๊ด๋ จ ๋๊ตฌ ์ค์น
1) ์ ์๋๋ผ์ด๋ฒ ์ค์น : Jmeter๊ฐ DB์ ์ ์ํ๊ธฐ ์ํด์๋ ์ ์๋๋ผ์ด๋ฒ๊ฐ ํ์ํ๋ค. ์๋ ๋งํฌ์ ๋ค์ด๊ฐ platform independent ๋ฉ๋ด์์ zipํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ผ๋ฉด ๋๋ค.
https://dev.mysql.com/downloads/connector/j/
๋ค์ด๋ก๋ ๋ฐ์ ํ์ผ ์์ถ์ ํผ๋ค. .jar๋ก ๋๋๋ JDBC ๋๋ผ์ด๋ฒ ํ์ผ์ ๋ณต์ฌํด jmeterํด๋์ libํด๋์ ๋ฃ์ด์ค๋ค.
2) ํ ์คํธํ DB(RDS MySQL) ์์ฑ, ๋ณด์๊ทธ๋ฃน ํธ์ง
โถ 2-tier ๊ตฌ์ถ - (3. RDS MySQL ์์ฑ) )
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํผ๋ธ๋ฆญ ์ก์ธ์ค ๊ฐ๋ฅ์ '์'๋ก ์ค์ ํด์ค๋ค.
์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋๋ฅด๊ณ VPC๋ณด์๊ทธ๋ฃน ๋ฐ์ ์๋ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ค.
์ธ๋ฐ์ด๋ ๊ท์น์ ์๋์ ๊ฐ์ด SSH ๊ท์น์ ์ค์ ํด์ค๋ค. 22ํฌํธ๋ฅผ ๋ดIP๋ก๋ง ์ ์ํ ์ ์๊ฒ ๋๋ค.
3) MySQL Clent ์ค์น : ๋ก์ปฌ์์ MySQL์ ์ ์ํ๊ธฐ ์ํด์๋ MySQL Client๊ฐ ํ์ํ๋ค. ์๋ ๋งํฌ์์ ๊ฐ OS์ ๋ง๋ 8.0์ด์์ ๋ฒ์ ์ ์ฐพ์ ์ค์นํ๋ค.
https://dev.mysql.com/downloads/mysql/
๋ค์ด๋ก๋ ํ ์์ถ์ ํ๊ณ , cmd์ฐฝ์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํด ์ค์น๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋์๋์ง ํ์ธํ๋ค.
mysql --version
+) DB์ ๋ถํ๋ฅผ ์ฃผ๊ธฐ ์ํด DB์ ํ ์ด๋ธ ์์ฑ
# ๋ก์ปฌ์์ MySQL์ ์ ์
mysql -u (์ ์ ์์ด๋) -p -h (RDS ์๋ํฌ์ธํธ) -E
# DB์ ํ
์ด๋ธ ์์ฑ
create database (์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ);
use (์์ฑํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ);
create table (์์ฑํ ํ
์ด๋ธ ์ด๋ฆ) (sn varchar(10));
4. JMeter ์ฌ์ฉํ๊ธฐ (๋ฏธ๋ฆฌ ๊ตฌ์ฑ๋ ํ ํ๋ฆฟ ์ด์ฉ)
Jmeter๋ ์์ํ ๋ libํด๋๋ฅผ ์ฐธ์กฐํ๋ฏ๋ก, Jmeter๋ฅผ ๋ซ๊ณ ์ฌ์คํํ๋ค.
1) ํ ํ๋ฆฟ ์์ฑ : [ File > Templates ]๋ฅผ ํด๋ฆญํ๊ณ ์๋จ ์ ๋ ํธ๋ฐ์ค์์ JDBC Load Test๋ฅผ ํด๋ฆญํ๋ค. create ๋ฒํผ์ ๋๋ฌ ์์ฑํ๋ค.
2) Connector ์ค์ : ํ ์คํธ ์๋ฒ์ ์ ์์ ๋ณด๋ฅผ ์ ๋ ฅ
๊ฐ ์ต์ ์ ๋ํ ์ค๋ช ํ์ธ โท [ https://jmeter.apache.org/usermanual/component_reference.html ]
๋ฐ๋ก ์๋ฃ ๋ฒํผ์ ์๋ค.
3) Thread Group ์ค์ : ์ฐ๋ ๋ ๊ทธ๋ฃน์ ๋ถํ๋ฅผ ์ค ์๊ณผ ๋น๋๋ฅผ ์ค์
์์ ๊ฐ์ด ์ค์ ํ๋ฉด 10์ ์ ๊ฐ 30์ด ์์ ๋ชจ๋ ์คํํด์ผ ๋๋ฏ๋ก, (30/10)์ด์ ํ ๋ฒ์ฉ 10๊ฐ๊ฐ DB์ ์ฐ๊ฒฐ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์์ ์ 2๋ฒ ๋ฐ๋ณตํ๋ค.
4) JDBC Request ์ค์ : ์ค์ ํ ์คํธํ ๋ก์ง์ ์์ฑ
5) Summary Report ์ถ๊ฐ : summary report๋ ์์ฒญ์ฑ๊ณต์ฌ๋ถ ํต๊ณ๋ฅผ ๋ด์ค๋ค. DB์ ๋ถํ๊ฐ ๋ง์ด ๊ฑธ๋ ค์ ์์ฒญ์ ์คํจํ๊ฒ ๋ ๊ฒฝ์ฐ, ๋๋ต ๋ช ๊ฑด๊น์ง ์์ฒญ์ด ์ฑ๊ณตํ๋์ง ํ์ ํ ์ ์๋ค.
6) ๊ฒฐ๊ณผ ํ์ธ : [ ํ์ผ > ์ ์ฅ ]์ ๋๋ฌ ํ์ผ์ ์ ์ฅํ๊ณ JDBC Requestํ๋ฉด์ ๋์ฐ๊ณ ์๋จ์ ์ด๋ก์์ผ๋ก ๋ ์์๋ฒํผ์ ๋๋ฌ ์์ํ๋ค.
'๐ฅ IT 8๊ฐ ์ง๋ฌด ๊ธฐ์ด์ฒดํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฒ๋ฆฌ์ค ์น ๊ตฌ์ถ - (1. ๊ธฐ์ด์ ์ธ ํจ์ ์์ฑ๋ฒ) (0) | 2021.06.30 |
---|---|
์๋ฒ๋ฆฌ์ค ์น ๊ตฌ์ถ - (0. AWS lambda์ API Gateway๋?) (0) | 2021.06.30 |
2-tier ๊ตฌ์ถ - (8. cloudwatch) (0) | 2021.06.24 |
2-tier ๊ตฌ์ถ - (7. wordpress๋ก ๋์ ์นํ์ด์ง ๊ตฌ์ถ) (0) | 2021.06.24 |
2-tier ๊ตฌ์ถ - (6. Elastic Load Balancing) (0) | 2021.06.23 |