![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|
Jinho.Hong(ํ์งํธ) | Ayaan.Park(๋ฐ์ฐฌ์) | Jully.Han(ํ์ฃผ๋ฆฌ) | Milo.Kim(๊น๋ฏผ์ ) | Winter.Park(๋ฐํํ) | Dorothy.Kim(๊น๋์ค) |
ํ์ฅ ํด๋ผ์ฐ๋ |
ํด๋ผ์ฐ๋ | ํ์คํ | ํ์คํ | AI | AI |

- ๊ธฐ์กด์ ๋ง๋ค์ด์ ธ ์๋ ์๋น์ค๋ฅผ ๊ฐ ํ๋ค์๊ฒ ์ ๊ณตํ๊ณ ,ํด๋น ์๋น์ค๋ฅผ ์ต์ ํํ์ฌ ์ต๋ํ์ ๋ถํ๋ฅผ ๊ฒฌ๋ ์ ์๋๋ก ์ค๊ณ
- ํ ๋๋จผํธ ํํ๋ก ๋ํ ์งํ
- ๊ฐ ํ์ ๋ํ์ฌ ๋ถํํ
์คํธ๋ฅผ ์งํ ํ ๋ณด๋ค ๋ง์ ์ ์์์๊ฒ ์๋น์ค๋ฅผ ๋ฌธ์ ์์ด ์ ๊ณตํ ํ์ด ์น๋ฆฌ
24/12/09 ~ 24/12/13(์ด 5์ผ)
- ๋์ ์ ์์ ์ ์ฆ๊ฐ (๋ณ๊ฒฝ๋ ์๋ ์์)
- ์ด๊ธฐ 100๋ช ์์ ์์ํ์ฌ ๋งค 30์ด๋ง๋ค 100๋ช ์ฉ ์ฆ๊ฐ
- ์ต๋ 3,000๋ช ๊น์ง ์์ฐจ์ ์ฆ๊ฐ ๋ชฉํ
- ๊ฐ ์ฌ์ฉ์๋น ์ต์ 1๊ฐ ์ด์์ WebSocket ์ฐ๊ฒฐ ์ ์ง
- ์ ํ๋ ๋ฆฌ์์ค๋ก ์ต๋ํ์ ํจ์จ ๋ฌ์ฑ
- ์ต๋ 30๋์ t3.small ์ธ์คํด์ค ์ฌ์ฉ
- ๋ค์ํ ์ํคํ ์ณ ์๋
- ์ฌ์ฉ ๊ฐ๋ฅํ AWS ๊ถํ
- EC2
- Elastic Load Balancing
- Auto Scaling
- Route 53
- ACM
- S3
- CloudFront
- CloudWatch
- ์ฃผ์ด์ง ๋๋ฉ์ธ์ CloudFront์ ์๋ธ ๋๋ฉ์ธ์ ELB ์ฐ๊ฒฐ
- ํ๋ก ํธ
- ํด๋ผ์ฐ๋ ํ๋ก ํธ์ S3 ๋ฒํท์ ํ์ฉํ์ฌ ํธ์คํ
- ๋ฐฑ์๋
- ์ธ์คํด์ค ์ด 20๊ฐ ์์ฑ
- ์คํ ์ค์ผ์ผ๋ฌ๋ฅผ ํ์ฉํด ๊ฐ ์ธ์คํด์ค์ ๊ฐ์๊ฐ ์ผ์ ํ๊ฒ ์ ์ง๋๋๋ก ์ค์
- ๊ฐ ์ธ์คํด์ค์ ๋์ปค ์ปจํ ์ด๋๋ฅผ 5๊ฐ์ฉ ๋์ฐ๊ณ ๊ฐ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๋๋ฒจ๋ฐ์ฑ
- ์ด 100๊ฐ์ ์๋น์ค์ ๋ก๋๋ฐธ๋ฐ์ฑ
- ํ์ผ ์๋น์ค์ ๊ฐ์ ๊ฒฝ์ฐ๋ S3 ๋ฒํท์ ์ ๋ก๋ํ๊ณ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ ๋์ค์ ์ ์ฅํ๋ ๋ฐฉ์
- DB
- MongoDB๋ก ๊ตฌ์ถ๋์ด ์๋ ์๋น์ค๋ฅผ Redis๋ก ๋ณ๊ฒฝ
- Redis Cluster์ ํตํ ์ ํฉ์ฑ ๋ณด์ฅ
- ์ธ์คํด์ค์ ์ฑ๋ฅ๊ณผ ๊ฐ์ ์ ํ์ด ์กด์ฌํจ
- ์ต๋ํ ๋ถ๊ฐ๊ธฐ๋ฅ๋ค์ ์ธ์คํด์ค๋ฅผ ๋์ฐ์ง ์๊ณ AWS์ ์๋น์ค๋ก ๋์ฒด
- ํ๋ก ํธ ํธ์คํ ์ S3+CloudFront(CDN)์ ํ์ฉ
- ๋ถํ ํ ์คํธ์ ์ต๋ ์์ฒญ ์๋ฅผ 2~3๋ง ๋จ์๋ก ์ก๊ณ , ํด๋ผ์ฐ๋ ํ๋ก ํธ์์ ๊ฐ๋น ๊ฐ๋ฅํ์ง ํ์ธ ํ ๋์
- ๋ง์ฐฌ๊ฐ์ง๋ก ๋ก๋๋ฐธ๋ฐ์ฑ๋ Nginx๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ELB ์ฌ์ฉ
- AutoScailig Group
- ์ธ์คํด์ค ํฌํ๋ฆฟ ์ ์ ํ ๋ฑ๋ก
- ์ต๋ 30๊ฐ ์ธ์คํด์ค ์ ํ์ด ์์๊ธฐ์ 20๊ฐ ์ด์ ๋์ด๋์ ์ค๊ฒฉํจ ๋์ง ์๋๋ก ์ ์ฑ ์ค์
- ELB
- ๊ฐ ์ธ์คํด์ค์ 20๊ฐ์ ์ปจํ ์ด๋๋ฅผ ๋์์ ์ด 100๊ฐ์ ์๋น์ค ๋ก๋ ๋ฐธ๋ฐ์ฑ
- ์ด 4๊ฐ์ ํ๊น ๊ทธ๋ฃน์ ์ ์ ํ ๊ฐ๊ฐ ์ฐ๊ฒฐ ํฌํธ ๋ณ๊ฒฝ์ผ๋ก ๋์
- CloudWatch
- ๋ถํ๊ฐ ๊ฑธ๋ ธ์ ๋, ๋ณ๋ชฉ์ง์ ์ ํ์ ํ๊ณ ์กฐ์นํ ์ ์๋๋ก ๊ฐ ์ธ์คํด์ค์ CloudAgent ์ค์นํ์ฌ ๋ฉํธ๋ฆญ ์์ง
- ๋์๋ณด๋๋ฅผ ์ ์ํ์ฌ ๋ํ์งํ ์ค์ ์ง์์ ๋ชจ๋ํฐ๋ง
- ๊ฐ ์ธ์คํด์ค ๋ฟ๋ง ์๋ ELB ๋ฑ๋ฑ์ ์๋น์ค๋ค๋ ๋ชจ๋ํฐ๋ง
- CloudFront
- ํด๋ผ์ฐ๋ ํ๋ก ํธ๋ฅผ ํ์ฉํ ํ๋ก ํธ ํธ์คํ
- S3๋ฒํท์ ์ฐ๊ฒฐ
- ๋ง์ฝ S3์์ ์๋ฌ๋ฅผ ๋ฐํํ ๊ฒฝ์ฐ index.html ๋ก ๋ผ์ฐํ ๋๋๋ก ์ค์
- Route 53
- ์ฃผ์ด์ง ๋๋ฉ์ธ์ ๊ธฐ๋ฐ์ผ๋ก, ์๋ธ๋๋ฉ์ธ์ ์ค์ ํ์ฌ ๋ผ์ฐํ ์ค์
- ๋์ฉ๋ ํธ๋ํฝ ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํ๊ธฐ์ ๋ฉ์ธ์ง ํ๋ฅผ ์ฌ์ฉํ ๊น ๋
ผ์
- Kafka vs RabbitMQ ๊ณ ๋ ค
- RabbitMQ๋ Push ๋ชจ๋ธ ๊ธฐ๋ฐ ์ค๊ณ์ด๊ธฐ ๋๋ฌธ์ Kafka๋ณด๋จ ๋ ์ดํด์๊ฐ ๋ฎ์ผ๋ฉฐ ๋ฉ์ธ์ง ์ ๋ฌ ๋ณด์ฅ์ ํ๊ธฐ ๋๋ฌธ์ ์์ผ ํต์ ์์ RabbitMQ๊ฐ ์ ๋ฆฌ
- ํ์ง๋ง RabbitMQ๋ฅผ ํ์ฉํ์ ๋, t3.small ์ด๋ผ๋ ์ฑ๋ฅ ํ๊ณ์ ์ํด์ ๋ณ๋ชฉ์ง์ ์ด ๋ ๊น ์ฐ๋ ค
- ์ต๋ 3000๋ช ๊น์ง WebSocket ์ฐ๊ฒฐ์ด ์ด๋ฃจ์ด์ง๊ณ ๋ฉ์ธ์ง๊ฐ ์ง์์ ์ผ๋ก ์ก์์ ๋์ด ๋ฉ์ธ์ง๊ฐ RabbitMQ ํ์ ์์
- ํ์ ์์ธ ๋ฉ์ธ์ง๊ฐ ๋ง์์ง์๋ก ์๋น์๊ฐ ํด๋น ๋ฉ์ธ์ง๋ฅผ ๊ฐ์ ธ๊ฐ ๋๊น์ง์ ์๊ฐ์ด ๋ฐ์ -> ์ค์๊ฐ ํต์ ์์คํ ์์ ํฐ ๋ฌธ์ ๊ฐ ์ฐ๋ ค๊ฐ ๋๊ธฐ ๋๋ฌธ์ RabbitMQ๋ ์ฌ์ฉ์ํ๊ธฐ๋ก ๊ฒฐ์
- ์ต์ข ์ ์ผ๋ก ๋ฉ์์งํ๋ฅผ ํ์ฉํ์ง์๊ณ Redis Cluster์ ํตํ ์ค๋ฉ์ผ๋ก ๋์ฒด
- Kafka vs RabbitMQ ๊ณ ๋ ค
- Redis Cluster
- t3.small์ ์ฑ๊ธ ์ฝ์ด๊ธฐ ๋๋ฌธ์ ํ ์๋ฒ ๋ด์ ์ฌ๋ฌ Redis๋ฅผ ๋๋ ๊ฒ์ ๊ทธ๋ฆฌ ํจ์จ์ ์ด์ง ์์ ๊ฒ์ด๋ผ ์๊ฐ
- ์ ์ฅ ๊ณต๊ฐ
- ์์ด๋ 1๋ฐ์ดํธ, ํ๊ธ์ 3๋ฐ์ดํธ ์ ๋๋ก ๋์์ ๋ ํ ์ฑํ ์ ๋ฉ์์ง๋ ์ ์ ์ ํ ํฐ ๊ฐ ๋ฑ์ ์ ์ฅํ๋๋ฐ ํ๋์ Key ๋น 100๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์
- ์ธ์คํด์ค์ RAM์ 2GB์ด์ง๋ง OS, ํ๋ก์ธ์ค ๋ฑ์ ์ฌ์ฉ ๊ณต๊ฐ์ ๊ฐ์ ํ์ฌ Redis๊ฐ ์ฌ์ฉํ ์ ์๋ ๊ณต๊ฐ์ 1.5GB๋ผ๊ณ ๊ฐ์ ํ์ฌ ๋ฐ์ดํฐ์ ๊ฐฏ์๋ฅผ 1500๋ง๊ฐ ์ ์ฅํ ์ ์๊ณ ๋๋ํ๊ฒ ์ก์๋ 500 ~ 1000๋ง๊ฐ๋ฅผ ์ ์ฅํ ์ ์๋ค๋ ๊ฒฐ๋ก ์ ๋์ถ -> ๋ถํ ํ ์คํธ์์ ์๋ฌด๋ฆฌ ์์ ์ ๋ง์ด ํด๋ 1000๋ง๊ฐ๋ฅผ ๋๊ธธ ์ผ์ ์์ ๊ฒ์ด๋ผ ์๊ฐํ์๊ณ ๋ฐ์ดํฐ ์ ์ฅ ๊ฐฏ์๋ ํด๋ฌ์คํฐ ๊ฐฏ์ ์ ์ ๊ธฐ์ค์์ ์ ์ธ
- ์์
์ฒ๋ฆฌ ํจ์จ
- ์ ์ฅ ๊ณต๊ฐ์ ์ ์ธํ๋ฉด ํด๋ฌ์คํฐ์ ๊ฐฏ์๋ฅผ ์ ์ ํ๋ ๊ธฐ์ค ์ค ๊ฐ์ฅ ์ค์ํ ๊ฒ์ Single Thread์ธ Redis์์์ ์์ ์ฒ๋ฆฌ ํจ์จ์ด๋ผ๊ณ ์๊ฐํ์์ต๋๋ค. -> ๋ง์คํฐ 5 + ๋ ํ๋ฆฌ์นด 5๋ก ๊ตฌ์ฑ
- ๋ง์คํฐ ๋ ธ๋ 5๋๋ก ๊ตฌ์ฑํ์ฌ ๊ฐ ๋ ธ๋์ ๋ํ ํด์ฑ์ ๋ฐฑ์๋ ์๋ฒ์์ ํ๊ณ ๋ง์คํฐ ๋ ธ๋๋ ์์ ์ฒ๋ฆฌ๋ง ๋ด๋น
- ๋ ํ๋ฆฌ์นด ๋ ธ๋๋ Read ์์ ์ํ
- ๋ถํ ํ ์คํธ ๋ํ์ด๊ธฐ ๋๋ฌธ์ ๋ ํ๋ฆฌ์นด ๋ ธ๋์ ๋ฐ์ดํฐ ์ ํฉ์ฑ์ ๊ณ ๋ ค x
- ๊ณ ๊ฐ์ฉ์ฑ
- ๋ง์คํฐ ๋ ธ๋ ๋น ๋ ํ๋ฆฌ์นด ๋ ธ๋๋ฅผ ํ ๊ฐ์ฉ ๋์ด failover ๋ฐ์ ๋๋น
- ํด๋ฌ์คํฐ ๋ชจ๋์์ ๊ฐ ๋ ธ๋๊ฐ ์๋ก๋ฅผ ๊ฐ์ํ๋ฉฐ HA๋ฅผ ๋ณด์ฅ
- ํ์ผ ์์คํ
- ๋์คํฌ์ ์ ์ฅํ๋ ํ์ผ ์์คํ ์ S3 ๋ฒํท์ ์ ์ฅํ๋๋ก ๋ณ๊ฒฝ
- Redis์์ ๋ฉํํ์ผ์ ์ ์ฅํ๊ณ ํ์ํ ๋ ํ๋ก ํธ์ URL ์ ๋ฌ
- ๋์ ์์
- ์นด์นด์ค ๋ํ์ด์ฌ ์์ฅ ์์ฌ
- ๋น์ค 30๋ง์ ์ํ๊ถ
- ์ต์ข
3400๋ช
์ ๋ถํ ํ
์คํธ ์ค 150๊ฐ ์คํจ
- ์ด์ธ ์์ํ(2,3๋ฑ)์ ๋นํด์ ์ฝ 400~500๊ฐ ์ ๋ ํ ์คํธ๋ฅผ ๋ ๋ง์ด ํต๊ณผ
- ์ด์ธ์๋ ์ด๋ฒคํธ ์ ์ผ๋ก ์ฐ์น์์๊ฒ ๋์ ์ผ๋ก ๋ช๋ช ํ๋ค๊ณผ ๋๊ฒฐํ ์ ๋ถ ์๋์ ์น๋ฆฌ
- ๋ฐฑ์๋ ์๋ฒ ํ๋์ ๋์ปค ์ปจํ
์ด๋๋ฅผ ์ถ๊ฐ๋ก ๋ฐฐํฌํ์ฌ ์ฒ๋ฆฌ๋์ ๋๋ฆฌ๋ ค ํ์ผ๋, t3.small ์ธ์คํด์ค์ CPU๊ฐ 1๊ฐ๋ฟ์ด๋ผ ์ฑ๋ฅ ํฅ์์ด ๋ฏธ๋ฏธํ์
- JS ์ฝ๋๋ฅผ Java๋ก ๋ฆฌํฉํ ๋งํ๊ณ ์ฐ๋ ๋ ํ์ ์กฐ์ ํ์ฌ ๋ฉํฐ ์ฐ๋ ๋์ ์ด์ ์ ํ์ฉํ๋ค๋ฉด ๋ ์ข์์ ๊ฒ
- S3 ํ์ผ ์ ๋ก๋ ๋ก์ง์ ๋ฐฑ์๋์์ ๊ตฌํํ์ผ๋, ํ๋ก ํธ์๋์์ ์ฒ๋ฆฌํ๋ฉด ๋ ํจ์จ์ ์ผ ๋ฏ