์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- docker compose
- jvm ๋ฐ๋ฐ๋ฅ๊น์ง ํํค์น๊ธฐ
- s3 ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- AWS Certified Solutions Architect - Associate
- ์ ํจ์ค ๋น๋ ์ค๋ฅ
- aws ์ฟ ํฐ
- docker ps -a
- ์๋ฐ
- Entity
- nGrinder
- ํ๋ก๊ทธ๋๋จธ์ค ํฉ์นํ์์๊ธ
- ๋ค์ค ์ปจํ ์ด๋
- JPA
- private subnet ec2 ๋ก์ปฌ ์ ์
- ํ๋ก๊ทธ๋๋จธ์ค
- prod docker-compose
- docker-compose kafka
- ํ์ดํผ๋ฐ์ด์
- ์คํํ๋ ๋ฏธ์ค
- ํ๋ก๊ทธ๋๋จธ์ค ์ปฌ๋ฌ๋ง๋ถ
- aws saa ํฉ๊ฒฉ
- Kafka
- Codedeploy ์ค๋ฅ
- s3 log ์ ์ฅ
- redis ํ ์คํธ์ฝ๋
- ์ ํจ์ค ์ค์ผ์ค๋ฌ
- redis ์กฐํ
- docker
- ์๋ฒ ํฐ์ง๋ ๋์ปค ์ฌ์คํ
- s3 ์ด๋ฏธ์ง ์ ์ฅ
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (106)
๐๐ข๐๐ โ๐๐๐ ๐๐๐ก๐๐ ๐๐๐๐โง
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Q1Sfv/btsFPp5z1YI/aWY7fnmLQTgXV5STD0Wk5K/img.png)
์ธ๋ฑ์ค ํ ์ด๋ธ์ ๋์ ์๋๋ฅผ ๋์ฌ์ฃผ๋ ์๋ฃ ๊ตฌ์กฐ ๋ฐ์ดํฐ์ ์์น๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์์ค๋ค. ์๋ฅผ ๋ค์ด, ์ฑ ์ ์ฐพ์๋ณด๊ธฐ๊ฐ ์์ ๋ ํน์ ์ฃผ์ ๋ ๋จ์ด๋ฅผ ์ฐพ๊ธฐ ์ํด ์ฑ ์ ๋ชจ๋ ํ์ด์ง๋ฅผ ์ฐพ์๋ณด์ง ์๊ณ , ์ฐพ์๋ณด๊ธฐ์์ ํด๋น ๋จ์ด๋ฅผ ์ฐพ์ ๋ฐ๋ก ํด๋น ํ์ด์ง๋ก ๊ฐ ์ ์๋ฏ์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค๋ ๋น์ทํ ์ญํ ์ ํ๋ค. ์ธ๋ฑ์ค์ ์ฅ์ & ํจ๊ณผ ๊ฒ์ ์ฑ๋ฅ ํฅ์: WHERE ์ ์์ ํน์ ์นผ๋ผ์ ์ด์ฉํ ์กฐ๊ฑด ๊ฒ์์ด ๋นจ๋ผ์ง๋ค. ์ธ๋ฑ์ค๊ฐ ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ค์บํ์ฌ ์กฐ๊ฑด์ ๋ง๋ ํ์ ์ฐพ์์ผ ํ๋ค. ํ์ง๋ง ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋น ๋ฅด๊ฒ ๊ฒ์์ด ๊ฐ๋ฅํ๋ค. ์กฐ์ธ ์ฑ๋ฅ ํฅ์: JOIN ์ ์์ ์กฐ์ธํ ๋ ์ธ๋ฑ์ค๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ์ฌ ์กฐ์ธ์ ์ํํ ์ ์๋ค. ์ด๋ ๋ ํ ์ด๋ธ ๊ฐ์ ๋งค์นญ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d6PnVc/btsFCBUHH7K/lQjvDZKvzjftTuYO8KQoE1/img.png)
Scouter Scouter๋ ์คํ ์์ค ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ํด๋ก, ์ฃผ๋ก ์๋ฐ(JAVA) ์ดํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ฌธ์ ์ง๋จ์ ์ฌ์ฉ๋๋ค. ์ด ํด์ ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ์ฑ๋ฅ ์งํ๋ฅผ ์์งํ๊ณ , ๋ถ์ํ์ฌ ์ฑ๋ฅ ์ ํ์ ์์ธ์ ํ์ ํ๊ณ ๊ฐ์ ํ ์ ์๋๋ก ๋์์ค๋ค. Scouter๋ฅผ ์ฌ์ฉํ๋ฉด CPU ์ฌ์ฉ๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, SQL ์ฟผ๋ฆฌ ์ฑ๋ฅ, HTTP ์์ฒญ ์ฒ๋ฆฌ ์๊ฐ ๋ฑ ๋ค์ํ ์ฑ๋ฅ ์งํ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ ์ ์๋ค. 1. ์ค์นด์ฐํธ ๋ชจ๋ํฐ๋ง TOOL ์ค์นํ๊ธฐ https://github.com/scouter-project/scouter/releases Releases · scouter-project/scouter Scouter is an open source APM (Application Performan..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ncEOx/btsFJ7dKrM5/igZYIBiGDIJL9DoACHYTd1/img.png)
ํ์๋ ๋ก์ปฌํ๊ฒฝ์์ ์ธํ ๋ฆฌ์ ์ด ๋๋ฒ๊น ์ ์ฝ๊ฒ ํ๊ธฐ ์ํด ๋ก์ปฌํ๊ฒฝ์์๋ Redis์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์ด๋๋ง ๋์ ๋ค. ํ์ง๋ง ํด๋ผ์ฐ๋ ์๋น์ค์ ๋ฐฐํฌ๋ฅผ ์ํด์๋ ์คํ๋ง๋ถํธ ์ปจํ ์ด๋๋ ๋์์ค์ผ ํ๋ค. ์ด์ํ๊ฒฝ์ ์ํ Redis + Mysql + Spring Boot ์ปจํ ์ด๋๋ฅผ๋์๋ณด์. ์ฐ์ ์ด์ํ๊ฒฝ์์ ์ฌ์ฉํ Docker Compose ํ์ผ์ ์์ฑํ์. ์ด์ ์ ๋ก์ปฌ ํ๊ฒฝ์ ์ํด ์์ฑํ๋ docker-compose-local.yml๊ณผ Dockerfile๊ณผ ๋์ผํ ๊ฒฝ๋ก์ docker-compose.yml ํ์ผ์ ์์ฑํด ์ค๋ค. docker-compose.yml version: "3.8" services: creditmarket-redis: # ์๋น์ค๋ช container_name: creditmarket-redis #..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/qDqqI/btsFKMtj4bt/d8NTA5FRkbB15TcefmrIZ0/img.png)
Redis ํน์ง๊ณผ ์ฅ/๋จ์ ์ ์์๋ณด์ Redis ํน์ง In-memory ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก key-value ํํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค. ๋ค์ํ command๋ฅผ ์ ๊ณตํ๋ฉฐ single thread์ด๋ค. ์ฅ์ ์ฌ๋ฌ instance๊ฐ ํ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ ์์๋ค. ๋ค์ํ command๋ฅผ ์ง์ํ๋ค. ๋จ์ Local caching์ ๋นํด์๋ ๋๋ฆฌ๋ค. ํ์ฌ ํ์์ ํ๋ก์ ํธ๋ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋งค๋ฒ ์์ฒญ๋ง๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐํํด์ ๊ฐ์ ธ์ค๊ณ ์๋ค. ํ์ง๋ง ๋ณํํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋งค๋ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐํํด์ ๊ฐ์ ธ์จ๋ค๋ฉด ์ฑ๋ฅ์ ๋ฌด๋ฆฌ๊ฐ ๊ฐ ์ ์๋ค. ๋ฐ๋ผ์ ์ด ๋ฐ์ดํฐ๋ฅผ redis๋ก ์บ์ฑ์ ํด๋๊ณ ์กฐํํ ๋ ์บ์ฑ๋ ๋ฐ์ดํฐ๋ฅผ redis๋ก๋ถํฐ ์กฐํ๋ฅผ ํด์ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ์ ์ ํด๋ณด์. ๋ํ Redis๋ฅผ ์ฌ์ฉํ ๋๋ failover์ ๋ํ ๋ถ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c5nPNr/btsFGjFrbPt/NfGfWZbZgtSJE3MZsD2uqk/img.png)
ํ๋ก์ ํธ์์ JWT์ ์ฌ์ฉํ๋๋ฐ ๋ก๊ทธ์์ ๊ตฌํ์ ์ํด Redis๋ฅผ ์ฌ์ฉํด์ผํ๋ค.JWT์ ํน์ฑ์ ํ ๋ฒ ๋ฐ๊ธ๋ ํ ํฐ์ ๋ง๋ฃ๋๊ธฐ ์ ๊น์ง ๊ณ์ ์ ํจํ๊ฒ ๋จ์์๊ธฐ๋๋ฌธ์ ๋ก๊ทธ์์์ ์ํด์๋ ์๋ฒ๋ ํด๋น ์ฌ์ฉ์์ ํ ํฐ์ ๋ธ๋๋ฆฌ์คํธ์ ์ถ๊ฐํด์ผ ํ๋ค. Redis๋ ์ด๋ฌํ ๋ธ๋๋ฆฌ์คํธ๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋์ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค.Redis๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ๊ฒ ๋ก๊ทธ์ธ, ๋ก๊ทธ์์์ ๊ตฌํํด๋ณด์. ์์กด์ฑ ์ถ๊ฐ & Redis ์ค์ build.gradle์ redis dependency๋ฅผ ์ถ๊ฐํด์ฃผ์.implementation 'org.springframework.boot:spring-boot-starter-data-redis' RedisRepositoryConfig.javaRedis ์ค์ ํ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bksX5d/btsFEg31W1F/wlwbcwsDIfyfKY01F5j3W0/img.png)
ํ์๋ ํ๋ก์ ํธ์์ redis ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด docker-compose ํ์ผ์ ์ฌ์ฉํ์ฌ redis ์ปจํ ์ด๋๋ mysql ์ปจํ ์ด๋ 2๊ฐ๋ฅผ ๋์ธ๋ ค๊ณ ํ๋ค. ์ฐ์ ๋์ปค์ ๋์ปค ์ปดํฌ์ฆ์ ์ฐจ์ด๋ฅผ ์์๋ณด์. Docker Docker๋ ๋จ์ผ ์ปจํ ์ด๋๋ฅผ ๋น๋, ์คํ ๋ฐ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋๊ตฌ Docker ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ๋น๋, ์ปจํ ์ด๋ ์คํ, ๋ก๊ทธ ํ์ธ, ์ปจํ ์ด๋ ์ค์ง ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋จ์ผ ์น ์๋ฒ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปจํ ์ด๋๋ฅผ ๋์ธ ๋ Docker๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Docker Compose Docker Compose๋ ์ฌ๋ฌ ์ปจํ ์ด๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ณ ์คํํ๊ธฐ ์ํ ๋๊ตฌ ์ฌ๋ฌ ๊ฐ์ ์๋น์ค, ๋คํธ์ํฌ, ๋ณผ๋ฅจ ๋ฑ์ ํฌํจํ๋ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ์ ์..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/96vjV/btsFFSBjWRD/wcrHDmdwqNcoYC1fw1s3kk/img.png)
๋์ปค์ ์ฅ์ - ํ์ดํผ ๋ฐ์ด์ ๊ตฌ์กฐ๋ฅผ ํ ๋๋ก ๋ฑ์ฅํ์ผ๋ฉฐ, VM๋ณด๋ค ํจ์ฌ ๊ฐ๋ณ๊ฒ ๋์ํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ์ ๋ฆฌ! ์ด๋ฏธ์ง - ์ฝ๋, ๋ฌํ์, ์์คํ ๋๊ตฌ, ์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ค์ ๊ณผ ๊ฐ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ํํจํ๋ ํจํค์ง - ์ปจํ ์ด๋๋ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๋ ๋ฆฝ๋ ๊ณต๊ฐ์์ ์คํ ํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์ - ์ฆ ํ๋ก๊ทธ๋จ์ ์คํํ๋๋ฐ ํ์ํ ์ค์ ์ด๋ ์ข ์์ฑ๋ค์ ๊ฐ์ง๊ณ ์๋ค. - ์ปจํ ์ด๋๋ ์ด๋ฏธ์ง ์ธ์คํด์ค์ด๋ฉฐ, ํ๋ก๊ทธ๋จ์ ์คํํ๋ค. Docker Compose๋ - ๋ฉํฐ ์ปจํ ์ด๋ ๋์ปค ์ดํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ณ ์คํํ๋ ๋๊ตฌ - Application, Databse, Redis, Nginx ๋ฑ ๊ฐ ๋ ๋ฆฝ์ ์ธ ์ปจํ ์ด๋๋ก ๊ด๋ฆฌํ๋ค๊ณ ํ์๋ ๋ค์ค ์ปจํ ์ด๋ ๋ผ์ดํ ์ฌ์ดํด์ ์ฌ๋ฌ๊ฐ์ ๋์ปค ์ปจํ ์ด๋๋ก๋ถํฐ ์ด๋ฃจ์ด์ง ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/lxazF/btsFGBFnkvN/vJZLNwnCYbmIfg7twxn9y1/img.png)
ngrinder ์ฑ๋ฅ ํ ์คํธ ๋ฐ ๋ถํ ํ ์คํธ๋ฅผ ์ํํ๋ ์คํ ์์ค ํ๋ ์์ํฌ์ด๋ค. nGrinder๋ Java ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ nGrinder์์ ์ฌ๋ฌ๊ฐ์ง ๊ฐ์ ์๋๋ฆฌ์ค๋ฅผ ๋ง๋ค์ด ํธ๋ํฝ์ ๋ชฐ๋ ธ์ ๋ ์ฑ๋ฅ์ ์ธก์ ํ ์ ์๋๋ก ๋์์ค๋ค. 1. ngrinder ์ค์นํ๊ธฐ https://github.com/naver/ngrinder/releasesโ ์์ ngrinder-controller-3.5.5-p1.war ํ์ผ ๋ค์ด๋ก๋ํ๋ฉด ๋๋ค. ๊ด๋ฆฌํ๊ธฐ ์ฝ๊ฒ ngrinder ๋ผ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๋ค์ด๋ฐ์ ํ์ผ์ ์์น์ํค์. ํด๋น ํ์ผ์ด ์๋ ๊ฒฝ๋ก์์ ํฐ๋ฏธ๋์ ์ด๊ณ java -jar ngrinder-controller-3.5.9.war --port=8300 ๋ฅผ ์ ๋ ฅํด์ฃผ๋ฉด ์คํ๋๋ค. java ..