๐ŸงŠ ํ”„๋ก์‹œ ์„œ๋ฒ„(Proxy Server)

 

 

Proxy๋Š” ๋Œ€๋ฆฌ๋ผ๋Š” ๋œป

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์™€ ์†Œํ†ตํ•  ๋•Œ ์„œ๋ฒ„์™€ ๋ฐ”๋กœ ํ†ต์‹ ํ•˜์ง€ ์•Š๊ณ  ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. โžก๏ธ ๋Œ€๋ฆฌ ์„œ๋ฒ„

 

์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋Š” ์ง€์—ญ์ด ์ œํ•œ๋˜์–ด ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด IP๋ฅผ ์šฐํšŒํ•˜๊ฑฐ๋‚˜, ์บ์‹œ๋ฅผ ํ†ตํ•ด ๋” ๋น ๋ฅธ ์ด์šฉ์„ ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

๐Ÿน ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ ์ข…๋ฅ˜

 

์œ„์น˜์— ๋”ฐ๋ผ Forward Proxy์™€ Reverse Proxy ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

 

 

 

๐Ÿบ Forward Proxy

 

Forward Proxy

 

ํด๋ผ์ด์–ธํŠธ ๊ฐ€๊นŒ์ด์— ์œ„์น˜ํ•œ ํ”„๋ก์‹œ ์„œ๋ฒ„

ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋Œ€์‹ ํ•ด ์„œ๋ฒ„์— ์š”์ฒญ์„ ์ „๋‹ฌํ•œ๋‹ค.

์ฃผ๋กœ ์บ์‹ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ์‚ฌ์šฉ์ž๊ฐ€ ๋น ๋ฅธ ์„œ๋น„์Šค ์ด์šฉ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.

 

 

โžก๏ธ Forward Proxy๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ด์ 

 

โœ… ์บ์‹ฑ์„ ํ†ตํ•ด ๋น ๋ฅธ ์„œ๋น„์Šค ์ด์šฉ ๊ฐ€๋Šฅ

์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋™์ผํ•œ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฒฝ์šฐ ์ฒซ ์‘๋‹ต ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์บ์‹œ์— ์ €์žฅํ•ด๋†“๊ณ , ์ดํ›„ ์„œ๋ฒ„์— ์žฌ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š์•„๋„ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋น ๋ฅด๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

โœ… ๋ณด์•ˆ

์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ IP์ถ”์ ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ์˜ IP๊ฐ€ ์•„๋‹Œ ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ IP๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์‘๋‹ต๋ฐ›์€ IP๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ IP์ด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—๊ฒŒ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐Ÿบ Reverse Proxy

 

Reverse Proxy

 

์„œ๋ฒ„ ๊ฐ€๊นŒ์ด์— ์œ„์น˜ํ•œ ํ”„๋ก์‹œ ์„œ๋ฒ„์ด๋‹ค.

์„œ๋ฒ„๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์„ ์ œ๊ณตํ•œ๋‹ค.

 

 

โžก๏ธ Reverse Proxy ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ด์ 

 

โœ… ๋ถ„์‚ฐ์ฒ˜๋ฆฌ

ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์ ธ ์„œ๋ฒ„์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ์˜ฌ ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์—ฌ๋Ÿฌ๋Œ€์˜ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋‚˜๋ˆ„์–ด ์ „๋‹ฌํ•œ๋‹ค.

 

โœ… ๋ณด์•ˆ

Forward Proxy์™€๋Š” ๋ฐ˜๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์„œ๋ฒ„๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„œ๋Š” ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ์„œ๋ฒ„๊ฐ€ ํ”„๋ก์‹œ ์„œ๋ฒ„์ด๋ฏ€๋กœ ์‹ค์ œ ์„œ๋ฒ„ IP ์ฃผ์†Œ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค.

 

 

 

๐ŸงŠ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

 

์›น ์„œ๋ฒ„๋กœ ๋„ˆ๋ฌด ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒฝ์šฐ ์„œ๋ฒ„๋Š” ๊ฐ๋‹นํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ณผ๋ถ€ํ•˜๊ฐ€ ์˜ค๊ฒŒ ๋œ๋‹ค.

๊ณผ๋ถ€ํ•˜๊ฐ€ ์˜ฌ ๊ฒฝ์šฐ ์„œ๋น„์Šค๋ฅผ ์ •์ƒ์ ์œผ๋กœ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด๋‹ค.

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์˜ ํ•˜๋“œ์›จ์–ด๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์„œ๋ฒ„์˜ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

 

 

 

๐Ÿน Scale-Up

 

๋ฌผ๋ฆฌ์ ์œผ๋กœ ์„œ๋ฒ„์˜ ์‚ฌ์–‘์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. (HDD, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ)

์ˆ˜์ง์  ์Šค์ผ€์ผ๋ง

 

๐Ÿบ ์žฅ์ 

์„œ๋ฒ„์˜ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ์ง€ ์•Š๊ณ  ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„์— ์žˆ์–ด ๋ณ€ํ™”๊ฐ€ ํ•„์š”์—†๋‹ค.

 

๐Ÿบ ๋‹จ์ 

์„œ๋ฒ„์˜ ์‚ฌ์–‘์„ ๋†’์ด๋Š” ๋ฐ๋Š” ๊ต‰์žฅํžˆ ๋†’์€ ๋น„์šฉ์ด ๋“ ๋‹ค.

ํ•˜๋“œ์›จ์–ด์˜ ์—…๊ทธ๋ ˆ์ด๋“œ์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

 

 

๐Ÿน Scale-Out

 

์„œ๋ฒ„์˜ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ ค ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— ์ค„ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์ˆ˜ํ‰์  ์Šค์ผ€์ผ๋ง

๋งŽ์€ ์š”์ฒญ์ด ์˜ค๋”๋ผ๋„ ์—ฌ๋Ÿฌ๋Œ€์˜ ์„œ๋ฒ„๊ฐ€ ๋‚˜๋ˆ ์„œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์˜ ์‚ฌ์–‘์„ ๋†’์ด์ง€ ์•Š๊ณ ๋„ ๋น„๊ต์  ์ €๋ ดํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ถ€ํ•˜๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Scale-Out ๋ฐฉ๋ฒ•์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์—ฌ๋Ÿฌ๋Œ€ ์žˆ์„ ๊ฒฝ์šฐ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋‚˜๋ˆ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์—ญํ• ์ด ํ•„์š”ํ•˜๋‹ค. โžก๏ธ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ

์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๊ตํ†ต์ •๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ  ํ˜น์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

โ€ป ์ถ”๊ฐ€ํ•™์Šต) Scale-Up vs Scale-Out

 

 

 

๐Ÿน ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ์ข…๋ฅ˜

 

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ๋ถ„์‚ฐํ•˜๋ƒ์— ๋”ฐ๋ผ ๋„ค์ข…๋ฅ˜๋กœ ๋‚˜๋‰œ๋‹ค.

 

L2 : ๋ฐ์ดํ„ฐ ์ „์†ก ๊ณ„์ธต์—์„œ Mac ์ฃผ์†Œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑํ•œ๋‹ค.

L3 : ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ IP ์ฃผ์†Œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑํ•œ๋‹ค.

L4 : ์ „์†ก ๊ณ„์ธต์—์„œ IP์ฃผ์†Œ์™€ Port๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑํ•œ๋‹ค.

L7 : ์‘์šฉ ๊ณ„์ธต์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑํ•œ๋‹ค. ex) ์—”๋“œํฌ์ธํŠธ

 

 

 

 

๐ŸงŠ ์˜คํ† ์Šค์ผ€์ผ๋ง (AWS์˜ Auto Scaling ๊ธฐ์ค€)

 

์˜คํ† ์Šค์ผ€์ผ๋ง์€ Scale-Out ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•  ๋•Œ ์ž๋™์œผ๋กœ ์„œ๋ฒ„(๋ฆฌ์†Œ์Šค)๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋งŽ์•„์ ธ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ ์š”๊ตฌ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๋ฉด ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ๋ฐ˜๋Œ€๋กœ ์ฒ˜๋ฆฌ ์š”๊ตฌ๋Ÿ‰์ด ์ค„์–ด๋“ค๋ฉด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ์†Œ์‹œ์ผœ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ด์ค€๋‹ค.

 

 

๐Ÿน Auto Scaling์˜ ์žฅ์ 

 

๐Ÿบ ๋™์  ์Šค์ผ€์ผ๋ง

์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ๋™์ ์œผ๋กœ ์Šค์ผ€์ผ๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค.

์Šค์ผ€์ผ ์—… ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์˜ ์ˆ˜์— ์ œํ•œ์ด ์—†๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฆ‰์‹œ ์ˆ˜๋ฐฑ~์ˆ˜๋งŒ๋Œ€๋กœ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿบ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ

๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด, ๋‹ค์ˆ˜์˜ EC2 ์ธ์Šคํ„ด์Šค์—๊ฒŒ ์›Œํฌ๋กœ๋“œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„๋ฐฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ์›Œํฌ๋กœ๋“œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

โ€ป ์›Œํฌ๋กœ๋“œ(Workloads) :  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ๋ฐฑ์—”๋“œ ํ”„๋กœ์„ธ์Šค ๊ฐ™์ด ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ€์น˜๋ฅผ ์ฐฝ์ถœํ•˜๋Š” ๋ฆฌ์†Œ์Šค ๋ฐ ์ฝ”๋“œ ๋ชจ์Œ

 

๐Ÿบ ํƒ€๊ฒŸ ํŠธ๋ž˜ํ‚น

์‚ฌ์šฉ์ž๋Š” ํŠน์ • ํƒ€๊ฒŸ์— ๋Œ€ํ•ด์„œ๋งŒ Auto Scaling์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ํƒ€๊ฒŸ์— ๋งž์ถฐ EC2 ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜๋ฅผ ์กฐ์ •ํ•œ๋‹ค.

 

๐Ÿบ ํ—ฌ์Šค ์ฒดํฌ์™€ ์„œ๋ฒ„ ํ”Œ๋ฆฟ ๊ด€๋ฆฌ

EC2 ์ธ์Šคํ„ด์Šค์˜ ํ—ฌ์Šค ์ฒดํฌ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠน์ • ์ธ์Šคํ„ด์Šค์˜ ๋ฌธ์ œ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์ž๋™์œผ๋กœ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋กœ ๊ต์ฒดํ•œ๋‹ค.

 

 

โ€ป ์„œ๋ฒ„ ํ”Œ๋ฆฟ(Fleet)

Fleet์€ ์ง์—ญํ•˜๋ฉด ํ•จ๋Œ€๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค.

๋‹ค์ˆ˜์˜ EC2 ์„œ๋ฒ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๊ฒฝ์šฐ,

ํ˜ธ์ŠคํŒ…ํ•˜๊ณ  ์žˆ๋Š” ์ผ๋ จ์˜ EC2 ์ง‘ํ•ฉ์„ AWS๋Š” ์„œ๋ฒ„ ํ”Œ๋ฆฟ(Fleet)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

Auto Scaling์€ ์ ์ • ์ˆ˜์ค€์˜ ์„œ๋ฒ„ ํ”Œ๋ฆฟ ์šฉ๋Ÿ‰์„ ์œ ์ง€ํ•˜๋Š”๋ฐ ๋„์›€์„ ์ค€๋‹ค.

Auto Scaling์€ ํ•œ๋Œ€ ๋˜๋Š” ๊ทธ ์ด์ƒ์˜ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๋ฉด ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค ์ฒ˜๋ฆฌ์šฉ๋Ÿ‰์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ถ€์กฑํ•œ ๋งŒํผ ์ƒˆ๋กœ์šด ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„ ํ”Œ๋ฆฟ์„ ์œ ์ง€ํ•œ๋‹ค.

 

โ€ป ์ฐธ๊ณ ์ž๋ฃŒ) EC2 Fleet ์„ค๋ช…์„œ

 

 

 

๐Ÿน EC2 Auto Scaling ํ™œ์šฉ

 

Auto Scaling์€ EC2 ์ธ์Šคํ„ด์Šค ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์™€๋„ ๊ฒฐํ•ฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

EC2 Auto Scaling์€ ์˜ค์ง EC2 ์„œ๋ฒ„(๋ฆฌ์†Œ์Šค)๋งŒ ๋Œ€์ƒ์œผ๋กœ ํ•œ๋‹ค.

 

 

๐Ÿบ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ(Launch Template)

์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์„ ํ†ตํ•ด์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ํ™•์žฅํ•  ๋•Œ ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

์ธ์Šคํ„ด์Šค๋ฅผ ๋Š˜๋ฆด ๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ parameter๋“ค์„ ์„ค์ •ํ•  ํ•„์š”์—†์ด ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์‰ฝ๊ฒŒ ์„ค์ •ํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์€ AMI ID, ์ธ์Šคํ„ด์Šค ํƒ€์ž…, ๋„คํŠธ์›Œํฌ ์„ธํŒ… ๋“ฑ์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์‹œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

์—ฌ๋Ÿฌ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ ๋ฒ„์ „์„ ๋งŒ๋“ค์–ด์„œ ์„œ๋กœ ๋‹ค๋ฅธ launch parameter๋ฅผ ๊ฐ€์ง„ ํ…œํ”Œ๋ฆฟ์„ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค์ˆ˜์žˆ๋‹ค.

 

โ€ป AWS ๊ณต์‹๋ฌธ์„œ

 

 

๐Ÿบ Auto Scaling ๊ทธ๋ฃน

 

์Šค์ผ€์ผ์—… ๋ฐ ์Šค์ผ€์ผ๋‹ค์šด ๊ทœ์น™์˜ ๋ชจ์Œ์ด๋‹ค.

EC2 ์ธ์Šคํ„ด์Šค ์‹œ์ž‘๋ถ€ํ„ฐ ์‚ญ์ œํ•˜๊ธฐ๊นŒ์ง€์˜ ๋ชจ๋“  ๋™์ž‘์— ๋Œ€ํ•œ ๊ทœ์น™๊ณผ ์ •์ฑ…์„ ๋‹ด๊ณ  ์žˆ๋‹ค.

 

 

๐Ÿบ Scaling ์œ ํ˜•

 

๐Ÿฅ‘ ์ธ์Šคํ„ด์Šค ๋ ˆ๋ฒจ ์œ ์ง€

๊ธฐ๋ณธ ์Šค์ผ€์ผ๋ง ๊ณ„ํš์ด๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.

ํ•ญ์ƒ ์‹คํ–‰ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ ์ž ํ•˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ผ์ •ํ•œ ์ˆ˜์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ตœ์†Œ, ์ตœ๋Œ€, ์›ํ•˜๋Š” ์šฉ๋Ÿ‰์— ๋™์ผํ•œ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿฅ‘ ์ˆ˜๋™ ์Šค์ผ€์ผ๋ง

๊ธฐ์กด Auto Scaling ๊ทธ๋ฃน์˜ ํฌ๊ธฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

์ˆ˜๋™ ์Šค์ผ€์ผ๋ง์„ ์„ ํƒํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ฝ˜์†”์ด๋‚˜, API, CLI ๋“ฑ์„ ์ด์šฉํ•ด ์ˆ˜๋™์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค. ์ด ๋ฐฉ์‹์€ ์ถ”์ฒœํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๐Ÿฅ‘ ์ผ์ •๋ณ„ ์Šค์ผ€์ผ๋ง

์˜ˆ์ธก ์Šค์ผ€์ผ๋ง ํŠธ๋ž˜ํ”ฝ์˜ ๋ณ€ํ™”๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๊ณ , ํŠน์ • ์‹œ๊ฐ„๋Œ€์— ์–ด๋Š ์ •๋„์˜ ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•˜๋Š”์ง€ ํŒจํ„ด์„ ํŒŒ์•…ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์ผ์ •๋ณ„ ์Šค์ผ€์ผ๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๐Ÿฅ‘ ๋™์  ์Šค์ผ€์ผ๋ง

์ˆ˜์š” ๋ณ€ํ™”์— ๋Œ€์‘ํ•˜์—ฌ Auto Scaling ๊ทธ๋ฃน์˜ ์šฉ๋Ÿ‰์„ ์กฐ์ ˆํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ๋‹ค.

CloudWatch๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๋Š” ์ง€ํ‘œ๋ฅผ ์ถ”์ ํ•˜์—ฌ ๊ฒฝ๋ณด ์ƒํƒœ์ผ ๋•Œ ์ˆ˜ํ–‰ํ•  ์Šค์ผ€์ผ๋ง ๊ทœ์น™์„ ์ •ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด CPU ์ฒ˜๋ฆฌ ์šฉ๋Ÿ‰์˜ 80% ์ˆ˜์ค€๊นŒ์ง€ ๊ธ‰๋“ฑํ•œ ์ƒํƒœ๊ฐ€ 5๋ถ„ ์ด์ƒ ์ง€์†๋  ๊ฒฝ์šฐ Auto Scaling์ด ์ž‘๋™๋ผ ์ƒˆ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

๋™์  ์Šค์ผ€์ผ๋ง ์ •์ฑ…์„ ์ •์˜ํ•  ๋•Œ๋Š” ์Šค์ผ€์ผ ์—…๊ณผ ์Šค์ผ€์ผ ๋‹ค์šด ๋‘ ๊ฐ€์ง€์˜ ์ •์ฑ…์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

 

 

 

๐ŸงŠ TOMCAT

 

Tomcat

 

๐Ÿน Tomcat ์ด๋ž€?

 

Apache์‚ฌ์—์„œ ๊ฐœ๋ฐœํ•œ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๋งŒ ์žˆ๋Š” ์˜คํ”ˆ์†Œ์Šค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์ด๋‹ค.

 

 

๐Ÿบ Tomcat์˜ ํŠน์ง•

 

๐Ÿฅ‘ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์˜คํ”ˆ์†Œ์Šค WAS(Web Application Server)์ด๋‹ค.

๐Ÿฅ‘ ์˜คํ”ˆ์†Œ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์ด์„ ์Šค ๋น„์šฉ ๋ถ€๋‹ด์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿฅ‘ ๋…๋ฆฝ์ ์œผ๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ Apache ๊ฐ™์€ ๋‹ค๋ฅธ ์›น ์„œ๋ฒ„์™€ ์—ฐ๋™ํ•˜์—ฌ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿฅ‘ Spring Boot์˜ ๋‚ด์žฅ ์„œ๋ฒ„์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์„ค์น˜ ๊ณผ์ • ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿฅ‘ spring-boot-starter-web ๋ชจ๋“ˆ ์†์— ๋‚ด์žฅ๋˜์–ด์žˆ๋‹ค.

 

 

 

๐ŸงŠ Jetty

 

jetty

 

๐ŸนJetty ๋ž€?

 

Jetty๋Š” ์ดํด๋ฆฝ์Šค ์žฌ๋‹จ์˜ HTTP ์„œ๋ฒ„์ด์ž ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ ์ด๋‹ค.

 

 

๐Ÿบ Jetty์˜ ํŠน์ง•

 

๐Ÿฅ‘ 2009๋…„ ์ดํด๋ฆฝ์Šค ์žฌ๋‹จ์œผ๋กœ ์ด์ „ํ•˜๋ฉฐ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.

๐Ÿฅ‘ Jetty๋Š” ํƒ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋Œ€๋น„ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋‹ค.

๐Ÿฅ‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‚ด์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿฅ‘ ๊ฒฝ๋Ÿ‰ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์†Œํ˜• ์žฅ๋น„, ์†Œ๊ทœ๋ชจ ํ”„๋กœ๊ทธ๋žจ์— ๋” ์ ํ•ฉํ•˜๋‹ค.

 

 

๐Ÿน Tomcat์—์„œ Jetty๋กœ ์„œ๋ฒ„ ๋ณ€๊ฒฝํ•˜๊ธฐ

 

build.gradle ํŒŒ์ผ

โžก๏ธ spring-boot-starter-web ์˜์กด์„ฑ ์ถ”๊ฐ€๋œ ๋ถ€๋ถ„์— Tomcat์„ ์ œ์™ธ์‹œ์ผœ์ค€๋‹ค.

dependencies {
	implementation ('org.springframework.boot:spring-boot-starter-web') {
		exclude module: 'spring-boot-starter-tomcat'
	}
}

 

Jetty ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

implementation ('org.springframework.boot:spring-boot-starter-jetty')

 

Tomcat์„ ๋ชจ๋“ˆ์—์„œ ์ œ์™ธ์‹œ์ผฐ๊ณ  Jetty ๋ชจ๋“ˆ์„ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•  ๋•Œ Jetty๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๐ŸงŠ NGINX

 

NGINX

 

๐Ÿน NGINX๋ž€?

 

๐Ÿฅ‘ NGINX๋Š” ๊ฐ€๋ณ๊ณ  ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์ด๋Š” ์˜คํ”ˆ์†Œ์Šค ์›น ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค.

๐Ÿฅ‘ Igor Sysoev ๋ผ๋Š” ๋Ÿฌ์‹œ์•„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ–ˆ๋‹ค.

๐Ÿฅ‘ ๋™์‹œ์ ‘์† ์ฒ˜๋ฆฌ์— ํŠนํ™”๋œ ์›น ์„œ๋ฒ„ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

๐Ÿฅ‘ Apache๋ณด๋‹ค ๋™์ž‘์ด ๋‹จ์ˆœํ•˜๊ณ  ์ „๋‹ฌ์ž ์—ญํ• ๋งŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋™์‹œ์ ‘์† ์ฒ˜๋ฆฌ์— ํŠนํ™”๋˜์–ด ์žˆ๋‹ค.

๐Ÿฅ‘ Nginx๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ์‘๋‹ต ํ•˜๊ธฐ ์œ„ํ•œ ์›น ์„œ๋ฒ„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๐Ÿบ NGINX์˜ ํŠน์ง•

 

๐Ÿฅ‘ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ์›น ์‚ฌ์ดํŠธ์˜ ํ™•์žฅ์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ๊ณ ์„ฑ๋Šฅ ์›น ์„œ๋ฒ„์ด๋‹ค.

๐Ÿฅ‘ ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ ์€ ์ž์›์œผ๋กœ ๋†’์€ ์„ฑ๋Šฅ๊ณผ ๋†’์€ ๋™์‹œ์„ฑ์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ๋‹ค.

๐Ÿฅ‘ ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿฅ‘ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿฅ‘ Nginx๋ฅผ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ๋ฐฐ์น˜ํ•˜์—ฌ ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๐Ÿน Spring Boot์™€ Nginx ์—ฐ๋™ํ•˜๊ธฐ

 

nginx๋ฅผ ์ด์šฉํ•ด์„œ Spring Boot ์•ž์— ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‹ค์ œ๋กœ ํ†ต์‹ ํ•˜๋Š” ํฌํŠธ๋ฅผ Spring Boot ์„œ๋ฒ„์™€ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ - NGINX - Spring Boot

 

 

๐Ÿบ NGINX ์„ค์น˜ ๋ฐ ์‹คํ–‰ (Mac OS)

 

โœ… ์„ค์น˜

brew install nginx

 

โœ… ์‹คํ–‰

brew services start nginx

 

โœ… ์ค‘๋‹จ

brew services stop nginx

 

 

 

๐Ÿบ NGINX ์„ค์ • ํŒŒ์ผ(.conf ํŒŒ์ผ) ์ฐพ๊ธฐ

 

nginx์˜ ์„ค์ •ํŒŒ์ผ(.conf ํŒŒ์ผ)๋กœ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

(์‚ฌ์šฉํ•  ํฌํŠธ๋ฒˆํ˜ธ, ์—ฐ๊ฒฐํ•  ์„œ๋ฒ„์˜ ํฌํŠธ ๋ฒˆํ˜ธ ๋“ฑ)

 

โœ… ์„ค์ •ํŒŒ์ผ ์œ„์น˜ ์ฐพ๊ธฐ

nginx -t

 

ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ์‹คํ–‰ ํ›„ ์„ค์ • ๋ณ€๊ฒฝ

nano /opt/homebrew/etc/nginx/nginx.conf

 

 

 

๐Ÿบ NGINX๋กœ Proxy Server ๋งŒ๋“ค๊ธฐ

 

์„ค์ •ํŒŒ์ผ์— ์•„๋ž˜์™€ ๊ฐ™์ด ์ฝ”๋“œ ์ž‘์„ฑ

 

http {
	...
	server{
		listen 80; #8080 ํฌํŠธ์—์„œ 80๋ฒˆ ํฌํŠธ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค
		...
		location / {
			root html;
			index index.html index.htm;
			proxy_pass http://localhost:8080; # ์š”์ฒญ์„ 8080 ํฌํŠธ๋กœ ์ „๋‹ฌํ•œ๋‹ค
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header Host $http_host;
		}
		...
	}
}

 

 

์„ค์ •ํŒŒ์ผ ์ˆ˜์ • ๋’ค์—๋Š” ์žฌ์‹œ์ž‘์„ ํ•ด์ค€๋‹ค.

brew services restart nginx

 

 

 

๐Ÿน NGINX๋ฅผ Load Balancer๋กœ ํ™œ์šฉํ•˜๊ธฐ

 

 

NGINX๋ฅผ ํ†ตํ•ด ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ์— ์ถ”๊ฐ€ํ•  ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

NGINX ์„ค์ • ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€์„œ ์„œ๋ฒ„ ๊ทธ๋ฃน์„ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ์„œ๋ฒ„ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

http {
	upstream backend {
		server localhost:{ํฌํŠธ๋ฒˆํ˜ธ1};	#๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑํ•  ์„œ๋ฒ„1
		server localhost:{ํฌํŠธ๋ฒˆํ˜ธ2};	#๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑํ•  ์„œ๋ฒ„2
		...
	}
	location / {
		proxy_pass http://backend;
	}
}

 

upstream ๋’ค์— ์ ์€ backend๋Š” ์ง€์ •ํ•œ ์„œ๋ฒ„ ๊ทธ๋ฃน์ด๋ฆ„์ด๋‹ค.

์›ํ•˜๋Š” ๊ทธ๋ฃน์ด๋ฆ„์œผ๋กœ ์ ์œผ๋ฉด ๋œ๋‹ค.

 

์ถ”๊ฐ€์ž๋ฃŒ) nginx ๊ณต์‹ ๋ฌธ์„œ

 

 

 

 

๐ŸงŠ VPC

 

 

๐Ÿน VPC ๋ž€?

 

VPC : Vitual Private Cloud ์„œ๋น„์Šค

ํด๋ผ์šฐ๋“œ ๋‚ด private ๊ณต๊ฐ„์„ ์ œ๊ณตํ•ด์„œ ํด๋ผ์šฐ๋“œ๋ฅผ public๊ณผ private ์˜์—ญ์œผ๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

 

 

 

๐Ÿน VPC ๊ตฌ์„ฑ ์š”์†Œ์™€ ์ฃผ์š” ์šฉ์–ด

 

 

๐Ÿบ IP Address

 

IP๋Š” ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์—์„œ ์žฅ์น˜๋“ค์ด ์„œ๋กœ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํŠน์ˆ˜ํ•œ ๋ฒˆํ˜ธ์ด๋‹ค.

OSI์˜ 3๊ณ„์ธต์ธ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์— ํ•ด๋‹น๋œ๋‹ค.

IPv4, IPv6๋กœ ๋‚˜๋‰˜์–ด ์žˆ์œผ๋ฉฐ ํ˜ผ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

IPv4๋Š” ๊ฐ 8๋น„ํŠธ, IPv6๋Š” ๊ฐ 32๋น„ํŠธ๋กœ 4๊ฐœ์˜ ์˜ฅํ…Ÿ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

๋„คํŠธ์›Œํฌ ์ฃผ์†Œ์™€ ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ๋กœ ๋‚˜๋‰˜์–ด ์ง„๋‹ค.

 

๐ŸŒฑ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ : ํ˜ธ์ŠคํŠธ๋“ค์„ ๋ชจ์€ ๋„คํŠธ์›Œํฌ๋ฅผ ์ง€์นญํ•˜๋Š” ์ฃผ์†Œ์ด๋‹ค. ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๊ฐ€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ๋ผ๊ณ  ํ•œ๋‹ค.

๐ŸŒฑ ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ : ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ ๋‚ด์— ์กด์žฌํ•˜๋Š” ํ˜ธ์ŠคํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์ฃผ์†Œ

 

๋„คํŠธ์›Œํฌ ์ฃผ์†Œ์™€ ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒฝ๊ณ„์ ์ด ๊ณ ์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.

IP์ฃผ์†Œ๋Š” ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ์™€ ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒฝ๊ณ„์ ์— ๋”ฐ๋ผ ํด๋ž˜์Šค(Class)๋ฅผ ๋‚˜๋ˆˆ๋‹ค.

ํ˜ธ์ŠคํŠธ IP ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋„คํŠธ์›Œํฌ์˜ ํฌ๊ธฐ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋ž˜์Šค๋Š” ์ด 5๊ฐ€์ง€(A, B, C, D, E)๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค.

D์™€ E ํด๋ž˜์Šค๋Š” ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ์šฉ, ์—ฐ๊ตฌ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์˜ˆ์•ฝ IP๋ผ์„œ ๋ณดํ†ต์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 

A, B, C ํด๋ž˜์Šค์˜ ๋งจ ์•ž์ž๋ฆฌ ์ˆซ์ž๋งŒ ๋ณด๋ฉด ๋ฌด์Šจ ํด๋ž˜์Šค์ธ์ง€ ์‹๋ณ„์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

ํด๋ž˜์Šคํ’€(Classful) ๋ฐฉ์‹์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

A ํด๋ž˜์Šค

Network Address Host Address Host Address Host Address
0 ~ 127 0 ~ 255 0 ~ 255 0 ~ 255

0.0.0.0์€ ์ž์ฒด ๋„คํŠธ์›Œํฌ๋ฅผ ์˜๋ฏธํ•˜๊ณ  127.0.0.0 ~ 127.255.255.255๋Š” ์ž๊ธฐ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ์œ„ํ•ด ์˜ˆ์•ฝ๋œ IP ์ฃผ์†Œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

B ํด๋ž˜์Šค

Network Address Network Address Host Address Host Address
128 ~ 191 0 ~ 255 0 ~ 255 0 ~ 255

 

C ํด๋ž˜์Šค

Network Address Network Address Network Address Host Address
192 ~ 223 0 ~ 255 0 ~ 255 0 ~ 255

 

๋ชจ๋“  ํด๋ž˜์Šค์˜ ๋งจ ์•ž ์ฃผ์†Œ๋Š” ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋กœ, ๋งจ ๋’ค ์ฃผ์†Œ๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์‹ค์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” IP๋Š” 2^n - 2์ด๋‹ค.

 

 

๐Ÿบ CIDR(Classless inter-domain routing)

 

ํด๋ž˜์Šค ์—†๋Š” ๋„๋ฉ”์ธ ๊ฐ„ ๋ผ์šฐํŒ… ๊ธฐ๋ฒ•์œผ๋กœ ์‚ฌ์ด๋”๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค.

๊ตญ์ œ ํ‘œ์ค€์˜ IP ์ฃผ์†Œ ํ• ๋‹น ๋ฐฉ๋ฒ•์ด๋‹ค.

ํด๋ž˜์Šคํ’€ ๋ฐฉ์‹์„ ๋Œ€์ฒดํ•œ ๋ฐฉ์‹์ด๋‹ค.

 

๊ธฐ์กด์—๋Š” ํด๋ž˜์Šค์— ๋”ฐ๋ผ ์ •ํ•ด์ง„ Network Address์™€ Host Address๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ CIDR์€ ์›ํ•˜๋Š” ๋ธ”๋ก๋งŒํผ Network Address๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

AWS์˜ VPC๋Š” CIDR ๋ฐฉ์‹์ด๋‹ค.

 

ex) 172.16.0.0/24

-> /24 ์ด ์„œ๋ธŒ๋„ท ๋ธ”๋ก, ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ์— 16๋น„ํŠธ๋งŒ ํ• ๋‹นํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์ด 2^์ธ ๊ฐœ์˜ IP ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

AWS VPC์—์„œ๋Š” /16 ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค.

โ€ป ์ถ”๊ฐ€ ์ž๋ฃŒ) AWS VPC ๊ธฐ๋ณธ ๋ฐ ์—ฐ๊ฒฐ ์˜ต์…˜

 

 

๐Ÿบ ์„œ๋ธŒ๋„ท(Subnet)

 

Subnetwork์˜ ์ค„์ž„๋ง์ด๋‹ค.

IP ๋„คํŠธ์›Œํฌ์˜ ๋…ผ๋ฆฌ์  ํ•˜์œ„ ๋ถ€๋ถ„์„ ๊ฐ€๋ฆฌํ‚ด

์„œ๋ธŒ๋„ท์„ ํ†ตํ•ด ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ

VPC๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•„์š”์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์„œ๋ธŒ๋„ท์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ

  • ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท: ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ธŒ๋„ท
  • ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท: ์ธํ„ฐ๋„ท์„ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ณ , ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฐํƒ€์ ์ธ ์„œ๋ธŒ๋„ท
  • VPN only ์„œ๋ธŒ๋„ท : ๊ธฐ์—… ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์™€ VPC๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„œ๋ธŒ๋„ท

 

VPC

 

์„œ๋ธŒ๋„ท์€ VPC์˜ CIDR ๋ธ”๋ก์„ ์ด์šฉํ•ด ์ •์˜๋œ๋‹ค.

์ตœ์†Œ ํฌ๊ธฐ์˜ ์„œ๋ธŒ๋„ท์€ /28 ์ด๋‹ค.

์„œ๋ธŒ๋„ท์€ AZ(Availability Zone, ๊ฐ€์šฉ ์˜์—ญ)๋‹น ์ตœ์†Œ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ์˜ AZ์— ์—ฐ๊ฒฐ๋˜๋Š” ์„œ๋ธŒ๋„ท์€ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค.

 

AWS๊ฐ€ ํ™•๋ณดํ•œ ์„œ๋ธŒ๋„ท ์ค‘ ์ฒ˜์Œ ๋„ค ๊ฐœ์™€ ๋งˆ์ง€๋ง‰ IP ์ฃผ์†Œ๋Š” ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํ‚น์„ ์œ„ํ•ด ์˜ˆ์•ฝ๋˜์–ด ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 10.0.0.0/24 ์ฒด๊ณ„์˜ CIDR ๋ธ”๋ก์ด ์žˆ๋Š” ์„œ๋ธŒ๋„ท์—์„œ 10.0.0.0, 10.0.0.1, 10.0.0.2, 10.0.0.3, 10.0.0.255 ๋Š” IP ์ฃผ์†Œ๊ฐ€ ์˜ˆ์•ฝ๋˜์–ด ์žˆ๋‹ค.

 

 

๐Ÿบ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”(Routing Table)

 

ํŠธ๋ž˜ํ”ฝ์˜ ์ „์†ก ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ผ์šฐํŠธ์™€ ๊ด€๋ จ๋œ ๊ทœ์น™์„ ๋‹ด์€ ํ…Œ์ด๋ธ”์ด๋‹ค.

๋ชฉ์ ์ง€๊นŒ์ง€ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

๋ชจ๋“  ์„œ๋ธŒ๋„ท์€ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ๊ฐ€์ง„๋‹ค.

ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ” ๊ทœ์น™์„ ์—ฌ๋Ÿฌ ์„œ๋ธŒ๋„ท์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์„œ๋ธŒ๋„ท ์ƒ์„ฑ ํ›„ ๋ณ„๋„์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์œผ๋ฉด ํด๋ผ์šฐ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ VPC์˜ ๋ฉ”์ธ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐํ•œ๋‹ค.