ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
โœจ IaC: Deploying a Node Secrets Viewer with Terraform โœจ๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป
Dev.toDev.to
Infrastructure

Terraform๊ณผ AWS Secrets Manager๋กœ ๊ตฌํ˜„ํ•œ ๋ณด์•ˆ ์ธํ”„๋ผ ์ž๋™ํ™”

โœจ IaC: Deploying a Node Secrets Viewer with Terraform โœจ๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป

Laura2026๋…„ 4์›” 7์ผ10๋ถ„beginner

Context

EC2 ์ธ์Šคํ„ด์Šค ๋ฐฐํฌ ์‹œ .env ํŒŒ์ผ ๊ธฐ๋ฐ˜์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๊ด€๋ฆฌ ๋ฐฉ์‹ ์‚ฌ์šฉ. ๋ฏผ๊ฐ ์ •๋ณด ๋…ธ์ถœ ์œ„ํ—˜๊ณผ ์ˆ˜๋™ ์„ค์ •์œผ๋กœ ์ธํ•œ ๊ด€๋ฆฌ ํšจ์œจ์„ฑ ์ €ํ•˜ ๋ฌธ์ œ ๋ฐœ์ƒ.

Technical Solution

  • AWS Secrets Manager๋ฅผ ๋„์ž…ํ•˜์—ฌ API ํ‚ค์™€ DB ์ž๊ฒฉ ์ฆ๋ช… ๋“ฑ ๋ฏผ๊ฐ ์ •๋ณด๋ฅผ ์ค‘์•™ ์ง‘์ค‘์‹์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ
  • Terraform์„ ์ด์šฉํ•ด EC2, IAM Role, Security Group์„ ์ฝ”๋“œ๋กœ ์ •์˜ํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” IaC ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•
  • AWS SDK๋ฅผ Node.js ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ†ตํ•ฉํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์— ํ•„์š”ํ•œ ์‹œํฌ๋ฆฟ ์ •๋ณด๋ฅผ ๋™์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋กœ์ง ๊ตฌํ˜„
  • IAM Instance Profile์„ ํ†ตํ•ด EC2 ์ธ์Šคํ„ด์Šค์— Secrets Manager ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ์ตœ์†Œ ๊ถŒํ•œ ์›์น™ ์ ์šฉ
  • Terraform ์„ค์ • ํŒŒ์ผ์„ data, output, provider, resource ๋“ฑ์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ชจ๋“ˆํ™”์™€ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ธ ํŒŒ์ผ ๊ตฌ์กฐ ์„ค๊ณ„
  • userdata.sh ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ™œ์šฉํ•ด ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์น˜ ๋ฐ ์‹คํ–‰ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•œ ํ”„๋กœ๋น„์ €๋‹ ๋ฐฉ์‹

Key Takeaway

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์™€ ์ธํ”„๋ผ ์„ค์ •์„ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•˜๊ณ  ์™ธ๋ถ€ ์‹œํฌ๋ฆฟ ๊ด€๋ฆฌ ์„œ๋น„์Šค๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ณด์•ˆ์„ฑ๊ณผ ๋ฐฐํฌ ์žฌํ˜„์„ฑ์„ ๋™์‹œ์— ํ™•๋ณดํ•˜๋Š” ์„ค๊ณ„ ์ „๋žต.


๋ฏผ๊ฐ ์ •๋ณด ๊ด€๋ฆฌ ์‹œ .env ํŒŒ์ผ์„ ๋ฐฐ์ œํ•˜๊ณ  AWS Secrets Manager์™€ IAM Role์„ ์กฐํ•ฉํ•œ ๋™์  ์ฐธ์กฐ ๊ตฌ์กฐ๋ฅผ ์ ์šฉํ•  ๊ฒƒ

์›๋ฌธ ์ฝ๊ธฐ