5~6์ฃผ์ฐจ Troble & Troubleshooting

sun1ยท2023๋…„ 10์›” 15์ผ
0

ํ”„๋กœ์ ํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
3/7
post-thumbnail

๐Ÿš€ ๊ฐœ๋ฐœ & ์ธํ”„๋ผ ๋‹จ๊ณ„


๐Ÿ“Œ CI CD ํ• ๋•Œ ๋ธŒ๋žœ์น˜ push ํ•ด๋„ ๋ฐ”๋กœ ์ ์šฉ์•ˆ๋˜๋Š” ์ด์œ ?

โœ… Docker Continer๊ฐ€ ์‚ญ์ œ๋˜์–ด๋„ Eureka์—์„œ ๋ฐ”๋กœ ์•Œ์•„์ฐจ๋ฆฌ์ง€ ๋ชปํ•ด ์ด๋ฏธ ์ข…๋ฃŒ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ˜ธ์ถœํ•˜๋ฏ€๋กœ ์—๋Ÿฌ๊ฐ€ ๋‚จ

๐Ÿ‘‰ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ž๋™์œผ๋กœ ์•ˆ์“ฐ๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ญ์ œ๋œ๋‹ค. ๋งŒ์•ฝ ๊ธ‰ํ•˜๋‹ค๋ฉด Eureka ์„œ๋น„์Šค๋ฅผ ํ•œ๋ฒˆ ๊ป๋‹ค ํ‚ค๋ฉด ๋˜๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ์ฐพ์•„๋ณด์ž!


๐Ÿ“Œ CI CD ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ธ๊ฐ€?

โœ… Docker Container ๋กœ ๊ฐ๊ฐ์˜ ์„œ๋ฒ„ ์„œ๋น„์Šค๋ฅผ ๋„์šฐ๊ณ  Jenkins๋ฅผ ํ†ตํ•ด ๊ฐ๊ฐ์˜ ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค. ์ด๋•Œ, ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ธ์Šคํ„ด์Šค์— ๊ฐ๊ฐ์˜ ์„œ๋ฒ„ ์„œ๋น„์Šค๋ฅผ ๋”ฐ๋กœ ๋›ฐ์–ด์„œ ๋ฐฐํฌ ๋…๋ฆฝ์„ฑ์„ ์ด๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ธ์Šคํ„ด์Šค ๋น„์šฉ ๋•Œ๋ฌธ์— ์ด๋ ‡๊ฒŒ๋Š” ๋ชปํ•˜์ง€๋งŒ (๋งŒ์•ฝ ํ–ˆ๋‹ค๋ฉด ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ๊นŒ์ง€ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋•Œ ๋„์ปค ์Šค์›œ์„ ๊ณ ๋ฏผํ•˜์˜€๊ณ  ์ด๋Š” ์ด๋ฏธ ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋กœ ๊ตฌ์ถ•ํ•˜์˜€๊ธฐ์— ๊ฐ€์žฅ ๊ฐ„ํŽธํ•œ ๋ฐฉ๋ฒ•์ด๋ผ ํŒ๋‹จํ•˜์˜€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด์™€ ๊ด€๋ จ๋œ ๋‚ด์šฉ์€ [ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ (Docker Swarm, Kubernetes) ] ์ด ๊ฒŒ์‹œ๋ฌผ์„ ํ†ตํ•ด ์•Œ์ˆ˜ ์žˆ๋‹ค.)

๋Œ€์‹  ๋ธŒ๋žœ์น˜ ๋ณ„๋กœ ๊ฐ๊ฐ์˜ ํŒŒ์ดํ”„๋ผ์ธ์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋ฐฐํฌ ๋…๋ฆฝ์„ฑ์„ ์ตœ๋Œ€ํ•œ ํ™•๋ณดํ•˜์˜€๋‹ค. ์ด๋•Œ๋„ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฐ™์ด ๋‘๋Š” ๋“ฑ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ์ ์ด ๋งŽ์•˜๋‹ค.
์ดํ›„ NGINX๋ฅผ ํ†ตํ•ด ๋ฆฌ๋ฒ„์Šคํ”„๋ก์‹œ๋ฅผ ์™„์„ฑํ–ˆ๋‹ค. ์›น ํ”„๋ก ํŠธ์—”๋“œ๋„ ๋˜‘๊ฐ™์ด ๋‘์–ด https๋กœ ๋ณด์•ˆ์„ฑ์„ ๋†’์˜€๋‹ค. ์•„๋ž˜์—๋„ ํ•ด๋‹น ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ด ๋‘์—ˆ๋‹ค.


๐Ÿ“Œ React ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ •๋ณด๋ฅผ Unity ๊ฐ€ ์ฒ˜์Œ ์ผœ์งˆ ๋•Œ ๋ณด๋‚ด์ฃผ๊ธฐ๋กœ ํ•˜์˜€๋Š”๋ฐ ์‹œ๊ฐ„ ํƒ€์ด๋ฐ ๋งž์ถ”๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ๋งŒ์•ฝ Unity๊ฐ€ ๋จผ์ € ์ผœ์ง€๋ฉด React๊ฐ€ ๊ฐ€์ง„ ์ •๋ณด๋ฅผ ๋ฐ›๊ธฐ ์ „์— ์ผœ์กŒ์œผ๋ฏ€๋กœ ํšŒ์› ์ •๋ณด๋ฅผ ๋ถ€๋ฅด์ง€ ๋ชปํ•˜๊ณ  Unity๊ฐ€ ๋Šฆ๊ฒŒ ์ผœ์ง€๋ฉด ํ—ˆ๊ณต์—๋‹ค๊ฐ€ ์ •๋ณด๋ฅผ ๋ฟŒ๋ ธ์œผ๋ฏ€๋กœ ํšŒ์› ์ •๋ณด๋ฅผ ์ดํ›„์— ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค

โœ… React ์—์„œ setTimeout๊ณผ setInterval์„ ์ด์šฉํ•˜์—ฌ ์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ (2~3๋ถ„) ๋ช‡ ์ดˆ(1์ดˆ) ๋‹จ์œ„๋กœ ์ •๋ณด๋ฅผ ์ฃผ๋Š” ํ†ต์‹ ์„ ๊ณ„์† ๋ฐ˜๋ณตํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ์ด๋Ÿฌ๋ฉด ์‹œ๊ฐ„์ด ๋”ฑ ๋งž์ถ”์–ด์ง€์ง€ ์•Š์•„๋„ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. 3๋ถ„์ด ๋„˜์€ ์œ ์ €์˜ ๊ฒฝ์šฐ ์ด๋ฏธ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ๋–จ์–ด์ง€๋ฏ€๋กœ ์ด ์ดํ›„๋กœ๋Š” ์ƒ๊ฐ์„ ์•ˆํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

๐Ÿ‘‰ ์ฐพ์•„๋ณด๋‹ˆ ์œ ๋‹ˆํ‹ฐ ์ฝ”๋“œ์ค‘์— ๋ฆฌ์•กํŠธ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฐ”๋กœ ๋ฆฌ์•กํŠธ์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •ํ•˜์ž


๐Ÿ“Œ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ๋ž‘ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋‚˜?

โœ… ์ธ์Šคํ„ด์Šค ๋น„์šฉ ๋•Œ๋ฌธ์— ( ์„œ๋ฒ„ ํ•œ๊ฐœ๋‹น 500MB์ธ๋ฐ 8๊ฐœ์˜ ์„œ๋ฒ„๋ฅผ ๋‘๋ฏ€๋กœ ์ตœ์†Œ 4๊ธฐ๊ฐ€ ์ด์ƒ์ด ํ•„์š”ํ•˜๋‹ค + MYSQL, Redis ๋“ฑ) ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์€ ๊ณต๋ถ€๋งŒ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ผ๋‹จ ๊ฐœ์ธ ์ธ์Šคํ„ด์Šค 2๊ฐœ๋ฅผ ์—ด์–ด VPC Peering์„ ํ†ตํ•ด ๋‘ ์ธ์Šคํ„ด์Šค๊ฐ€ ์†Œํ†ตํ•˜๋Š”์ง€๋Š” ํ…Œ์ŠคํŠธ ํ•ด๋ณด์•˜๋‹ค.

๐Ÿ‘‰ ์ž์„ธํ•œ ์‚ฌํ•ญ์€
[ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ (Reverse Proxy) ๊ณผ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ(Load Balancing) ] ๋˜๋Š”
[ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ(Load balancing) ] ๊ณผ
[ ํฌ์›Œ๋“œ ํ”„๋ก์‹œ(forward proxy) ์™€ ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ(Reverse Proxy) ] ๊ณผ
[ EC2 ๊ฐ„์˜ ํ†ต์‹  : VPC Peering / VPN / Ping ] ๊ฒŒ์‹œ๋ฌผ์—์„œ ํ™•์ธํ•œ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€

Powered by GraphCDN, the GraphQL CDN