NCP ์‚ฌ์šฉ๊ธฐ

ํด๋ผ์ด๋ฐ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ๋Š” ๊ธฐ์กด ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๋А๋ผ๋Š” ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ–ˆ๋‹ค.

  • ํด๋ผ์ด๋ฐ ๊ด€๋ จ ์•ฑ๋“ค์— ๊ฐœ์ธ์— ๋งž๊ฒŒ ์˜์ƒ์„ ํŽธ์ง‘ํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์—†์–ด ์‚ฌ์šฉ์ž๋“ค์ด ๋ถˆํŽธํ•จ์„ ๋А๋‚€๋‹ค๋Š” ์กฐ์‚ฌ ๊ฒฐ๊ณผ๊ฐ€ ์žˆ์—ˆ๋‹ค.

๋งŽ์€ ์‹œํ–‰์ฐฉ์˜ค๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ๋Ÿฐ์นญ ๋ฐ์ด๊นŒ์ง€ ๊ฐœ๋ฐœ์„ ์™„๋ฃŒํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

ํŒ€์›๋“ค์˜ ๋งŽ์€ ์ˆ˜๊ณ ๋กœ ์™„์„ฑ๋œ ํด๋ผ์ด๋ฐ ์•ฑ ์„œ๋น„์Šค์ด๋‹ค.

๋””ํ”„๋งŒ 16๊ธฐ IOS์˜ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”.. ๋ฐ˜๋“œ์‹œ ํด๋ผ์šฐ๋“œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. (ํ™ˆ ์„œ๋ฒ„๊ฐ€ ์—†๋‹คใ…‹ใ…‹)

์ด์ „์—๋„ AWS์—์„œ ํ•˜๊ณ  ์‹ถ์€ ๊ฑธ ๋ง˜๊ป ํ•˜๋‹ค๊ฐ€.. ์ž์œ ๋ถ„๋ฐฉํ•œ ๊ฒฐ์ œ ์š”๊ธˆ์„ ๋งˆ์ฃผํ•œ ์ ์ด ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋””ํ”„๋งŒ์—์„œ๋Š” ๊ทธ๋Ÿด ๊ฑฑ์ •์ด ์—†์—ˆ๋‹ค. ๋ฐ”๋กœ Naver Cloud Platformarrow-up-right ํฌ๋ ˆ๋”ง์„ ์ง€์›ํ•ด์ค€๋‹ค.

NCP๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ๋“ค์„ ํŒŒ์•…ํ•ด์•ผ ํ•œ๋‹ค.

Container Registry

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด docker๋ฅผ ๋Œ€๋ถ€๋ถ„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค. NCP์˜ Container Registry๋Š” ํ”„๋ผ์ด๋น— ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ์ด๋ฉฐ ํŠน์ง•๊ณผ ์žฅ์ ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

ํŠน์ง•

  1. ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ:

  • ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ(push), ๋‹ค์šด๋กœ๋“œ(pull)์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  1. Object Storage ์—ฐ๋™:

  • ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋Š” NCP์˜ Object Storage์— ์ €์žฅ๋œ๋‹ค. (๊ณต์งœ๋Š” ์•„๋‹˜)

  1. public/private endpoint ์ œ๊ณต

  • public: ์™ธ๋ถ€ ์ธํ„ฐ๋„ท์—์„œ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • private: NCP ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์—์„œ๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์‚ฌ์šฉ๋ฒ•

  1. Object Storage ์ƒ์„ฑ: Container Registry๋ฅผ ์‚ฌ์šฉํ˜€๋ ค๋ฉด ๋จผ์ € Object Storage ๋ฒ„ํ‚ท์„ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

  2. Registry ์ƒ์„ฑ: ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ƒ์„ฑํ•œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์™€ Object Storage๋ฅผ ์—ฐ๋™ํ•ด์•ผ ํ•œ๋‹ค.

  3. Docker CLI ์—ฐ๋™: ๋„์ปค CLI๋ฅผ ํ†ตํ•ด Registry์— ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, API ์ธ์ฆํ‚ค๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์ƒ์„ฑ๋œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๋ฉด Configuration์— ์•ž์„œ ์–˜๊ธฐํ•œ Public/Private Endpoint๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ๋Š” Github Actions์„ ํ™œ์šฉํ•ด์„œ ๋ฐฐํฌ ์ž๋™ํ™”๋ฅผ ๊ตฌ์„ฑํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— Public Endpoint๋Š” ์—ด์–ด๋‘ฌ์•ผ ํ•œ๋‹ค.

์ ‘๊ทผ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด username:password๋ฅผ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š”๋ฐ, {API ์ธ์ฆ Key์˜ Key ID}:{API ์ธ์ฆ Key์˜ Scret Key}๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

  • API ์ธ์ฆํ‚ค๋Š” ๋งˆ์ดํŽ˜์ด์ง€ -> ๊ณ„์ • ๊ด€๋ฆฌ -> ์ธ์ฆํ‚ค ๊ด€๋ฆฌ ํƒญ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์žฅ์ 

  1. ์ด๋ฏธ์ง€ ๊ด€๋ฆฌ

  • Container Registry๋Š” ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์•™ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œ๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•ด์ง„๋‹ค.

  1. ํ†ตํ•ฉ๋œ CI/CD

  • Github Actions, Jenkins์™€ ๊ฐ™์€ ๋„๊ตฌ์™€ ํ†ตํ•ฉํ•˜์—ฌ CI/CD ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๊ฐ™์€ ์›Œํฌํ”Œ๋กœ์šฐ ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (์šฐ๋ฆฌํŒ€๋„ github actions๋กœ ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค.)

  1. ์šด์˜ ๊ฐ„์†Œํ™”

  • ์•„๋ฌด๋ž˜๋„ ์ œ์ผ ํฐ ๊ฐ•์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ž์ฒด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•  ํ•„์š” ์—†์ด ํด๋ผ์šฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ ์ด์šฉ๋งŒ ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žกํ•œ ์ž‘์—…์„ ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•ด์„œ, ๋งŒ์•ฝ Docker๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด Container Registry๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์ข‹๋‹ค. ๊ทธ๋Ÿผ ์ด๋ฏธ์ง€ ์ €์žฅ์ด๋‚˜ ๋ฐฐํฌ๊ฐ€ ๊ฐ„ํŽธํ•ด์ง€๊ณ  ๋ณด์•ˆ๊ณผ ๊ฐ™์€ ๋ถ€๋ถ„๋„ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ํŠนํžˆ CI/CD๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค๋ฉด ์•ˆ ์“ฐ๊ณ ๋Š” ๋ชป ๋ฐฐ๊ธด๋‹ค.

Object Storage

NCP๋ฅผ ์ ‘ํ•˜๊ธฐ ์ „, ๋จผ์ € AWS๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด ๋ฐ์ดํ„ฐ(์ด๋ฏธ์ง€, ํŒŒ์ผ,, etc)๋ฅผ ์ €์žฅํ•ด ๋ดค๋‹ค๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

NCP์˜ Object Storage๋„ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒด ๋‹จ์œ„๋กœ ์ €์žฅํ•˜๋Š” ๋Œ€์šฉ๋Ÿ‰ ์Šคํ† ๋ฆฌ์ง€๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ Container Registry๋„ ์—ฌ๊ธฐ์— ์ €์žฅํ•œ๋‹ค.

ํŠน์ง•

  1. ๋ฐ์ดํ„ฐ ์ €์žฅ:

  • ๋ฐ์ดํ„ฐ๋ฅผ GB ๋‹จ์œ„์—์„œ ์ตœ๋Œ€ PB(ํŽ˜ํ‹ฐ๋ฐ”์ดํŠธ) ๋‹จ์œ„๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋‹จ์ผ ํŒŒ์ผ ํฌ๊ธฐ๋Š” ์ตœ๋Œ€ 10TB๊นŒ์ง€ ์ง€์›ํ•œ๋‹ค.

  1. S3 ํ˜ธํ™˜ API ์ œ๊ณต

  • ์•„๋งˆ์กด S3์™€ ํ˜ธํ™˜๋˜๋Š” RESTful API๋ฅผ ์ œ๊ณตํ•ด์„œ, ๊ธฐ์กด S3 ๊ธฐ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (์‚ฌ์šฉ ์•ˆํ•ด๋ด„.)

  1. ๊ถŒํ•œ๊ณผ ์ ‘๊ทผ

  • ๋ฒ„ํ‚ท(์ €์žฅ์†Œ)๊ณผ ์˜ค๋ธŒ์ ํŠธ(ํŒŒ์ผ) ๋‹จ์œ„๋กœ ์„ธ๋ถ€์ ์ธ ๊ถŒํ•œ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๊ณต๊ฐœ/๋น„๊ณต๊ฐœ ์„ค์ •๋„ ์ง€์›ํ•œ๋‹ค.

  • ACL(Access Controll List)๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉ์ž๋ณ„๋กœ ์ ‘๊ทผ ๊ถŒํ•œ ๋ถ€์—ฌ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ด ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ง€์›ํ•˜๊ณ , HTTPS๋ฅผ ํ†ตํ•ด์„œ ๋†’์€ ์ˆ˜์ค€์˜ ๋ณด์•ˆ๋„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

์‚ฌ์šฉ๋ฒ•

์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค.

  1. ๋ฒ„ํ‚ท ์ƒ์„ฑ:

  • NCP์—์„œ Object Storage ์„œ๋น„์Šค๋ฅผ ํ™œ์„ฑํ™” ํ›„ ๋ฒ„ํ‚ท์„ ์ƒ์„ฑํ•œ๋‹ค.

  • ๋ฒ„ํ‚ท ์ด๋ฆ„์€ ๋ฆฌ์ „ ๋‚ด์—์„œ ์œ ์ผํ•ด์•ผ ํ•˜๊ณ  ์ƒ์„ฑ ํ›„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

  1. ํŒŒ์ผ ์—…๋กœ๋“œ/๋‹ค์šด๋กœ๋“œ

  • ์ตœ๋Œ€ 2GB ํŒŒ์ผ ์—…๋กœ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฉฐ API๋ฅผ ํ™œ์šฉํ•˜๋ฉด 5TB๊นŒ์ง€๋„ ๊ฐ€๋Šฅํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

  1. API ์—ฐ๋™

  • S3์™€ ํ˜ธํ™˜๋˜๋Š” API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ธ์ฆํ‚ค๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์•„์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์—ฐ๋™ํ•˜๋ฉด ๋œ๋‹ค.

์žฅ์ 

  1. ํ™•์žฅ์„ฑ

  • ์ €์žฅ ๊ณต๊ฐ„์„ ๋™์ ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•„์š”์— ๋”ฐ๋ผ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  1. ํšจ์œจ์„ฑ

  • ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, NCP์˜ ๋‹ค๋ฅธ ์„œ๋น„์Šค์™€ ์—ฐ๊ณ„ํ•ด์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • Data Life Cycle ๊ด€๋ฆฌ๋กœ, ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๋Š” ์•„์นด์ด๋ธŒ ์Šคํ† ๋ฆฌ์ง€๋กœ ์ด๋™ํ•ด์„œ ๋น„์šฉ ์ ˆ๊ฐ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ๋„ ์ €๋ ดํ•œ ๋น„์šฉ์œผ๋กœ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•ด ์šด์˜ ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

  1. ์„œ๋ฒ„ ๋ถ€ํ•˜ ๊ฐ์†Œ

  • ํŒŒ์ผ์„ ์™ธ๋ถ€ ์ €์žฅ์†Œ์— ์ง์ ‘ ์ „์†กํ•˜๋ฏ€๋กœ, ์„œ๋ฒ„์— ๊ฐ€ํ•ด์ง€๋Š” ๋ถ€ํ•˜๊ฐ€ ์ค„์–ด๋“ ๋‹ค. (๊ฐ€์žฅ ํฐ ์žฅ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.)

์žฅ์ ์„ ๋ชจ๋‘ ์ž‘์„ฑํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ด ์ •๋„๋งŒ ๋†“๊ณ  ๋ด๋„ ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

Server

์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•ด์•ผ ํ•  ์„œ๋ฒ„์ด๋‹ค. ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์ „, NCP๋Š” ๋‘ ๊ฐœ์˜ ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

Platform(Classic vs VPC)

  1. Classic ํ”Œ๋žซํผ

  • ๊ณต์œ  ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ CSP(Cloud Service Provider)๊ฐ€ ํ• ๋‹นํ•œ ์‚ฌ์„ค IP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์šด์˜๋œ๋‹ค.

  • ๋ฆฌ์ „ ๊ฐ„ ์‚ฌ์„ค ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•จ.

  • ๋„คํŠธ์›Œํฌ๋ฅผ ์„ธ๋ถ„ํ™”ํ•  ์ˆ˜ ์—†์–ด์„œ ์„ค์ •์ด ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

  • ACG(Access Control Group)์„ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š” ๋ฐ, ์„œ๋ฒ„ ์ƒ์„ฑ ์‹œ ACG๋ฅผ ์„ค์ •ํ•œ๋‹ค.

    • AWS๋ฅผ ์ด์šฉํ•ด ๋ดค๋‹ค๋ฉด ๋ณด์•ˆ ๊ทธ๋ฃน ์ •๋„๋กœ ์ดํ•ดํ•˜๋ฉด ๋  ๊ฒƒ๊ฐ™๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋„คํŠธ์›Œํฌ inbound ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. VPC ํ”Œ๋žซํผ

  • public/private subnet์œผ๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ์„ธ๋ถ„ํ™”ํ•ด์„œ ํ† ํด๋กœ์ง€ ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (์ด๋Ÿฐ ๋ฉด์—์„œ ๋ณด์•ˆ์ด ์ข€ ๋” ์šฐ์ˆ˜ํ•˜์ง€ ์•Š์„๊นŒ ํ•œ๋‹ค.)

  • ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „ VPC๋ฅผ ๋จผ์ € ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

VPC์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผ ๊ฐ๊ฐ์˜ ํ”Œ๋žซํผ์ด ์–ด๋–ค ํŠน์„ฑ์„ ๊ฐ€์ง€๋Š”์ง€ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ฒ ์ง€๋งŒ, VPC๊นŒ์ง€ ๋‹ค๋ฃฌ๋‹ค๋ฉด NCP ์†Œ๊ฐœ์™€ ์ข€ ๋ฉ€์–ด์ง€๋Š” ๋А๋‚Œ์ด ๋“ค์–ด์„œ ์ด ๋ถ€๋ถ„์€ ํŒจ์Šค ํ•œ๋‹ค... (๋‚˜๋„ ์ž˜ ๋ชจ๋ฅธ๋‹ค.)

๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ ํŒ€์€ VPC๋ฅผ ์„ ํƒํ–ˆ๋‹ค. ํŒ€์›๋“ค์ด ๋ชจ๋‘ ์šด์˜์„ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ์„๋ฟ๋”๋Ÿฌ ์‹ค ์‚ฌ์šฉ์ž๊ฐ€ ์œ ์น˜๋œ๋‹ค๋ฉด ๋ณด์•ˆ์— ๋ฏผ๊ฐํ•ด์•ผ ํ•  ํ…๋ฐ, ๊ทธ๋Ÿฌํ•œ ๋ถ€๋ถ„์„ ๊ณ ๋ คํ•ด ๋ณด๋ฉด ๋ณด์•ˆ์ด ๋” ์šฐ์ˆ˜ํ•œ VPC๋ฅผ ์ดˆ๊ธฐ์— ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์€ ๊ฒฐ์ •์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

1. VPC ์ƒ์„ฑ

์œ„์—์„œ ๋งํ–ˆ๋“ฏ, ์„œ๋ฒ„ ์ƒ์„ฑ ์‹œ VPC๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— VPC๋ฅผ ๋จผ์ € ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

  • Cloud Service -> VPC -> VPC Management์— ๋“ค์–ด๊ฐ€๋ฉด ์ƒ์„ฑํ•˜๊ธฐ ๋ฒ„ํŠผ์ด ๋ฐ”๋กœ ๋ณด์ธ๋‹ค.

VPC ์ด๋ฆ„, IP ์ฃผ์†Œ ๋ฒ”์œ„, ์œ ํ˜•์„ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค.

IP ๋ฒ”์œ„๋Š” ์‚ฌ์„ค IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋ณดํ†ต 0.0.0.0/20์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

์œ ํ˜•์€ NORMAL ๊ทธ๋Œ€๋กœ.

2. Subnet ์ƒ์„ฑ

์„œ๋ธŒ๋„ท์€ VPC ๋‚ด์—์„œ IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ ๋‚˜๋ˆ„์–ด ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋‹จ์œ„์ด๋‹ค.

ํฌ๊ฒŒ public/private subnet์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • public subnet: Internet Gateway๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ ํ•˜๋Š” ๋„คํŠธ์›Œํฌ

  • private subnet: ์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๊ณ  ๋‚ด๋ถ€ ํ†ต์‹ ์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋Š” ๋„คํŠธ์›Œํฌ

์šฐ๋ฆฌ๋Š” public/priavte ๊ฐ 1๊ฐœ์”ฉ ์„œ๋ธŒ๋„ท์„ ๊ตฌ์„ฑํ–ˆ๋‹ค. ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (2๊ฐœ ์ด์ƒ ๋งŒ๋“œ๋Š” ์ด์œ )

  • ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ํ˜น์€ ๋‚ด๋ถ€ ์‹œ์Šคํ…œ์€ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท์— ๋…ธ์ถœ๋˜์ง€ ์•Š๋„๋ก private subnet์— ๋ฐฐ์น˜ํ•˜์—ฌ ์™ธ๋ถ€ ์—ฐ๊ฒฐ์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. (๋ณด์•ˆ ๊ฐ•ํ™”)

  • ๊ฐœ๋ฐœ, ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์ด ๋”ฐ๋กœ ๊ตฌ์„ฑ๋  ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์„œ๋ธŒ๋„ท์— ๊ฐ๊ฐ ๋ฐฐ์น˜ํ•˜๋ฉด ํ™˜๊ฒฝ ๊ฐ„ ๊ฐ„์„ญ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๊ฐ€์šฉ ์˜์—ญ์ด ๋‹ค์šด๋˜๋”๋ผ๋„ ๋‹ค๋ฅธ ์˜์—ญ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

๊ทธ๋ž˜์„œ ์„œ๋ธŒ๋„ท ๊ตฌ์„ฑ ์‚ฌ๋ก€๋ฅผ ๋ณด๋ฉด

  1. public subnet: ์›น ์„œ๋ฒ„, API ๊ฒŒ์ดํŠธ์›จ์ด์™€ ๊ฐ™์ด ์™ธ๋ถ€์™€ ์ง์ ‘ ํ†ต์‹ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐ์น˜

  2. privagte subnet: DB ์„œ๋ฒ„๋‚˜ ๋‚ด๋ถ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ๋“ฑ ๋ฏผ๊ฐํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐ์น˜

์ด๋ ‡๊ฒŒ VPC์— ์„œ๋ธŒ๋„ท์„ 2๊ฐœ ์ด์ƒ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ณด์•ˆ, ๋„คํŠธ์›Œํฌ ํšจ์œจ์„ฑ ๋ฐ ๊ฐ€์šฉ์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ public/private subnet์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด best practice๋ผ๊ณ  ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ณ  ์œ ์—ฐํ•œ ์„ค๊ณ„๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

3. Network ACL

VPC๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ NACL(Network Access Control List)๋„ ๊ฐ™์ด ์ƒ์„ฑ๋œ๋‹ค.

ACL๋„ ์‚ด์ง ์ •๋ฆฌํ•˜๋ฉด...

  • Stateless ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์—์„œ ํ—ˆ์šฉ๋œ ํŠธ๋ž˜ํ”ฝ์ด๋ผ๋„ ์•„์›ƒ๋ฐ”์šด๋“œ ๊ทœ์น™์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ฐจ๋‹จํ•œ๋‹ค.

  • ํŠน์ • ์„œ๋ธŒ๋„ท์— ์ ์šฉ๋˜๋ฉฐ, ํ•ด๋‹น ์„œ๋ธŒ๋„ท์— ๋ฐฐํฌ๋œ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์— ์˜ํ–ฅ์„ ์ค€๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ธŒ๋„ท ๋‹จ์œ„๋กœ ๋ณด์•ˆ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ํŠน์ • IP ์ฃผ์†Œ, ํฌํŠธ์— ๋Œ€ํ•ด์„œ ํ—ˆ์šฉ(Allow) ๋˜๋Š” ๊ฑฐ๋ถ€(Deny) ๊ทœ์น™์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์–ผํ• ๋ณด๋ฉด ๋ณด์•ˆ ๊ทธ๋ฃน(Security Group)๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ์ฐจ์ด์ ์„ ๋ณด๋ฉด...

ํŠน์ง•

Network ACL

Security Group

์ ์šฉ ๋ฒ”์œ„

์„œ๋ธŒ๋„ท ์ˆ˜์ค€

์ธ์Šคํ„ด์Šค ์ˆ˜์ค€

๊ทœ์น™ ์œ ํ˜•

ํ—ˆ์šฉ ๋ฐ ๊ฑฐ๋ถ€ ๊ทœ์น™ ์ง€์›

ํ—ˆ์šฉ ๊ทœ์น™๋งŒ ์ง€์›

Stateful/Stateless

Stateless (์ƒํƒœ ๊ธฐ์–ต ์—†์Œ)

Stateful (์ƒํƒœ ๊ธฐ์–ต ์žˆ์Œ)

์šฐ์„ ์ˆœ์œ„

๋‚ฎ์€ ๋ฒˆํ˜ธ์˜ ๊ทœ์น™๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ํ‰๊ฐ€

๋ชจ๋“  ๊ทœ์น™์„ ๋™์‹œ์— ํ‰๊ฐ€

์‚ฌ์šฉ ๋ชฉ์ 

์„œ๋ธŒ๋„ท ์ „์ฒด์˜ ํŠธ๋ž˜ํ”ฝ ์ œ์–ด

๊ฐœ๋ณ„ ์ธ์Šคํ„ด์Šค์˜ ํŠธ๋ž˜ํ”ฝ ์ œ์–ด

๊ฒฐ๊ณผ์ ์œผ๋กœ NACL ์žฌ๊ตฌ์„ฑ์˜ ํ•„์š”์„ฑ์€ ๋А๋ผ์ง€ ๋ชปํ•ด์„œ default๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

ACL์„ subnet์— ์ ์šฉํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Subnet Management -> ์ƒ์„ฑ๋œ subnet ํด๋ฆญ -> Network ACL ๋ณ€๊ฒฝ ํด๋ฆญ

4. Server ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

https://www.ncloud.com/product/compute/server#pricingarrow-up-right

๋งํฌ๋Š” ์„œ๋ฒ„ ์ŠคํŽ™์— ๋งž๋Š” ๋น„์šฉ ์ •๋ณด์ด๋‹ค.

์šฐ๋ฆฌ๋Š” ์–ด๋“œ๋ฏผ, ์‚ฌ์šฉ์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ Elastic๋„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— s2-g3(vCPU 2EA, Memory 8GB)๋ฅผ ์„ ํƒํ–ˆ๋‹ค. (์ด๊ฒƒ๋„ ๋ถ€์กฑํ•œ ๋А๋‚Œ.)

์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์€ ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š๋‹ค. ์„œ๋ฒ„ ์ŠคํŽ™, ์ด์ „์— ์ƒ์„ฑํ•œ VPC, OS, Storage๋ฅผ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค.

Summary

์ด ์ •๋„ ์ •๋ณด๋งŒ ์•Œ์•„๋„ NCP์—์„œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ํฐ ์–ด๋ ค์›€์€ ์—†์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค.

์ตœ์ข… ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜

๋‚˜๋Š” ๋งค์šฐ ๊ฑฐ์ง€์ด๋‹ค.. ๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•˜๊ณ  ์šด์˜ํ•˜๋ ค๋ฉด ์ƒ๋‹นํ•œ ์ง€์ถœ์ด ๋ฐœ์ƒํ•  ํ…๋ฐ NCP์˜ ํ›„์›์œผ๋กœ ๊ตฌ์„ฑํ•ด ๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ๋“ค๋กœ ๋งˆ์Œ๊ป ๊ตฌ์„ฑํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์„œ๋ฒ„ ๊ตฌ์„ฑ์— ๋‚ ๊ฐœ๋ฅผ ๋‹ฌ์•„์ค€ NCP ํ›„์›์— ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌํ•จ์„ ๋А๋ผ๊ณ  ์žˆ๋‹ค.

Last updated