Too Early To Stop
Main
About
Portfolio
Blog
Light
Thumbnail Image
AWS ์ดˆ์งœ์˜ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์šด์˜ ์ค‘์ธ ์„œ๋น„์Šค ์ธํ”„๋ผ ๊ตฌ์กฐ ๊ฐœ์„  ๊ฒฝํ—˜๊ธฐ 1ํŽธ
#Infrastructure
#AWS
2023๋…„ 10์›” 15์ผ

AWS์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๋˜ ๋•Œ ๊ตฌ์ถ•ํ•œ ์ธํ”„๋ผ

์ฒ˜์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋‹น์‹œ์—๋Š” AWS์— ๋Œ€ํ•ด ์ž˜ ์•Œ์ง€ ๋ชปํ•˜๋˜ ์ƒํƒœ์˜€์ง€๋งŒ, ๊ทธ๋•Œ๋Š” ๋‹คํ–‰ํžˆ ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ์žก์•„์ฃผ์‹  ์‹œ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋ถ„์ด ์žˆ์œผ์…จ๋˜ ๋•Œ๋ผ ์ €๋Š” ์ฃผ๋กœ ๋ฐฑ์—”๋“œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•˜๊ณ , AWS๋Š” ์–ด๊นจ๋„ˆ๋จธ๋กœ๋งŒ ๋ฐฐ์šฐ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์ธํ”„๋ผ๋ฅผ ํ•œ ๋ฒˆ ๋” ๊ตฌ์ถ•ํ•ด์•ผ ํ•˜๋Š” ์ผ์ด ์ƒ๊ฒผ๋Š”๋ฐ, ์ œ๋Œ€๋กœ ๋œ ์ง€์‹๋„ ์—†๋Š” ์ƒํƒœ์—์„œ ์ง„ํ–‰ํ•˜๋Š” ๊ฑฐ๋ผ ์ •๋ง ๋งจ๋•…์˜ ํ—ค๋”ฉ์„ ํ•˜๋ฉฐ AWS๋ฅผ ๋ฐฐ์›Œ ๋‚˜๊ฐ€์•ผ ํ•˜๋Š” ์ฒ˜์ง€์— ๋†“์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡์ง€๋งŒ ๊ฒฐ๊ตญ ์ €๋Š” AWS์— ๋Œ€ํ•ด ์•„๋Š” ๊ฒŒ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ์ „์— ๊ณ„์…จ๋˜ ๋ถ„๊ป˜์„œ ๊ตฌ์ถ•ํ–ˆ๋˜ ๊ตฌ์กฐ๋ฅผ ๊ฑฐ์˜ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ๋ฐฐ์šฐ๋Š” ์ˆ˜๋ฐ–์— ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๊ทธ๋ ‡๊ฒŒ ๋”ฐ๋ผ๋งŒ ํ•˜๋‹ค ๋ณด๋‹ˆ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์›์ธ์„ ์ฐพ์ง€ ๋ชปํ•˜๊ณ , ๋˜‘๊ฐ™์ด ๋”ฐ๋ผ ํ•œ ๊ฒƒ ๊ฐ™์€๋ฐ ๋‚˜์ค‘์— ๋ณด๋ฉด ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์ ธ ์žˆ์–ด ์ง€์šฐ๊ณ  ๋‹ค์‹œ ๋งŒ๋“œ๋Š” ๊ฑธ ์ˆ˜์—†์ด ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๊ณ„์†๋œ ์•ผ๊ทผ๊ณผ ๋ฐค์ƒ˜์„ ์ด์–ด ๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๊ณ„์†๋œ ๋ฐ˜๋ณต ์ž‘์—… ๋ฐ ํ•™์Šต์„ ์ด์–ด๊ฐ€๋ฉฐ ๊ฒฐ๊ตญ ์ธํ”„๋ผ ๊ตฌ์ถ•์€ ์–ด์ฐŒ์ €์ฐŒํ•ด์„œ ๋งˆ๋ฌด๋ฆฌํ•˜๊ธด ํ–ˆ๋Š”๋ฐ, ๊ทธ๋•Œ์—๋Š” ๋ชฐ๋ž์ง€๋งŒ, ๊ทธ ๋‹น์‹œ ๊ตฌ์ถ•ํ–ˆ๋˜ ๊ตฌ์กฐ๋Š” ์•ˆ์ •์„ฑ, ๋ณด์•ˆ์„ฑ, ํšจ์œจ์„ฑ ๋“ฑ ์—ฌ๋Ÿฌ ์ธก๋ฉด์—์„œ ์ข‹์ง€ ์•Š์€ ๊ตฌ์กฐ์˜€์Šต๋‹ˆ๋‹ค.

๊ธ‰ํ•œ ๋Œ€๋กœ ์ธํ”„๋ผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  AWS์— ๋Œ€ํ•ด ๋‹ค์‹œ ๊ณต๋ถ€ํ•ด์„œ ์ œ๋Œ€๋กœ ๋œ ๊ตฌ์กฐ๋ฅผ ์žก์ž ์ƒ๊ฐํ•˜๊ณ  ํ•œ๋™์•ˆ AWS์— ๋น ์ ธ์žˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ๊ตฌ์กฐ๋ฅผ ๋ณด๋‹ˆ ์กฐ๊ธˆ์”ฉ ๋ฌธ์ œ์ ์ด ๋ณด์ด๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์šด์˜ ์ค‘์ธ ์„œ๋น„์Šค์˜ ์ธํ”„๋ผ ๊ฐœ์„ ์„ ์‹œ์ž‘ํ–ˆ๊ณ , ์ œ ์ง€์‹๊ณผ ๊ฒฝํ—˜์„ ์ƒ๊ฐํ•ด ๋ดค์„ ๋•Œ ์ถฉ๋ถ„ํžˆ ์„ฑ๊ณต์ ์ธ ๊ฐœ์„ ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊นŠ์€ ์ง€์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํŽธ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธํ”„๋ผ ์ „๋ฌธ๊ฐ€๋ถ„๋“ค์ด ๋ณด์‹œ๊ธฐ์— ๊ฐœ์„ ์•ˆ์—๋„ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋ณด์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ํ•ด๋‹น ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋Š” ๋”ฐ๋”ํ•˜๊ฒŒ ์ถฉ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๋‹น์‹œ ๊ตฌ์ถ•ํ–ˆ๋˜ ์ธํ”„๋ผ ๊ตฌ์กฐ ๋ฐ ๋ฌธ์ œ์ 

์•„๋ž˜ ์‚ฌ์ง„์€ AWS๋ฅผ ์ž˜ ๋ชจ๋ฅด๋˜ ๋•Œ์˜ ์ œ๊ฐ€ ๊ตฌ์ถ•ํ–ˆ๋˜ ์ธํ”„๋ผ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

์ง€๊ธˆ ์™€์„œ ๋ณด๋ฉด ์™œ ์ด๋ ‡๊ฒŒ ํ–ˆ๋Š”์ง€ ์ƒ๊ฐ์ด ๋“ค์—ˆ์–ด์„œ ์‚ฌ์ง„์„ ์˜ฌ๋ฆฌ๊ธฐ์— ์ •๋ง ๋ฏผ๋งํ–ˆ์ง€๋งŒ, ์ €์™€ ๋น„์Šทํ•œ ์ƒํ™ฉ์— ๋†“์ธ ๋ถ„๋“ค์„ ์œ„ํ•ด ๊ตฌ์กฐ๋„๋ฅผ ์ฒจ๋ถ€ํ–ˆ์Šต๋‹ˆ๋‹ค.


./aws-infrastructure-improvement-experience-1-1.png


์•„๋งˆ ์กฐ๊ธˆ์ด๋ผ๋„ AWS์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•ด๋ณธ ๋ถ„์ด๋ผ๋ฉด ์ถฉ๋ถ„ํžˆ ์–ด๋””๊ฐ€ ๋ฌธ์ œ์ธ์ง€ ๊ธˆ๋ฐฉ ํŒŒ์•…ํ•˜์‹ค ๊ฑฐ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” AWS์— ๋Œ€ํ•ด ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ  ๋‚˜์„œ ์ƒ๊ฐํ•œ ํ•ด๋‹น ์ธํ”„๋ผ ๊ตฌ์กฐ์˜ ๋ฌธ์ œ์ ์ž…๋‹ˆ๋‹ค.

์œ„์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์œผ๋กœ ํ™•์ธ๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ๋„ ์—ฌ๋Ÿฟ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ชจ๋“  EC2 ์ธ์Šคํ„ด์Šค ๋ฐ RDS, ElastiCache ๋ฆฌ์†Œ์Šค๊ฐ€ ์ „๋ถ€ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท์— ์œ„์น˜ํ•ด ์žˆ์–ด ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.
  2. ํ•ด๋‹น ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์ด๋ฏธ์ง€ ๋˜๋Š” ์˜์ƒ์„ S3์— ์ €์žฅํ•ด์„œ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋ณ„๋„์˜ ๋„๋ฉ”์ธ ์—†์ด S3 ํผ๋ธ”๋ฆญ ๋งํฌ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.
  3. RDS ์ธ์Šคํ„ด์Šค ๋ฐ ์ฝ๊ธฐ ์ „์šฉ ๋ณต์ œ๋ณธ์ด ์ „๋ถ€ ๋™์ผํ•œ ๊ฐ€์šฉ ์˜์—ญ์— ์กด์žฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๊ฐ€์šฉ ์˜์—ญ์— ์žฅ์• ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด ๊ฐ€์šฉ์„ฑ ์ธก๋ฉด์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.
  4. ๋ณด์•ˆ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ดํ•ด๋„๊ฐ€ ๋‚ฎ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž„์‹œ๋กœ ๋ชจ๋“  ์ธ๋ฐ”์šด๋“œ/์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•ด Access Key์™€ ๊ฐ™์€ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํƒˆ์ทจ๋˜๋ฉด ์–ด๋””์„œ๋“  ๋ฐฑ์—”๋“œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  5. EC2 ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ชจ๋‘ ๊ตฌ๋ฒ„์ „์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์š”๊ธˆ์ด ๋” ๋งŽ์ด ๋ฐœ์ƒํ–ˆ๊ณ , ์ธ์Šคํ„ด์Šค๊ฐ€ ์ฃฝ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„ ๊ทธ๋•Œ๋งˆ๋‹ค 5xx๋ฒˆ ์—๋Ÿฌ์œจ์ด ํฌ๊ฒŒ ๋†’์•„์กŒ๋‹ค.
  6. IAM์— ๋Œ€ํ•œ ์ดํ•ด๋„๊ฐ€ ๋‚ฎ์•˜๊ธฐ ๋•Œ๋ฌธ์— AWS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด ์‚ฌ์šฉํ–ˆ๋‹ค.

๊ทธ ์™ธ์—๋„ ์ž์„ธํ•˜๊ฒŒ ์‚ดํŽด๋ณด๋ฉด ๋ฏธ์ฒ˜ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•œ ์—ฌ๋Ÿฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์•„์ง๊นŒ์ง€ ์ง€์‹์˜ ์ˆ˜์ค€์ด ๊นŠ์ง€ ์•Š์•„ ์ฐพ์ง€ ๋ชปํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ธํ”„๋ผ ๊ตฌ์กฐ ๊ฐœ์„  ๋ฐฉ์•ˆ

๊ทธ๋ ‡๊ฒŒ ๋ฌธ์ œ์ ์„ ์ •๋ฆฌํ•˜๊ณ  ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์„์ง€ ์ƒ๊ฐํ•ด ๋ดค์Šต๋‹ˆ๋‹ค.

์ •๋ง ๋‹ค์–‘ํ•œ ํฌ์ŠคํŠธ๋ฅผ ์ฐพ๊ณ , ๊ฐ•์˜๋ฅผ ์ฐธ๊ณ ํ–ˆ์œผ๋ฉฐ, ์ธํ”„๋ผ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์ด ์žˆ๋Š” ์—ฌ๋Ÿฌ ์ง€์ธํ•œํ…Œ๋„ ์กฐ์–ธ์„ ์–ป์€ ๊ฒฐ๊ณผ, ์ €๋Š” ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฐœ์„ ์•ˆ์„ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


./aws-infrastructure-improvement-experience-1-2.png


์ด๋ฒˆ์— ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•˜๋ฉด์„œ ์„œ๋น„์Šค ์šด์˜ ์ค‘์— ๊ฒช๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด DynamoDB๋ฅผ ์ถ”๊ฐ€๋กœ ๋„์ž…ํ–ˆ๋Š”๋ฐ, ์ด์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š๊ณ  ์˜จ์ „ํžˆ ๊ตฌ์กฐ ๊ฐœ์„ ์— ํฌ์ปค์Šค๋ฅผ ๋งž์ถ”๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์ €๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๊ธฐ์กด ๊ตฌ์กฐ์—์„œ ๊ฒช์€ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

  1. ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๊ฐ€ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท์— ์žˆ์–ด ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ
    • ์™ธ๋ถ€์—์„œ ์ ‘๊ทผํ•˜๋ฉด ์•ˆ ๋˜๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋“ค์€ ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท์œผ๋กœ ์ด๋™
    • ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท์—์„œ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท์— NAT Gateway ์ถ”๊ฐ€
    • ๊ฐœ๋ฐœ์ž๋“ค์ด ํ”„๋ผ์ด๋น— ์„œ๋ธŒ๋„ท์˜ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด Bastion Host๋ฅผ ํผ๋ธ”๋ฆญ ์„œ๋ธŒ๋„ท์— ๊ตฌ์ถ•
  2. S3 ํผ๋ธ”๋ฆญ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ
    • ์•ž๋‹จ์— Cloudfront๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ , S3์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ๋„๋ฉ”์ธ ์„ค์ •
    • Cloudfront ์บ์‹œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋” ๋นจ๋ฆฌ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ๋„ ์ถ”๊ฐ€๋จ
    • S3๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Load Balancer ์•ž๋‹จ์—๋„ Cloudfront๋ฅผ ์—ฐ๊ฒฐํ•ด ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ๋น„์šฉ ์ ˆ๊ฐ
  3. RDS ์ธ์Šคํ„ด์Šค๋“ค์ด ๋ชจ๋‘ ํ•œ ๊ฐ€์šฉ ์˜์—ญ์— ์žˆ์–ด ๊ฐ€์šฉ์„ฑ ์ธก๋ฉด์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ
    • ๋ฉ”์ธ RDS ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„๋‹Œ Multi-AZ ์ธ์Šคํ„ด์Šค๋กœ ์ „ํ™˜
    • ์ฝ๊ธฐ ์ „์šฉ ๋ณต์ œ๋ณธ์„ ์—ฌ๋Ÿฌ ๊ฐ€์šฉ ์˜์—ญ์— ๊ณ ๋ฅด๊ฒŒ ๋ฐฐ์น˜
  4. ๋ณด์•ˆ ๊ทธ๋ฃน์ด ๋Š์Šจํ•ด ๋ณด์•ˆ์„ฑ ์ธก๋ฉด์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ
    • ๊ทœ์น™์ด ๋Š์Šจํ•œ ๋ณด์•ˆ ๊ทธ๋ฃน์„ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๊ฐ ๋ฆฌ์†Œ์Šค๋ณ„๋กœ ๋ณด์•ˆ ๊ทธ๋ฃน์„ ์ƒ์„ฑ
    • ๋ฆฌ์†Œ์Šค๋ณ„๋กœ ๋ณด์•ˆ ๊ทธ๋ฃน์˜ ์ธ๋ฐ”์šด๋“œ/์•„์›ƒ๋ฐ”์šด๋“œ ํŠธ๋ž˜ํ”ฝ์„ ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ๋ฆฌ์†Œ์Šค์— ๋งž๊ฒŒ ๊ฐ•ํ•˜๊ฒŒ ์กฐ์ •
    • Bastion Host์˜ ๊ฒฝ์šฐ์—๋Š” ํŠน์ • IP๋งŒ ํ—ˆ์šฉํ•ด ์ง€์ •๋œ ๋„คํŠธ์›Œํฌ๊ฐ€ ์•„๋‹ˆ๋ฉด ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •
  5. ECS ์œ„์—์„œ ๋Œ์•„๊ฐ€๋Š” EC2๊ฐ€ ๊ตฌ๋ฒ„์ „์ด๊ณ , ์ž์ฃผ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹ค์šด๋จ
    • ์šฉ๋Ÿ‰ ๊ณต๊ธ‰์ž๋ฅผ ๊ธฐ์กด EC2์—์„œ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์—”์ง„์ธ Fargate๋กœ ์ „ํ™˜
    • Fargate๋กœ ์ „ํ™˜ํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์ด์ ์ด ์ƒ๊ฒผ๋Š”๋ฐ, ๊ทธ ์ด์ ์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ ๋‹ค๋ฃฐ ์˜ˆ์ •
  6. IAM ์‚ฌ์šฉ์ž ๋ชจ๋‘ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ์‚ฌ์šฉ
    • ๋ชจ๋“  ๊ณ„์ •์˜ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์„ ์ œ๊ฑฐํ•˜๊ณ  ํ•„์š”ํ•œ ๊ถŒํ•œ๋งŒ ์„ค์ •
    • MFA๋ฅผ ์„ค์ •ํ•ด ๋ณด์•ˆ์„ฑ ๊ฐ•ํ™”

์ด๋กœ์จ ์›๋ž˜๋Š” ๊ธฐ์กด ๊ตฌ์กฐ๋กœ ์šด์˜ํ•˜๋ฉด์„œ ๋ณด์•ˆ์„ฑ, ๊ฐ€์šฉ์„ฑ, ์•ˆ์ •์„ฑ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„์—์„œ ๋ถˆ์•ˆํ•œ ๋งˆ์Œ์ด ์ปธ์ง€๋งŒ, ์ง€๊ธˆ์€ ๊ฝค ๊ทธ๋Ÿฐ ๊ฑฑ์ •์ด ํ•ด์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜, ์ด๋ฒˆ ๊ธฐํšŒ์— AWS๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ทธ๋™์•ˆ ์›๋ฆฌ๋ฅผ ์•Œ์ง€ ๋ชปํ•ด ๊ทธ๋ƒฅ ๋”ฐ๋ผ๋งŒ ํ•˜๋˜ ๊ฒƒ๋“ค, ์ •ํ™•ํ•˜๊ฒŒ ์–ด๋””์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ๋‹ค์–‘ํ•œ ๊ธฐ์—…์€ ์–ด๋–ป๊ฒŒ ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ์žก๊ณ  ์žˆ๋Š”์ง€ ๋“ฑ์— ๋Œ€ํ•ด ์•Ž์˜ ์ •๋„๊ฐ€ ์ปค์กŒ์„๋ฟ๋”๋Ÿฌ ์ธํ”„๋ผ ๋ถ„์•ผ์— ๊ด€์‹ฌ์„ ๊ฐ€์ง€๊ฒŒ ๋œ ๊ณ„๊ธฐ๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ณผ์ •์€ ๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๊ณ , ํ•ด๋‹น ํฌ์ŠคํŠธ์—์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ๊ฐ„๋žตํ•˜๊ฒŒ ์†Œ๊ฐœ๋งŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์œ„์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์•„์ง ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์ด๋‚˜ ์ถ”๊ฐ€๋กœ ๋” ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์€ ์ ์ด ๋งŽ์•„ ๊ทธ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์•„์ง ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ

์ด๋ ‡๊ฒŒ ๊ตฌ์กฐ๋ฅผ ์™„์ „ํžˆ ๋ฐ”๊พธ๋ฉด์„œ ๊ธฐ์กด์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋˜ ๋ถ€๋ถ„์„ ๋งŽ์ด ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ๋ชปํ•œ ์ฑ„๋กœ ๋‚จ์•„์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์—ฌ๋Ÿฟ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„์ง ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ ์ค‘์—์„œ ๊ฐ€์žฅ ๋จผ์ € ๋– ์˜ค๋ฅด๋Š” ๊ฒƒ์€ IAM ๊ด€๋ จ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์œ„์˜ ์ธํ”„๋ผ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ํ˜„์žฌ ์ €ํฌ๋Š” SQS, SNS, DynamoDB, Lambda, Redis ๋“ฑ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ์„ ์œ„ํ•ด์„œ๋Š” ์„œ๋น„์Šค๋ณ„๋กœ IAM Role์„ ๋งŒ๋“ค์–ด ์ ์šฉํ•ด ์ค˜์•ผ ํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ์— ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ IAM ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด ๊ฐœ๋ณ„์ ์œผ๋กœ ์ •์ฑ…์„ ์„ค์ •ํ–ˆ์ง€๋งŒ, ๊ฐ ์„œ๋น„์Šค์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ง ์ œ๋Œ€๋กœ ๋œ IAM Role ์„ค์ •์ด ์•ˆ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๊ธฐ๋ณธ์ ์œผ๋กœ AWS ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ƒ์„ฑ๋˜๋Š” Role์— ๋Œ€ํ•ด์„œ๋Š” ์–ด๋Š ์ •๋„ ์ ์ ˆํ•œ ์ •์ฑ… ์„ค์ •์ด ๋˜์–ด์žˆ์ง€๋งŒ, ๊ทธ๋ ‡์ง€ ์•Š์€ Role๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๊ฐœ์„ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ๋Š” ๊ณ„์ • ๊ด€๋ จ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ €ํฌ๋Š” ๊ฐœ๋ฐœ ์„œ๋ฒ„์™€ ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ณด์•ˆ์„ ์œ„ํ•ด์„œ๋Š” ๊ฐœ๋ฐœ ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ๊ณ„์ •๊ณผ ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ๊ณ„์ •์„ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๋‹ค์Œ์€ ์ค‘์š”ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๊ณ„์† ๊ฐœ์„  ๊ณ„ํš์„ ์ƒ๊ฐํ•ด ์™”๋˜ RDS ๊ด€๋ จ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ง€๊ธˆ์€ ์“ฐ๊ธฐ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” RDS ๋งˆ์Šคํ„ฐ ์ธ์Šคํ„ด์Šค์— ์ฝ๊ธฐ ์ „์šฉ ๋ณต์ œ๋ณธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์žฅ์€ ์ด๋ ‡๊ฒŒ ๊ตฌ์„ฑํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†์ง€๋งŒ, ์˜ˆ์ „์— ํ•œ ๋ฒˆ ํŠธ๋ž˜ํ”ฝ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ์—ˆ๋Š”๋ฐ, ๊ทธ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํŠธ๋ž˜ํ”ฝ์ด ๋ชฐ๋ ค ๊ธ‰ํ•˜๊ฒŒ ์ฝ๊ธฐ ์ „์šฉ ๋ณต์ œ๋ณธ์„ ์ƒ์„ฑํ•ด ํŠธ๋ž˜ํ”ฝ ์ฆ๊ฐ€์— ๋Œ€์‘ํ–ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์•ž์œผ๋กœ๋„ ์ด๋ ‡๊ฒŒ ํŠธ๋ž˜ํ”ฝ์ด ๊ฐ‘์ž๊ธฐ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ๊ฐ„์ด ๋˜ ์˜ฌ ๊ฒƒ์ด ๋ถ„๋ช…ํ•œ๋ฐ, ๋งค๋ฒˆ ์ฝ๊ธฐ ์ „์šฉ ๋ณต์ œ๋ณธ์„ ์ถ”๊ฐ€๋กœ ์ƒ์„ฑํ•ด์„œ ๋Œ€์‘ํ•˜๊ธฐ์—๋Š” ๊ฝค ์˜ค๋ž˜ ๊ฑธ๋ ค ๊ฒฐ๊ตญ ๋‹ค์šดํƒ€์ž„์˜ ์ฆ๊ฐ€๋กœ ์ด์–ด์ง€๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์˜คํ†  ์Šค์ผ€์ผ๋ง๊ณผ ํด๋ผ์šฐ๋“œ์— ์ตœ์ ํ™”๋˜์–ด ๋” ๋†’์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” Aurora ์ธ์Šคํ„ด์Šค๋กœ ๊ฐœ์„ ์„ ํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ, ๊ธฐ์กด RDS ์ธ์Šคํ„ด์Šค์™€ ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ดํ•ด์™€ Failover ๋Œ€์‘๊ณผ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์„ ํŒŒ์•…ํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ธฐ์— ๋” ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ฐพ์•„๋ณด๊ณ  ๊ฐœ์„ ์„ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์€ ์ 

์ด๋ ‡๊ฒŒ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ์ฒ˜๋Ÿผ ์ด๋ฒˆ์— ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด์„œ ์ถ”๊ฐ€๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์•„์ง ํ•ด๋‹น ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ดํ•ด๋„๊ฐ€ ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€์ ์ธ ํ•™์Šต์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋กœ ์ธํ•ด ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ๋„ ์žˆ์ง€๋งŒ, ๊ทธ ์™ธ์—๋„ ๋ถ€๊ฐ€์ ์œผ๋กœ ์ธํ”„๋ผ๋ฅผ ์šด์˜ํ•˜๋Š” ๋ฐ ์žˆ์–ด ์ ์šฉํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์€ ์ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋กœ ๊ฐœ์„ ํ•˜๊ณ  ์‹ถ์€ ์ ์€ ์œ„์—์„œ ์ž‘์„ฑํ•œ ์•„์ง ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•œ ๋ฌธ์ œ ์ค‘์—์„œ ๊ฐœ๋ฐœ ์„œ๋ฒ„์™€ ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋ฌธ์ œ์—์„œ ํŒŒ์ƒ๋˜๋Š” ๋ถ€๋ถ„์ธ๋ฐ, ๋ฐ”๋กœ ์ฝ”๋“œ๋ฅผ ํ†ตํ•œ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์†Œํ”„ํŠธ์›จ์–ด ์ค‘ ํ•˜๋‚˜์ธ Terraform์ž…๋‹ˆ๋‹ค.

์ €ํฌ ์„œ๋น„์Šค์—์„œ๋Š” ์—ฌ๋Ÿฌ AWS ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ฐœ๋ฐœ ์„œ๋ฒ„์™€ ํ”„๋กœ๋•์…˜ ์„œ๋ฒ„๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์šด์˜ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 2๊ฐœ์˜ ๋™์ผํ•œ ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ ์ธํ”„๋ผ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ธ๋ ฅ์ด ์—†๋Š” ์ƒํ™ฉ์ด์–ด์„œ ํ˜„์žฌ๋Š” ์ œ๊ฐ€ ๋งก์•„์„œ ๋‹ด๋‹นํ•˜๋Š”์ง€๋ผ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ์ฐพ์€ ๋ฐฉ๋ฒ•์ด Infrastructure as Code(IaC) ๋„๊ตฌ ์ค‘ ํ•˜๋‚˜์ธ Terraform์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Terraform์€ HashiCorp ์‚ฌ๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ์–ธ์–ด์ธ HCL(HashiCorp Configuration Language)๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๊ฒฐ๊ตญ Terraform์„ ๋„์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด HCL ์–ธ์–ด์— ๋Œ€ํ•œ ํ•™์Šต์ด ๋ถˆ๊ฐ€ํ”ผํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” Terraform์„ ์‚ฌ์šฉํ•ด EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•˜๋Š” ์˜ˆ์‹œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

๋ฌผ๋ก  ๋”ฑ ํ•˜๋‚˜์˜ EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•œ ๊ฑฐ์˜ ์ตœ์†Œํ•œ์˜ ์„ค์ •๋งŒ ํ•ด๋†จ์ง€๋งŒ, ๋น„๊ต์  ์‰ฝ๊ฒŒ ์ธํ”„๋ผ ๊ตฌ์„ฑ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

provider "aws" {
  region  = "us-west-2"
}

resource "aws_instance" "app_server" {
  ami           = "ami-830c94e3"
  instance_type = "t2.micro"

  tags = {
    Name = "ExampleAppServerInstance"
  }
}

ํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ Terraform์„ ๋„์ž…ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ถ”๊ฐ€์ ์ธ ํ•™์Šต์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๋„์ž…์€ ํฌ๋ง ์‚ฌํ•ญ์œผ๋กœ๋งŒ ๋‚จ๊ฒจ๋†“์•˜์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ 2023๋…„๋„ ์ธํ”„์ฝ˜ ๋ฐœํ‘œ๋ฅผ ๋ณด๊ณ  ์žˆ๋Š”๋ฐ ํ˜„์žฌ ์ธํ”„๋žฉ์˜ CTO๋ฅผ ๋งก๊ณ  ๊ณ„์‹  ์ด๋™์šฑ ๋‹˜์˜ ์ธํ”„๋Ÿฐ ์•„ํ‚คํ…์ฒ˜ 2023~2024 ๋ฐœํ‘œ๋ฅผ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์›๋ž˜ ์ธํ”„๋žฉ์—์„œ ์ธํ”„๋ผ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ Terraform์„ ์‚ฌ์šฉํ–ˆ์—ˆ๊ณ , ์‹ค์ œ๋กœ ์ž‘๋…„๋„ ์ธํ”„์ฝ˜ ๋ฐœํ‘œ์—์„œ๋„ Terraform ๋„์ž…์— ๋Œ€ํ•œ ์–˜๊ธฐ๋ฅผ ๋ณด๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”, ํ•˜์ง€๋งŒ 1๋…„ ๋งŒ์— IaC ๋„๊ตฌ์ธ Pulumi์— TypeScript๋ฅผ ํ™œ์šฉํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ „ํ™˜ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


./aws-infrastructure-improvement-experience-1-3.png


ํ•ด๋‹น ๋ฐœํ‘œ์—์„œ ๋‚˜์˜จ ์žฅ์ ์œผ๋กœ๋Š” ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ์–ธ์–ด๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์„ ์–ธํ˜•์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— IDE์˜ ๋„์›€์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด ๋†’์€ ํ’ˆ์งˆ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ถ”์ƒํ™”๋œ ์„ค๊ณ„ ๋ฐ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ๋‚˜์™€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

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

๊ธ€์„ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ

์ฒ˜์Œ ์ธํ”„๋ผ ์„ค์ •์„ ์œ„ํ•ด ์˜ˆ์ „์— ๊ตฌ์ถ•ํ•ด ๋†“์€ ๊ตฌ์กฐ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด์„œ ์—ด์‹ฌํžˆ ๋”ฐ๋ผ ํ•˜๋Š” ์ˆ˜๋ฐ–์— ์—†์–ด์„œ ๊ณ„์†ํ•œ ์•ผ๊ทผ ์†์—์„œ ๊ฝค ๊ณ ์ƒํ–ˆ์—ˆ๋Š”๋ฐ, ์ด์ œ๋Š” AWS ๊ณต๋ถ€๋ฅผ ๋ณ‘ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์˜ˆ์ „์— ๋น„ํ•ด ๋งŽ์ด ๋ฐœ์ „ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ธ€์„ ์“ฐ๋Š” ์ง€๊ธˆ์—์„œ๋„ ์•„์ง AWS์— ๊ด€ํ•œ ์ง€์‹์ด๋‚˜ ํ•™์Šต๋Ÿ‰์ด ๊ทธ๋ฆฌ ๋งŽ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์•„ ์ž˜๋ชป๋œ ์ •๋ณด๋ฅผ ์ ์—ˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ๊ณผ๊ฑฐ ์ธํ”„๋ผ ๊ตฌ์กฐ์™€ ํ˜„์žฌ ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ๋น„๊ตํ•˜๊ณ , ๊ธฐ์กด์— ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ , ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ์ž‘์„ฑํ–ˆ์ง€๋งŒ ์ด๋ฒˆ์— ์ธํ”„๋ผ ๊ตฌ์กฐ ๊ฐœ์„ ๊ธฐ๋ฅผ ๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€๋กœ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋” ์ฐพ์•„๋ดค๋Š”๋ฐ, ๊ทธ๋ž˜๋„ ํ‹€๋ฆฐ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์–ด์„œ ์ง€์ ํ•ด ์ฃผ์‹œ๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŠธ์—์„œ๋Š” ์‹ค์ œ๋กœ ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ณผ์ •์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ณด์—ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.


์ถœ์ฒ˜

  1. HashiCorp - Build AWS Infrastructure with Terraform

    https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-build

  2. ์ธํ”„๋Ÿฐ - ์ธํ”„์ฝ˜ 2023

    https://inf.run/piKX

Prev
Redis Sorted Set์„ ํ™œ์šฉํ•œ ๋žญํ‚น ์‹œ์Šคํ…œ ๊ฐœ๋ฐœํ•˜๊ธฐ
Next
AWS RDS ์ฝ๊ธฐ ๋ณต์ œ๋ณธ์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ ๊ฒฝํ—˜๊ธฐ
Developer Hyun
โ“’ Copyright