๐ŸŒˆ [Section4] 13. [Cloud] ์šด์˜ ์ „๋žต

ํ˜„์ฃผยท2022๋…„ 12์›” 10์ผ
0

bootcamp

๋ชฉ๋ก ๋ณด๊ธฐ
67/71

๐Ÿ“• ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ!

  • ํ”„๋ก์‹œ ์„œ๋ฒ„
  • ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ
  • ์˜คํ† ์Šค์ผ€์ผ๋ง
  • TOMCAT
  • JETTY
  • NGINX
  • VPC

โœ๏ธ ํ”„๋ก์‹œ ์„œ๋ฒ„ (Proxy Server)

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

โœ” ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ ์ข…๋ฅ˜

์ฐธ๊ณ 

โœ”๏ธ Forward Proxy

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

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

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

  • ์žฅ์ 

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

    • ๋ณด์•ˆ
      โžœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ๊ฑฐ์นœ ํ›„ ์„œ๋ฒ„์— ๋„์ฐฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
      ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ IP ์ถ”์ ์„ ํ•˜๋ฉด ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ IP๊ฐ€ ์ „๋‹ฌ๋จ
      ( ํด๋ผ์ด์–ธํŠธ์˜ IP๋ฅผ ์ˆจ๊ฒจ ๋ณด์•ˆ ๊ฐ€๋Šฅ )

โœ”๏ธ Reverse Proxy

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

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

  • ๋ถ„์‚ฐ์ฒ˜๋ฆฌ๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๊ฑฐ๋‚˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ์ด์šฉ

  • ์žฅ์ 

    • ๋ถ„์‚ฐ์ฒ˜๋ฆฌ
      โžœ ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์—ฌ๋Ÿฌ๋Œ€์˜ ์„œ๋ฒ„๋กœ ๋‚˜๋ˆ„์–ด ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
      ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ ๊ฐ€๋Šฅ
    • ๋ณด์•ˆ
      โžœ ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ๊ฑฐ์ณ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์—,
      ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์˜ IP ์ถ”์ ์„ ํ•˜๋ฉด ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ IP๊ฐ€ ์ „๋‹ฌ๋จ
      ( ์„œ๋ฒ„์˜ IP๋ฅผ ์ˆจ๊ฒจ ๋ณด์•ˆ ๊ฐ€๋Šฅ )

โœ๏ธ ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ

( ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— ๋„ˆ๋ฌด ๋งŽ๊ฑฐ๋‚˜ ์žฆ์€ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค๋ฉด ์„œ๋ฒ„์—๋Š” ๊ณผ๋ถ€ํ•˜์˜ค๋Š”๋ฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋“ค์ž„ )

โœ”๏ธ Scale-Up

  • ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์„œ๋ฒ„์˜ ์‚ฌ์–‘์„ ๋†’์ด๋Š” ํ•˜๋“œ์›จ์–ด์ ์ธ ๋ฐฉ๋ฒ•

  • ๋ฐ˜๋Œ€๋กœ ์„œ๋ฒ„์˜ ์‚ฌ์–‘์„ ๋‚ฎ์ถ”๋Š” ๊ฒƒ์€ Scale-Down

  • ์žฅ์ 

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

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

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

    • ์‚ฌ์–‘์„ ๋Š˜๋ฆฐ๋งŒํผ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋” ๋งŽ์•„์ง„๋‹ค๋ฉด, ์„œ๋ฒ„์— ๋ฐœ์ƒํ•˜๋Š” ๋ถ€ํ•˜๋Š” ์—ฌ์ „ํžˆ ํ•ด๊ฒฐ X

โœ”๏ธ Scale-Out

  • ์„œ๋ฒ„์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋Š˜๋ ค ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— ์ค„ ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•
    โžœ ๋งŽ์€ ์š”์ฒญ์ด ์˜ค๋”๋ผ๋„ ์—ฌ๋Ÿฌ๋Œ€์˜ ์„œ๋ฒ„๊ฐ€ ๋‚˜๋ˆ ์„œ ์ฒ˜๋ฆฌ

  • ์š”์ฒญ์„ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋‚˜๋ˆ  ์ฒ˜๋ฆฌํ•ด์ค„ ์ˆ˜ ์žˆ๋„๋ก ๊ตํ†ต์ •๋ฆฌ ํ•ด์ฃผ๋Š” ์—ญํ•  ํ•„์š”
    โžœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ํ•„์š”

  • ๋ฐ˜๋Œ€๋กœ ์„œ๋ฒ„ ๊ฐœ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์€ Scale-In

  • ์žฅ์ 

    • ์„œ๋ฒ„์˜ ์‚ฌ์–‘์„ ๋†’์ด์ง€ ์•Š๊ณ ๋„ ๋น„๊ต์  ์ €๋ ดํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ถ€ํ•˜ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

๐Ÿ’ก ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ

  • ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๊ตํ†ต์ •๋ฆฌ๋ฅผ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ  or ํ”„๋กœ๊ทธ๋žจ

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

  • L2
    โžœ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ณ„์ธต์—์„œ Mac ์ฃผ์†Œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    โ €
  • L3
    โžœ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ IP ์ฃผ์†Œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    โ €
  • L4
    โžœ ์ „์†ก ๊ณ„์ธต์—์„œ IP์ฃผ์†Œ์™€ Port๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    โ €
  • L7
    โžœ ์‘์šฉ ๊ณ„์ธต์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ
    Ex. ์—”๋“œํฌ์ธํŠธ

โœ๏ธ ์˜คํ† ์Šค์ผ€์ผ๋ง

  • Scale-Out ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•  ๋•Œ, ์ž๋™์œผ๋กœ ์„œ๋ฒ„(๋ฆฌ์†Œ์Šค)๋ฅผ ๊ด€๋ฆฌํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ
    โžœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋งŽ์•„์ ธ ์„œ๋ฒ„์˜ ์ฒ˜๋ฆฌ ์š”๊ตฌ๋Ÿ‰์ด ์ฆ๊ฐ€ํ•˜๋ฉด ์ƒˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ ,
    ๋ฐ˜๋Œ€๋กœ ์ฒ˜๋ฆฌ ์š”๊ตฌ๋Ÿ‰์ด ์ค„์–ด๋“ค๋ฉด ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ์†Œ์‹œ์ผœ ์ ์ ˆํ•œ ๋ถ„์‚ฐ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์คŒ

โœ” ์žฅ์ 

  • ๋™์  ์Šค์ผ€์ผ๋ง
    โžœ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ๋™์ ์œผ๋กœ ์Šค์ผ€์ผ๋ง ๊ฐ€๋Šฅ
    โ €
    โžœ ์Šค์ผ€์ผ ์—… ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์˜ ์ˆ˜ ์ œํ•œ X
    ( ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์„œ๋ฒ„ ๋‘ ๋Œ€์—์„œ ์ˆ˜๋ฐฑ ~ ์ˆ˜๋งŒ ๋Œ€์˜ ์„œ๋ฒ„๋กœ ์ฆ‰์‹œ ์Šค์ผ€์ผ ์—… ๊ฐ€๋Šฅ )

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

  • ํƒ€๊ฒŸ ํŠธ๋ž˜ํ‚น
    โžœ ์‚ฌ์šฉ์ž๋Š” ํŠน์ • ํƒ€๊ฒŸ์— ๋Œ€ํ•ด์„œ๋งŒ Auto Scaling ๊ฐ€๋Šฅ
    โ €
    โžœ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•œ ํƒ€๊ฒŸ์— ๋งž์ถฐ EC2 ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜ ์กฐ์ •

  • ํ—ฌ์Šค ์ฒดํฌ / ์„œ๋ฒ„ ํ”Œ๋ฆฟ ๊ด€๋ฆฌ
    โžœ EC2 ์ธ์Šคํ„ด์Šค์˜ ํ—ฌ์Šค ์ฒดํฌ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ€๋Šฅ
    ( ๋ชจ๋‹ˆํ„ฐ๋ง ์ค‘, ํŠน์ • ์ธ์Šคํ„ด์Šค์˜ ๋ฌธ์ œ๊ฐ€ ๊ฐ์ง€๋˜๋ฉด, ์ž๋™์œผ๋กœ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋กœ ๊ต์ฒด )
    โ €
    โžœ ์ ์ • ์ˆ˜์ค€์˜ ์„œ๋ฒ„ ํ”Œ๋ฆฟ ์šฉ๋Ÿ‰์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ๋„ ๋„์›€
    ( ๋ชจ๋‹ˆํ„ฐ๋ง ์ค‘, ํŠน์ • ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹ค์šด๋˜๋ฉด, ์›๋ž˜์˜ ์ฒ˜๋ฆฌ ์šฉ๋Ÿ‰์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด
    ๋ถ€์กฑํ•œ ๋งŒํผ์˜ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€๋กœ ์‹คํ–‰์‹œ์ผœ ์„œ๋ฒ„ ํ”Œ๋ฆฟ ์œ ์ง€ )

    ๐Ÿ’ก ์„œ๋ฒ„ ํ”Œ๋ฆฟ (Fleet) (feat. AWS)
    โžœ ๋‹ค์ˆ˜์˜ EC2 ์„œ๋ฒ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ˜ธ์ŠคํŒ… ํ•˜๋Š” ๊ฒฝ์šฐ์—, ๊ทธ EC2 ์„œ๋ฒ„๋“ค์˜ ์ง‘ํ•ฉ

โœ” EC2 Auto Scaling ํ™œ์šฉ

โœ”๏ธ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ (Launch Configuration)

  • ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋‹ด๊ณ ์žˆ์Œ ( ์ธ์Šคํ„ด์Šค ๊ตฌ์„ฑ ํ…œํ”Œ๋ฆฟ )
    Ex. AMI ์ƒ์„ธ ์ •๋ณด, ์ธ์Šคํ„ด์Šค ํƒ€์ž…, ํ‚ค ํŽ˜์–ด, ์‹œํ๋ฆฌํ‹ฐ ๊ทธ๋ฃน ๋“ฑ

  • ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ์„ ํ†ตํ•ด ์–ด๋–ค ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •

    ๐Ÿ’ก ์‹œ์ž‘ ๊ตฌ์„ฑ

    • EC2 Auto Scaling์ด ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š” EC2 ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์ง€์ •ํ•œ๋‹ค๋Š” ์ ์—์„œ ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ๊ณผ ๋น„์Šท

    ๐Ÿ’ก ์‹œ์ž‘ ๊ตฌ์„ฑ vs ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ

    • ์‹œ์ž‘ ํ…œํ”Œ๋ฆฟ
      • ์ˆ˜์ • ๋ถˆ๊ฐ€
      • But, ๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ…œํ”Œ๋ฆฟ ์ƒ์„ฑ ๊ฐ€๋Šฅ
        โ €
    • ์‹œ์ž‘ ๊ตฌ์„ฑ
      • ํ•œ๋ฒˆ ์ƒ์„ฑํ•˜๋ฉด ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€
      • ์•„์˜ˆ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ  ์—…๋ฐ์ดํŠธ ํ•ด์•ผํ•จ
        โ €
        [์ฐธ๊ณ ] https://malragasi.tistory.com/22

โœ”๏ธ Auto Scaling ๊ทธ๋ฃน ์ƒ์„ฑ

  • ์Šค์ผ€์ผ ์—… / ์Šค์ผ€์ผ ๋‹ค์šด ๊ทœ์น™๋“ค์˜ ๋ชจ์Œ

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

  • Auto Scaling ๊ทธ๋ฃน ์ƒ์„ฑ์„ ์œ„ํ•ด ์Šค์ผ€์ผ๋ง ์ •์ฑ… ๋ฐ ์œ ํ˜•์— ๋Œ€ํ•ด ์ž˜ ์ˆ™์ง€ํ•ด์•ผํ•จ

โœ”๏ธ Scaling ์œ ํ˜•

  • ์ธ์Šคํ„ด์Šค ๋ ˆ๋ฒจ ์œ ์ง€

    • ๊ธฐ๋ณธ ์Šค์ผ€์ผ๋ง ๊ณ„ํš

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

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

  • ์ˆ˜๋™ ์Šค์ผ€์ผ๋ง

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

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

    • ํ•ด๋‹น ๋ฐฉ์‹์€ ์ถ”์ฒœํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹

  • ์ผ์ •๋ณ„ ์Šค์ผ€์ผ๋ง

    • ์˜ˆ์ธก ์Šค์ผ€์ผ๋งํŠธ๋ž˜ํ”ฝ์˜ ๋ณ€ํ™”๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๊ณ , ํŠน์ • ์‹œ๊ฐ„๋Œ€์— ์–ด๋Š ์ •๋„์˜ ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•˜๋Š”์ง€ ํŒจํ„ด์— ๋”ฐ๋ผ ๊ทœ์น™ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹

      Ex. ๋‚ฎ ์‹œ๊ฐ„๋Œ€์—๋Š” ํŠธ๋ž˜ํ”ฝ์ด ์ตœ๊ณ ์น˜์— ์ด๋ฅด๊ณ  ๋ฐค ์‹œ๊ฐ„๋Œ€์—๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๊ฑฐ์˜ ์—†๋‹ค๋ฉด,
      ๋‚ฎ ์‹œ๊ฐ„๋Œ€์— ์„œ๋ฒ„๋ฅผ ์ฆ์„คํ•˜๊ณ  ๋ฐค ์‹œ๊ฐ„๋Œ€์— ์Šค์ผ€์ผ ๋‹ค์šด ํ•˜๋Š” ๊ทœ์น™ ์ถ”๊ฐ€

  • ๋™์  ์Šค์ผ€์ผ๋ง

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

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

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

    • ํ•ญ์ƒ ์Šค์ผ€์ผ ์—…๊ณผ ์Šค์ผ€์ผ ๋‹ค์šด ๋‘ ๊ฐ€์ง€์˜ ์ •์ฑ… ๋ชจ๋‘ ์ž‘์„ฑํ•ด์•ผ ํ•จ


โœ๏ธ TOMCAT

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

  • ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์˜คํ”ˆ์†Œ์Šค WAS(Web Application Server)
    โžœ ๋น„์šฉ ๋ถ€๋‹ด X

  • ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ๊ณต์‹ ๊ตฌํ˜„์ฒด ( Spring Boot์˜ ๋‚ด์žฅ ์„œ๋ฒ„ )
    โžœ ๋ณ„๋„์˜ ์„ค์น˜ ํ•„์š” X

    ๐Ÿ’ก Tomcat ์˜์กด์„ฑ

    • Intellij ๋‚ด์˜ View > Tool Windows > Gradle > Dependencies ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ
  • ๋…๋ฆฝ์ ์œผ๋กœ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ / Apache ๊ฐ™์€ ๋‹ค๋ฅธ ์›น ์„œ๋ฒ„์™€ ์—ฐ๋™ํ•˜์—ฌ ํ•จ๊ป˜ ์‚ฌ์šฉ๋„ ๊ฐ€๋Šฅ


โœ๏ธ Jetty

  • ์ดํด๋ฆฝ์Šค ์žฌ๋‹จ์˜ HTTP ์„œ๋ฒ„์ด์ž ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ
    ( ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ )

  • Tomcat๊ณผ ๊ฐ™์ด ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์ด์ž ์„œ๋ฒ„๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
    โžœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์„ ํƒํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ

  • 2009๋…„ ์ดํด๋ฆฝ์Šค ์žฌ๋‹จ์œผ๋กœ ์ด์ „ํ•˜๋ฉฐ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋กœ ๊ฐœ๋ฐœ๋จ
    ํƒ€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋Œ€๋น„ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ
    โžœ ๊ฐ€๋ณ๊ณ  ๋น ๋ฆ„

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‚ด์žฅ ๊ฐ€๋Šฅ

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

๐Ÿ’ก Tomcat ๋Œ€์‹  Jetty๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฒ•
โžœ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ์ธ Tomcat ์˜์กด์„ฑ์„ ์ œ์™ธํ•ด์ฃผ๊ณ ,
Jetty ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ !

dependencies {
	implementation ('org.springframework.boot:spring-boot-starter-web') {
		exclude module: 'spring-boot-starter-tomcat' // tomcat ์˜์กด์„ฑ ์ œ์™ธ
	}
	implementation ('org.springframework.boot:spring-boot-starter-jetty') // jetty ์˜์กด์„ฑ ์ถ”๊ฐ€
}

๊ทธ๋ฆฌ๊ณ  build๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ๋œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค !


โœ๏ธ Nginx

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

    ๐Ÿ’ก Tomcat๊ณผ Jetty๋Š” ์ž๋ฐ” ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ or ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„

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

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

  • ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜
    โžœ ์ ์€ ์ž์›์œผ๋กœ ๋†’์€ ์„ฑ๋Šฅ / ๋†’์€ ๋™์‹œ์„ฑ

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

  • ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

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

  • Nginx๋กœ ํ”„๋ก์‹œ ์„œ๋ฒ„ ๊ตฌ์ถ• ๊ฐ€๋Šฅ
    โžœ ํด๋ผ์ด์–ธํŠธ - Nginx(80๋ฒˆ ํฌํŠธ) - Spring Boot(8080๋ฒˆ ํฌํŠธ)


โœ๏ธ VPC (Virtual Private Cloud)

  • ํด๋ผ์šฐ๋“œ ๋‚ด ํ”„๋ผ์ด๋น— ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜์—ฌ,
    ํด๋ผ์šฐ๋“œ๋ฅผ Public๊ณผ Private ์˜์—ญ์œผ๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜๋Š” ์„œ๋น„์Šค

  • ํ™•์žฅ์„ฑ

  • ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์™„์ „ํ•œ ํ†ต์ œ๊ถŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ

โœ” IP Address

( ์ด๊ฑฐ ์•ž์— ์–ด๋”˜๊ฐ€ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑํ•œ ๊ฑฐ ์žˆ์Œ )

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

  • IPv4 / IPv6๋กœ ๋‚˜๋‰˜๋ฉฐ ํ˜ผ์šฉํ•˜์—ฌ ์‚ฌ์šฉ

  • .์œผ๋กœ ๊ตฌ๋ถ„ํ•œ 4๊ฐœ์˜ ์˜ฅํ…Ÿ์œผ๋กœ ์ด๋ฃจ์–ด์ง
    โžœ ๊ฐ๊ฐ Network Address/Host Address/Host Address/Host Address

    โœ”๏ธ IP Address Class

    • (์ด์ „์—๋Š”) IPv4 ์ฃผ์†Œ์—์„œ ํ˜ธ์ŠคํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ํŠน์ • ๋„คํŠธ์›Œํฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” 8๋น„ํŠธ์˜ ๋„คํŠธ์›Œํฌ ์˜์—ญ(Network Address)๊ณผ ํ•ด๋‹น ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ํ˜ธ์ŠคํŠธ์˜ ์ฃผ์†Œ(Host Address)๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋‚˜๋จธ์ง€ ์˜์—ญ์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ํด๋ž˜์Šค(Class) ์‚ฌ์šฉ
      โ €
    • A, B, C, D, E์˜ 5๊ฐœ ํด๋ž˜์Šค๋กœ ๋‚˜๋‰จ
      โ €
      ( ๊ถ๊ธˆํ•˜๋ฉด ๋” ์ฐพ์•„๋ณด๊ธฐ )

โœ” CIDR (Classless inter-domain routing)

  • ํด๋ž˜์Šค๊ฐ€ ์—†๋Š” ๋„๋ฉ”์ธ ๊ฐ„ ๋ผ์šฐํŒ… ๊ธฐ๋ฒ•

  • 1993๋…„ ๋„์ž…๋˜๊ธฐ ์‹œ์ž‘ํ•œ ๊ตญ์ œ ํ‘œ์ค€์˜ IP์ฃผ์†Œ ํ• ๋‹น ๋ฐฉ๋ฒ•

  • IP Address Class ๋ฐฉ์‹์„ ๋Œ€์ฒดํ•œ ๋ฐฉ์‹

  • ์›ํ•˜๋Š” ๋ธ”๋ก๋งŒํผ Network Address๋ฅผ ์ง€์ •ํ•˜์—ฌ ์šด์šฉ ๊ฐ€๋Šฅ
    ( ๋ธ”๋ก์€ ์ •ํ•ด์ ธ ์žˆ์Œ - ๊ฒ€์ƒ‰ํ•ด๋ณด๊ธฐ )

    Ex. 172.16.0.0 /16 ์ด๋ฉด,
    ์—ฌ๊ธฐ์„œ /16์€ ์ฒซ 16bit๋ฅผ Network Address๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ
    โ €
    โžœ ์ด 2^16์ธ 65,536๊ฐœ์˜ IP์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋‹ค๋ž€ ๋„คํŠธ์›Œํฌ ๋ธ”๋ก์„ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํ‘œ์‹œ

โœ” ์„œ๋ธŒ๋„ท (Subnet)

  • ์„œ๋ธŒ๋„คํŠธ์›Œํฌ(Subnetwork)์˜ ์ค„์ž„๋ง

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

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

  • VPC์˜ CIDR ๋ธ”๋ก์„ ์ด์šฉํ•ด ์ •์˜
    ( ์ตœ์†Œ ํฌ๊ธฐ์˜ ์„œ๋ธŒ๋„ท์€ /28 )

  • VCP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์„œ๋ธŒ๋„ท์„ ์ƒ์„ฑ ๊ฐ€๋Šฅ

    • ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท
      โžœ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ธŒ๋„ท

    • ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท
      โžœ ์ธํ„ฐ๋„ท์„ ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๊ณ , ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฐํƒ€์ ์ธ ์„œ๋ธŒ๋„ท

    • VPN only ์„œ๋ธŒ๋„ท
      โžœ ๊ธฐ์—… ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์™€ VPC๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์„œ๋ธŒ๋„ท

โš ๏ธ ์„œ๋ธŒ๋„ท์€ AZ๋‹น ์ตœ์†Œ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ์˜ AZ์— ์—ฐ๊ฒฐ๋˜๋Š” ์„œ๋ธŒ๋„ท์€ ๋งŒ๋“ค ์ˆ˜ X

๐Ÿ’ก AWS๊ฐ€ ํ™•๋ณดํ•œ ์„œ๋ธŒ๋„ท ์ค‘ ์ฒ˜์Œ ๋„ค ๊ฐœ์˜ IP์ฃผ์†Œ์™€ ๋งˆ์ง€๋ง‰ IP์ฃผ์†Œ๋Š” ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํ‚น์„ ์œ„ํ•ด ์˜ˆ์•ฝ๋˜์–ด์žˆ์Œ !
Ex. 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 ๋“ฑ 5๊ฐœ์˜ IP์ฃผ์†Œ๋Š” ์˜ˆ์•ฝ ๋˜์–ด ์žˆ์Œ

โœ” ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” (Routing Table)

  • ํ•˜๋‚˜์˜ ์ง€์ ์—์„œ ๋˜ ๋‹ค๋ฅธ ์ง€์ ์œผ๋กœ ๊ฐ€๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ํ…Œ์ด๋ธ”

( ํŠธ๋ž˜ํ”ฝ์˜ ์ „์†ก ๋ฐฉํ–ฅ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ผ์šฐํŠธ์™€ ๊ด€๋ จ๋œ ๊ทœ์น™์„ ๋‹ด์€ ํ…Œ์ด๋ธ”๋กœ ๋ชฉ์ ์ง€๋ฅผ ํ–ฅํ•œ ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ์ •๋ณด ๋‹ด๊ณ  ์žˆ์Œ )

  • ๋ชจ๋“  ์„œ๋ธŒ๋„ท์€ ํ•ญ์ƒ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ๊ฐ€์ง
    ( ํ•˜๋‚˜์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ๊ทœ์น™์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„œ๋ธŒ๋„ท์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ )

    Ex. ํŠน์ • VPC์˜ ์„œ๋ธŒ๋„ท์ด ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ํ•ด๋‹น ์„œ๋ธŒ๋„ท์€ ์ธํ„ฐ๋„ท ์•ก์„ธ์Šค ๊ถŒํ•œ / ์ •๋ณด๋ฅผ ๊ฐ€์ง‘

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

    โœ”๏ธ ๊ฒŒ์ดํŠธ์›จ์ด
    โžœ VPC์™€ ์ธํ„ฐ๋„ท ๊ฐ„ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ตฌ์„ฑ์š”์†Œ


๐Ÿ˜œ ์‹ค์Šต

โœ”๏ธ Nginx 1๊ฐœ ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์‹ค์Šต

  1. ์ด ๋งํฌ์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์œˆ๋„์šฐ์šฉ Stable ๋ฒ„์ „ ๋‹ค์šด๋กœ๋“œ !

( ๋‚˜๋Š” C:\Program Files\nginx-1.22.1 ์ด ์œ„์น˜์— ์„ค์น˜ํ–ˆ๋‹ค ! )

  1. nginx.exe์„ ์‹คํ–‰ํ•˜๋ฉด ์œˆ๋„์šฐ๋Š” ๊ธฐ๋ณธ์œผ๋กœ 80ํฌํŠธ๋กœ ์—ฐ๊ฒฐ์ด ๋  ๊ฒƒ !
    ( localhost:80์œผ๋กœ ์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚จ )

  2. nginx๋ฅผ ํ”„๋ก์‹œ ์„œ๋ฒ„ ์—ญํ• ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด conf > nginx.conf ํŒŒ์ผ์—
    ์•„๋ž˜์™€ ๊ฐ™์ด 80 ํฌํŠธ๋ฅผ ํ”„๋ก์‹œ๋กœ 8080 ํฌํŠธ๊นŒ์ง€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ ์ˆ˜์ • ํ›„ ์ €์žฅ

    server {
    		listen       80;
    ...
    		location / {
    				...
    				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; # ์ถ”๊ฐ€
    		}
    }
  3. cmd๋ฅผ ์—ด์–ด์„œ nginx -s reload ๋ช…๋ น์–ด๋กœ ์žฌ์‹œ์ž‘

  4. ์ดํ›„ localhost:80๋กœ ์ ‘์†ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํŽ˜์ด์ง€๊ฐ€ ๋‚˜ํƒ€๋‚จ !
    ( ์•„์ง 8080 ํฌํŠธ๊ฐ€ ์‹คํ–‰์ค‘์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ )

  1. intellij๋‚˜ ํ„ฐ๋ฏธ๋„๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œ ํ›„ ์‹คํ–‰์‹œํ‚จ ํ›„ ๋‹ค์‹œ localhost:80์œผ๋กœ ๋“ค์–ด๊ฐ€๋ฉด,
    ์•„๋ž˜์™€ ๊ฐ™์ด 8080 ํฌํŠธ๋กœ ์‹คํ–‰์‹œํ‚จ ํ”„๋กœ์ ํŠธ์˜ ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚  ๊ฒƒ !

  2. 'nginx -s stop` ๋ช…๋ น์–ด๋กœ nignx ์ข…๋ฃŒ ๊ฐ€๋Šฅ

โœ”๏ธ Nginx 2๊ฐœ ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์‹ค์Šต (๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์‚ฌ์šฉ)

[์ฐธ๊ณ ] https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/

  1. ํ•œ ํ”„๋กœ์ ํŠธ๋Š” 8080 ํฌํŠธ / ๋‹ค๋ฅธ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋Š” 8081 ํ”„๋กœ์ ํŠธ๋กœ ๋นŒ๋“œ ํ›„ ์‹คํ–‰ํ•˜๊ณ 

  2. ์•„๊นŒ ์„ค์ •ํ•œ ๋ถ€๋ถ„์„ ์ฃผ์„์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ , 8080 ํฌํŠธ์™€ 8081 ํฌํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์คŒ

    http {
    	upstream backend { # ์ถ”๊ฐ€
    		server localhost:8080; # ์ถ”๊ฐ€
    		server localhost:8081; # ์ถ”๊ฐ€
    	}
    	location / {
    		proxy_pass http://backend; # ์ถ”๊ฐ€ ( ์•„๋ž˜๋Š” ์ฃผ์„์œผ๋กœ ๋งŒ๋“ค์–ด์คŒ )
    //          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; # ์ถ”๊ฐ€
    	}
    }
  3. ์ดํ›„ ๋‹ค์‹œ nginx์žฌ์‹œ์ž‘ ํ•˜๊ณ  localhost:80์œผ๋กœ ์ ‘์†ํ•˜์—ฌ ์ƒˆ๋กœ๊ณ ์นจ์„ ๋ˆ„๋ฅด๋ฉด,
    ๋‘ ํ”„๋กœ์ ํŠธ์˜ ํ™”๋ฉด์ด ๋ฒˆ๊ฐˆ์•„ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ !!


๐ŸŒˆ ๋Š๋‚€์ 

์ด๋ฒˆ ํ•™์Šต์€ ๊ทธ๋ž˜๋„ ์–ด๋ ค์›€ ์—†์ด ์ž˜ ๋๋ƒˆ๊ณ  !!
ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ ๋ญ”์ง€ ๊ฐ์ด ์ž˜ ์•ˆ์žกํ˜”์—ˆ๋Š”๋ฐ ์ง์ ‘ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋” ์ดํ•ด๋„ ์ž˜ ๋๊ณ  ์žฌ๋ฐŒ์—ˆ๋‹ค ใ…Žใ…Ž

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