์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- redis ํ ์คํธ์ฝ๋
- ํ๋ก๊ทธ๋๋จธ์ค
- prod docker-compose
- ์๋ฒ ํฐ์ง๋ ๋์ปค ์ฌ์คํ
- s3 ์ด๋ฏธ์ง ๋ค์ด๋ก๋
- ํ๋ก๊ทธ๋๋จธ์ค ์ปฌ๋ฌ๋ง๋ถ
- docker compose
- @RestControllerAdvice
- aws ์ฟ ํฐ
- AWS Certified Solutions Architect - Associate
- Entity
- ํ๋ก๊ทธ๋๋จธ์ค ํฉ์นํ์์๊ธ
- Codedeploy ์ค๋ฅ
- ์คํํ๋ ๋ฏธ์ค
- ์ ํจ์ค ์ค์ผ์ค๋ฌ
- docker
- docker-compose kafka
- ๋ค์ค ์ปจํ ์ด๋
- s3 ์ด๋ฏธ์ง ์ ์ฅ
- ํ์ดํผ๋ฐ์ด์
- ์ ํจ์ค ๋น๋ ์ค๋ฅ
- JPA
- private subnet ec2 ๋ก์ปฌ ์ ์
- Kafka
- docker ps -a
- redis ์กฐํ
- ์๋ฐ
- s3 log ์ ์ฅ
- aws saa ํฉ๊ฒฉ
- nGrinder
- Today
- Total
๋ชฉ๋ก๐ฃ๐ฟ๐ผ๐ด๐ฟ๐ฎ๐บ๐บ๐ถ๐ป๐ด๐ป/๐๐๐ (8)
๐๐ข๐๐ โ๐๐๐ ๐๐๐ก๐๐ ๐๐๐๐โง
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cIWBYv/btsFUjSdEEW/Yj3gZpPysp42WJKzrEOMW1/img.png)
๊ณผ๊ฑฐ ํ๋ก์ ํธ์์ ๋ก์ปฌ์ ์ด๋ฏธ์ง๋ ํ์ผ์ ์ ์ฅ, ์กฐํ, ๋ค์ด๋ก๋ ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ ์๋ค. ์ด๊ฑธ ์ด์ S3์ ์ ์ฅํด๋ณด๊ณ ์ถ์ด ํ๋ฒ ๋ฆฌํฉํ ๋ง์ ํด๋ณด์๋ค. ์ฐ์ ๋ฉํฐํํธ(Multipart) ํ์ผ ๊ด๋ จ ์ค์ ์ ํด์ค์ผํ๋ค. spring: servlet: multipart: enabled: true # ๋ฉํฐํํธ ์ ๋ก๋ ์ง์์ฌ๋ถ (default: true) max-file-size: 100MB # ํ๊ฐ ํ์ผ์ ์ต๋ ์ฌ์ด์ฆ (default: 1MB) max-request-size: 100MB # ์ด์ S3๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํด์ผํ๋ค. implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE' ๊ทธ๋ฆฌ๊ณ S3 ๋ฒํท๋ฅผ ๋ง..
์ํฐ๋์์ ํ๋ฆฌ์จ๋ณด๋ฉ ๋ฐฑ์๋ ์ฑ๋ฆฐ์ง 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/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/uIEA4/btsFwAAkE0m/YYp0Iy2fndxsMKwUpIjrKK/img.png)
ํ๋ก์ ํธ๋ฅผ ์งํ์ค, CodeDeploy log ๋ฅผ S3 ๋ฒํท ์์ฑํ ํด๋น ๋ฒํท์ ์ ์ฅํด๋ณด๋ผ๋ ๊ณผ์ ๊ฐ ์ฃผ์ด์ก๋ค. ์์คํฌ๋ฆฝํธ + crontab์ ํตํด s3์ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๊ณต์ ํด๋ณธ๋ค. ์ฐ์ ํ์ฌ ํ๋ก์ ํธ ๋ฐฐํฌ ๊ตฌ์ถ ํ๊ฒฝ์ ์ค๋ช ํ์๋ฉด, ์ ํจ์ค๋ก CI ๊ตฌ์ถ + AWS CodeDeploy๋ฅผ ํตํด ์๋ CD ํ๊ฒฝ์ ๊ตฌ์ถํ์๋ค. ์คํ๋ง๋ถํธ์ deploy.sh ํ์ผ์ ์์ฑํ ์ ์คํฌ๋ฆฝํธ๋ก ์์ฑํด ๋ฐฐํฌ๋ฅผ ์๋ํํ๋ค. 1. deploy.sh ํ์ผ ์์ฑ #!/bin/bash BUILD_JAR=$(ls /home/ubuntu/app/build/libs/*.jar) JAR_NAME=$(basename $BUILD_JAR) echo "> build : $JAR_NAME" >> /home/ubuntu/applog/applog.l..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sHsZg/btsox9z0sdc/yWGtDX8ULrLEk8JInx8Dx1/img.png)
ELB(Elastic Load Balancer) ๋ค์์ ์๋น์ค์ ํธ๋ํฝ์ ๋ถ์ฐ ์์ผ์ฃผ๋ ์๋น์ค Health Check: ์ง์ ํธ๋ํฝ์ ๋ฐ์์์ผ Instance ๊ฐ ์ด์์๋์ง ์ฒดํฌ AutoScaling๊ณผ ์ฐ๋ ๊ฐ๋ฅ ์ฌ๋ฌ ๊ฐ์ฉ์์ญ์ ๋ถ์ฐ ๊ฐ๋ฅ ์ง์์ ์ผ๋ก IP ์ฃผ์๊ฐ ๋ฐ๋์ด IP ๊ณ ์ ๋ถ๊ฐ๋ฅ : ํญ์ ๋๋ฉ์ธ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ด 4๊ฐ์ง ์ข ๋ฅ Application Load Balancer Network Load Balancer Classic Load Balancer Gateway Load Balancer ELB ์ ์ข ๋ฅ Application Load Balancer ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ์ ํ ๋๋ํจ ํธ๋ํฝ์ ๋ชจ๋ํฐ๋ง ํ์ฌ ๋ผ์ฐํ ๊ฐ๋ฅ balacer๊ฐ ์ฃผ์๋ฅผ ์ฝ์ด ์ ์ ๊ฐ ์ด๋ค ๊ฒฝ๋ก๋ก ์ ์ํ๋์ง์ ๋ฐ๋ผ์ ๋ผ์ฐํ ์ ํด์ค๋ค. ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bqU43S/btsoyIoaV69/Xqf4k1jkHgDF9Wkn5i0ngk/img.png)
์ด์์ฒด์ (Operating System) ์ปดํจํฐ ์์คํ ์ ์์๋ค์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๋ฉฐ, ์ฌ์ฉ์๊ฐ ์ปดํจํฐ๋ฅผ ํธ๋ฆฌํ๊ณ , ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ํ๊ฒฝ์ ์ ๊ณตํ๋ ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋ชจ์์ด๋ค. ์ด์์ฒด์ ๋ ์ปดํจํฐ ์ฌ์ฉ์์ ์ปดํจํฐ ํ๋์จ์ด ๊ฐ์ ์ธํฐํ์ด์ค๋ก์ ๋์ํ๋ ์์คํ ์ํํธ์จ์ด์ ์ผ์ข ์ผ๋ก, ๋ค๋ฅธ ์์ฉํ๋ก๊ทธ๋จ์ด ์ ์ฉํ ์์ ์ ํ ์ ์๋๋ก ํ๊ฒฝ์ ์ ๊ณตํ๋ค. ์์คํ ํ๋์จ์ด ์์๊ณผ ์ํํธ์จ์ด ์์์ ์ด์ ๊ด๋ฆฌํ๋ ํ๋ก๊ทธ๋จ Windows, Linux, MacOs, Android ํน๊ถ ๋ช ๋ น(privileged instruction): ์์คํ ์์๋ค๊ณผ ์ํตํ ์ ์๋ ๋ช ๋ น - OS๋ง ๊ฐ๋ฅ OS๋ ํน๊ถ ๋ช ๋ น๋๋ฌธ์ ํ๋์ ํ๋์จ์ด ์์คํ (์ปดํจํฐ)๋น ํ๋๋ฐ์ ๋์๊ฐ์ ์์ ์ผ๋ฐ ํ๋ก๊ทธ๋จ์ ํน๊ถ ๋ช ๋ น์ด ํ์์๊ธฐ๋๋ฌธ์ ๋ง์ ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/TeZl1/btsovXlATPp/kN9krUs3gBgx3J3ll7BzG0/img.png)
ํด๋ผ์ฐ๋ ์ธํฐ๋ท์ ํตํด ์ก์ธ์คํ ์ ์๋ ์๋ฒ์ ์ด๋ฌํ ์๋ฒ์์ ์๋ํ๋ ์ํํธ์จ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฏธํ๋ค. ์ฆ ๊ด๋ํ ๋คํธ์ํฌ๋ฅผ ํตํ์ฌ ์ ๊ทผํ ์ ์๋ ๊ฐ์ํ๋ ์๋ฒ์ ์๋ฒ์์ ์๋ํ๋ ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ณตํ๋ IT ํ๊ฒฝ์ ์๋ฏธํ๋ฉฐ, ํด๋ผ์ฐ๋(Cloud)๋ผ๋ ๋จ์ด๊ฐ ๋งํด์ฃผ๋ฏ, ์ธํฐ๋ท ํต์ ๋ง ์ด๋๊ฐ์์ ๊ตฌ๋ฆ์ ์ธ์ฌ ๋ณด์ด์ง ์๋ ์ปดํจํ ์์(CPU, ๋ฉ๋ชจ๋ฆฌ, ๋์คํฌ ๋ฑ) ์ ์ธํฐ๋ท์ผ๋ก ์ฝ๊ฒ ์ด์ฉํ ์ ์๋ค. ์ฝ๊ฒ ๋งํ๋ฉด ์๋ง์ ์ปดํจํฐ๊ฐ ๋ถ์ฐํ๋์ด์๋๋ฐ ํ๋์จ์ด๋ ์ํํธ์จ์ด๋ฑ์ด ์ค๋น๋์ด ์์ง ์์๋ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ๋จ๋ง๊ธฐ๋ง ์์ผ๋ฉด ์ด๋์์๋ ๋ฐ์ดํฐ ์ผํฐ์ ์ ์ํด ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ค์น๋ ์ํํธ์จ์ด๋ฅผ ์ด์ฉํ ์ ์๋ ์๋น์ค์ด๋ค. AWS, ๋ง์ดํฌ๋ก์ํํธ ์ ์ (Azure), ๊ตฌ๊ธ ํด๋ผ์ฐ๋ ํ๋ซํผ(Goo..