์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 ps -a
- docker
- ์ ํจ์ค ๋น๋ ์ค๋ฅ
- prod docker-compose
- Entity
- aws ์ฟ ํฐ
- docker-compose kafka
- Kafka
- s3 ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- AWS Certified Solutions Architect - Associate
- s3 log ์ ์ฅ
- JPA
- jvm ๋ฐ๋ฐ๋ฅ๊น์ง ํํค์น๊ธฐ
- ํ์ดํผ๋ฐ์ด์
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ ํจ์ค ์ค์ผ์ค๋ฌ
- ํ๋ก๊ทธ๋๋จธ์ค ์ปฌ๋ฌ๋ง๋ถ
- ์คํํ๋ ๋ฏธ์ค
- ์๋ฐ
- ํ๋ก๊ทธ๋๋จธ์ค ํฉ์นํ์์๊ธ
- private subnet ec2 ๋ก์ปฌ ์ ์
- redis ํ ์คํธ์ฝ๋
- nGrinder
- s3 ์ด๋ฏธ์ง ์ ์ฅ
- aws saa ํฉ๊ฒฉ
- Codedeploy ์ค๋ฅ
- ์๋ฒ ํฐ์ง๋ ๋์ปค ์ฌ์คํ
- docker compose
- redis ์กฐํ
- Today
- Total
๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (106)
๐๐ข๐๐ โ๐๐๐ ๐๐๐ก๐๐ ๐๐๐๐โง
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bwcuhj/btsFwDxXPd1/1zG9LmRt6W4WcNe2FWtEVk/img.png)
dto ๊ตฌ์กฐ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํด์ผํ ์ง ๊ณ ๋ฏผ์ ์ ๋ง ๋ง์ด ํ๋ค. ๋์ ๋ฐฉ๋ฒ์ด ์ ๋ต์ด ์๋์ง๋ง ๋์ ๊ฐ์ ๊ณ ๋ฏผ์ ํ๋ ๋ถ๋ค์ ์ํด ๊ณ ๋ฏผ์ ๊ธฐ๋กํด๋ณธ๋ค. ๐ ๊ณ ๋ฏผ์ ์๋ง ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋ง์ dto ๊ฐ ๋ง๋ค์ด์ก๋ค. ๊ทธ๋์ ์ฒ์์๋ ๋น์ทํ dto ๊ฐ์ฒด๋ค์ InnerStaticClass ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑํ์๋ค. ์ฐ์ InnerStaicClass ๋ฅผ ์์๋ณด์ ๐InnerStaicClass ๋ด๋ถ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ธ๋ถ ํด๋์ค์ ๋ด๋ถ ํด๋์ค๊ฐ ๊ธด๋ฐํ ๊ด๊ณ๋ฅผ ๋งบ์ ๋ ์ฌ์ฉํ๋ค. ๋ด๋ถ ํด๋์ค์์ ์ธ๋ถ ํด๋์ค์ ๋ฉค๋ฒ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์๋ค. ์๋ก ๊ด๋ จ์๋ ์ฝ๋๋ฅผ ๋ฌถ์ด์ ์ฝ๋์ ์บก์ํ๋ฅผ ์ฆ๊ฐ์ํจ๋ค. ์ธ๋ถ์์๋ ๋ด๋ถ ํด๋์ค์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋์ ๋ณต์ก์ฑ์ ์ค์ผ ์ ์๋ค. static์ด ๋ถ์ง ์์์ ๋ ๋จ์ ์ฐธ์กฐ๊ฐ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/rx1ZC/btsFy8qh1Ux/YkclqIQqlLn2NHaHKBtw6K/img.png)
sudo docker start [Container ID] mysqlMySQL๋ฅผ Docker ๋ก ๋์ฐ๋ ๊ฒฝ์ฐ, ์๋ฒ๊ฐ ํฐ์ง ๋๋ง๋ค ์ปจํ ์ด๋๋ฅผ ์ฌ์คํํ๋ ๋ฐฉ๋ฒ์ด๋ค. 1. AWS ์๋ฒ ์ฌ๋ถํ ํ๊ธฐ์ฐ์ AWS ์์ ์๋ฒ๋ฅผ ์ฌ๋ถํ ํ์์ฌ๋ถํ ์ ํ๊ฒ๋๋ฉด ์ปจํ ์ด๋๋ฅผ ์ฌ์คํ ํด์ค์ผํ๋ค. 2. ์ปจํ ์ด๋ ์ฌ์คํํ๊ธฐssh๋ก ec2์ ์๊ฒฉ ์ ์ํ๋ค.sudo docker ps -aํ์ฌ ๋์ํ๊ณ ์๋ ์ปจํ ์ด๋ ์ํ๋ฅผ ํ์ธํ๋ค. sudo docker ps -aa์ต์ ํ๋ฉด running ์ํ์ ์ฃฝ์ ์ํ ๋ชจ๋ ์ํ์ ์๋ ์ปจํ ์ด๋ ๋ค ํ์ธ ๊ฐ๋ฅํ๋ค. mysql ์ด exited ์ํ ๋ ๊ฒ์ ํ์ธํ๊ณ sudo docker start [Container ID]๋ก mysql ์ฌ๊ธฐ๋ํ๋ค.sudo docker ps ๋ก ์คํ์ํจ ์ปจํ ์ด๋๊ฐ ์ ๋..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cXEQ0L/btsFz7q2rht/SttyDKh15FKx66OaBjxDjk/img.png)
๐๋์ ๋ฐฐ๊ฒฝ ํ๋ก์ ํธ์์ ๋งค์ผ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํด์ผ ํ๋ ์์ ์ ํด์ผ ํ๋ค. ์ฒ์์๋ ์ฌ์ฉ์๊ฐ ํน์ API์ ์ ๊ทผ ์ findAll๋ฅผ ํ์ฌ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จํ, ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๋น๋ํ save ํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์๋๋ฐ, ์ด๋ ์ฌ์ฉ์๊ฐ API์ ์ ๊ทผ์ ์ํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ง ์์ ๋ฐ์ดํฐ ์ ํฉ์ฑ์ด ๋จ์ด์ง๋ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. ๋ฐ๋ผ์ ๋งค์ผ๋ง๋ค ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด ์ ์ฅํด์ผ ํ๋ ๋ฉ์๋๋ฅผ ๋ฐ๋ก POST API๋ก ๋นผ์ ์ ํจ์ค ์ค์ผ์ค๋ฌ๋ฅผ ํตํด ์คํํ๊ธฐ๋ก ํ๋ค. 1. ์ค์ผ์ค๋ฌ๋ฅผ ํ์ฉํ API์์ฑ ์ค์ผ์ค๋ฌ๋ก ํ์ฉํด์ ํธ์ถํ POST ์์ฒญ API๋ฅผ ๋ง๋ค์๋ค. ํด๋น API๋ ๋ฑ๋ก๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์๋ก์ด ๋ฐ์ดํฐ๋ก ์์ฑ ํ ์ ๋ฐ์ดํธ ํด์ค๋ค. 2. ์ ํจ์ค JOB ์์ฑ ํ์ฌ ํ์์ ํ๋ก์ ํธ๋ ๋๋ฉ์ธ์ ..
์ํฐ๋์์ ํ๋ฆฌ์จ๋ณด๋ฉ ๋ฐฑ์๋ ์ฑ๋ฆฐ์ง 3์ ํ๋ก๊ทธ๋จ์ ์ฐธ์ฌ์ ์ฒญ์ ํ๋ค. AWS๋ฅผ ํ์ฉํ ์์คํ ์ํคํ ์ฒ ์ค๊ณ์ ๊ดํ ๋ด์ฉ์ ์ค๋ช ํด์ค๋คํด์ AWS ๋น ์์ด์ธ ๋๋ก์จ ๋น์ฅ ์ ์ฒญํ๋ค. 1ํ์ฐจ ์์ ์์๋ ์ ๋ฐ์ ์ธ AWS ๊ตฌ์กฐ์ ํจ์จ์ ์ธ ์ด์ ๋ฐฉ์์ ๋ํด ์ค๋ช ํด์ฃผ์ จ๋ค. Agenda ์ข์ ์ํคํ ์ฒ๋? Monolithic server RDS scaling EC2 scaling Cache CDN Serverless ๋ด์ฉ ์์ฝ ์ข์ ์ํคํ ์ฒ๋? ์๋น์ค ์ด์ ๋ฐฉ์์ ์ ํฉํ ์ํคํ ์ฒ ๊ฐ๋ฐ์๊ฐ ์๊ฐํ๊ธฐ์ “์ด๊ฑฐ ๋ฌด์กฐ๊ฑด ํด์ผ๋ผ์" ์ฌ์ฉ์๊ฐ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋๋ฐ bottleneck์ด ๋ฐ์ํ์ง ์๋ ์ํคํ ์ฒ ์๋น์ค ์ด๊ธฐ๋จ๊ณ์์ ๊ตณ์ด auto scaling ์ํด๋ ๋๋ค. ๋ฌด์กฐ๊ฑด ๊ธฐ๋ณธ๋ง ๋ง๋ค๊ณ ํธ๋ํฝ์ด ๋์ด๋๋ค๋ฉด ๊ทธ๋ ํ์ฅํ์! โ๏ธsca..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/rf9jq/btsFm2d2W7R/mY5levV9mlMV3yNzEhuhc1/img.png)
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๋์ปค๋ก ๋์ด MySQL๋ฅผ EC2 MySQL๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ํ๊ธฐ๋ก ํ๋ค. ์ฒ์์๋ MySQL WorkBench์์ ssh ์ ์์ ์ฌ์ฉํ๋ Standard TCP/IP over SSH ์ผ๋ก ์ฐ๊ฒฐ์ ์ฑ๊ณตํ์๋ค. ํ์ง๋ง ์คํ๋ง๋ถํธ application.yml ํ์ผ์์ ์๊ฒฉ DB ์ค์ ์ ์คํจํ๋ค..ใ ใ ๋น์ฐํ๊ฒ ์คํ๋ง๋ถํธ(๋ก์ปฌ)์์ ssh์ค์ ์ด ์์ผ๋ฉด ์ฐ๊ฒฐ์ด ๋ถ๊ฐ๋ฅํ๋ค... ์คํ๋ง๋ถํธ์ ssh ์ค์ ์ ์๋ํด๋ดค์ง๋ง ์ฒ์ฐธํ ์คํจํ๋คใ ๊ทธ๋์ ํ์๋ SSH ํฐ๋์ ์์ฑํ์ฌ Local Port Forwarding ์ผ๋ก Private Subnet์์ EC2 MySQL์ ์ ์ํ์๊ณ ๋ฐฉ๋ฒ์ ๊ณต์ ํด๋ณด๊ณ ์ ํ๋ค. ํ์ฌ ์๋ฒ ํ๊ฒฝ ํ์ฌ ํ๋ก์ ํธ ์๋ฒ ํ๊ฒฝ์ ๋๊ฐ์ ๊ฐ์ฉ์์ญ(ap-northeast-2a, ap..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c1cIem/btsFuKwsjTk/sLzRRFtKcMvWrsDAduuzHk/img.png)
ssh๋ก ec2 ์ ์์ด ์ ๋๋์ค ๊ฐ์๊ธฐ ๊ณ์ broken pipe ๊ฐ ๋จ๋ฉด์ ์ ์์ด ์๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ๊ตฌ๊ธ๋งํด์ ์ฐพ์๋ณด๋๊น ์ผ์ ์๊ฐ ์คํ์ด ์์ด, ssh ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋์ด์ ธ์ ๋ฐ์ํ ์ค๋ฅ์๋ค. ๐ ํด๊ฒฐ๋ฐฉ๋ฒ sudo nano /etc/ssh/ssh_config ๋ช ๋ น์ผ๋ก ssh_config ํ์ผ์ ์ฐ๋ค Host * ์๋์ ServerAliveInterval 120 TCPKeepAlive no ๋ฅผ ์ถ๊ฐํ๋ค. ServerAliveInterval 120 = ํด๋ผ์ด์ธํธ๊ฐ 120์ด๋ง๋ค ๊ณตํจํท(Null Packet)์ ์๋ฒ์ ์ ์กํ์ฌ ์ฐ๊ฒฐ์ ์ ์งํ๋ค. ์ฆ 120์ด๋ง๋ค ์๋ฒ์๊ฒ ๋๋ต์ ํ๋ผ๋ ์์ฒญ์ ๋ณด๋ด๋๊ฒ์ด๋ค. TCPKeepAlive no = TCPKeepAlive๋ TCP ์์ผ ์ฐ๊ฒฐ์์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b9YpmB/btsFobu0yR2/GGgwZdaSrKv6d0T5767Kn1/img.png)
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ AWS๊ฐ ๋๋ฌด ์ฌ๋ฐ์ด์ก๋ค...ใ ใ ๊ทธ๋์ 3๋ฌ ๋์ ๊ณต๋ถ ํ AWS Solutions Aritect Associate๋ฅผ ์ทจ๋ํ์๋๋ฐ, ๊ณต๋ถ ๋ฐฉ๋ฒ๊ณผ ์ํ ํ๊ธฐ๋ฅผ ์ ์ด๋ณธ๋ค. ์ฒ์ AWS ์ ํ๋ ๋ถ๋ค์ ์๋์ AWS ๊ฐ์์ค์ ์ฝ๊ฒ ์ค๋ช ํ๋ AWS ๊ธฐ์ด ๊ฐ์ข๋ฅผ ๋ณด๋ฉด ์ ๋ฐ์ ์ธ AWS ๊ธฐ์ด๋ฅผ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค. ํ์๋ ์ฒ์์ AWS ์ดํด๊ฐ ์ด๋ ค์ ์ง๋ง ํด๋น ์ฌ์๋ชฉ๋ก์ 3๋ฒ ์ด์ ๋๋ ค๋ณด๊ณ ์ ์ด๋ ์ ๋ ์ดํด๋ฅผ ํ ํ SAA ๊ณต๋ถ๋ฅผ ์์ํ์๋ค. ๊ฐ์ถ!!!! https://youtube.com/playlist?list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&si=xAQf_j-hllbC1zCK ์ฝ๊ฒ ์ค๋ช ํ๋AWS ๊ธฐ์ด ๊ฐ์ข www.youtube.com ์ด๋์ ๋ ์ดํด๋ฅผ ํํ ๋ณธ๊ฒฉ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cXuGLU/btsFyvyzHzk/n4Tq2oqhFPS8VEjKXE6TZ0/img.png)
ํ๋ก์ ํธ์ ์ ํจ์ค๋ก CI๋ฅผ ๊ตฌ์ถํ ํ AWS CodeDeploy๋ฅผ ํตํด ์๋ CD ํ๊ฒฝ์ ๋ง๋ค์๋๋ฐ, ๊น ๋จธ์ง ํ, ์ ์คํ๋๋ ์ ํจ์ค๊ฐ ๊ฐ์๊ธฐ ๋น๋ ์ค๋ฅ ๋๊ณ CodeDeploy ๋ฐฐํฌ๋ ์คํจํ๋ค...์์ด๋ผ๋ ธ์์ด๋ผ๋ ธ๐คฏ ์ ํจ์ค ์ค๋ฅ ๋ก๊ทธ๋ฅผ ๋ณด๋ Started by user dog Running as SYSTEM Building in workspace /var/lib/jenkins/workspace/deploy-api-server [WS-CLEANUP] Deleting project workspace... [WS-CLEANUP] Deferred wipeout is used... [WS-CLEANUP] Done The recommended git tool is: NONE using credential dog-..