๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๐Ÿง‘๐Ÿป‍๐Ÿ’ป Develop/DevOps2

Terraform Backend ์—์„œ PoLP ์‹คํ˜„: ๋กœ๊ทธ ๋ถ„์„์œผ๋กœ ํ•„์š”ํ•œ ๊ถŒํ•œ๋งŒ ์ ์šฉํ•˜๊ธฐ Terraform ์œผ๋กœ AWS Backend(S3 + DynamoDB)๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ, ๋ฌด์‹ฌ์ฝ” AmazonS3FullAccess ๊ฐ™์€ managed policy ๋ฅผ ๋ถ™์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” PoLP(์ตœ์†Œ ๊ถŒํ•œ ์›์น™) ์— ์œ„๋ฐฐ๋œ๋‹ค. ์‹ค์ œ ํ•„์š”ํ•œ ๊ถŒํ•œ๋งŒ ์•Œ์•„๋‚ด ์ •ํ™•ํžˆ ๋ถ€์—ฌํ•˜๋Š” ๊ฒŒ ๋ณด์•ˆ์ƒ ์ ์ ˆํ•˜๋‹ค.์ด ๊ธ€์—์„  Terraform apply ๋กœ๊ทธ๋ฅผ ๋ถ„์„ํ•ด ์–ด๋–ค API๊ฐ€ ํ˜ธ์ถœ๋๋Š”์ง€ ์ถ”์ถœํ•˜๊ณ , ๊ทธ๊ฑธ ๋ฐ”ํƒ•์œผ๋กœ ์ •์ œ๋œ IAM Policy ๋ฅผ ๊ตฌ์„ฑํ•œ ๊ณผ์ •์„ ๊ณต์œ ํ•œ๋‹ค. Terraform Debug log ๋กœ API ์‚ฌ์šฉ ๋‚ด์—ญ ์ถ”์ถœํ•˜๊ธฐ๋จผ์ € ๋””๋ฒ„๊ทธ ๋กœ๊ทธ๋ฅผ ์ผœ์„œ, Terraform apply ์‹คํ–‰ ์‹œ, ์–ด๋–ค AWS API ๊ฐ€ ํ˜ธ์ถœ๋˜๋Š”์ง€ ๊ธฐ๋กํ•œ๋‹ค.$ export TF_LOG=DEBUG$ export TF_LOG_PATH=... 2025. 5. 8.
์‚ฌ๋‚ด ํˆด ํ”„๋กœ์ ํŠธ์— CI ๋„์ž…ํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋„์ž…ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐ ํ˜„์žฌ ๋‚˜๋Š” ๋ถ€๋™์‚ฐ ์ •๋ณด๋ฅผ ๊ฒŒ์‹œ ์›น ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๋Š” ๋ถ€์„œ์—์„œ ๊ทผ๋ฌดํ•˜๊ณ  ์žˆ๋‹ค. ๊ณผ๊ฑฐ๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€ ์ง‘์ ๋œ ์ˆ˜์—†์ด ๋งŽ์€ ๋ถ€๋™์‚ฐ ์ •๋ณด๋ฅผ ๊ฒŒ์‹œํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ถ€๋™์‚ฐ ํšŒ์‚ฌ๋‚˜ ๊ฑด๋ฌผ ๊ด€๋ฆฌ ํšŒ์‚ฌ ๋“ฑ์œผ๋กœ๋ถ€ํ„ฐ ์ •๋ณด ์ˆ˜์ • ์š”์ฒญ์ด ๋‹ค์–‘ํ•˜๊ฒŒ ๋“ค์–ด์˜จ๋‹ค. ์ด๋Ÿฌํ•œ ์ •๋ณด ์ˆ˜์ • ์š”์ฒญ๋“ค์€ ๊ณ ๊ฐ ๋Œ€์‘ ๋ถ€์„œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋‚ด ํˆด์— ์ ‘์ˆ˜๋˜๋Š”๋ฐ, ์ด ์‚ฌ๋‚ด ํˆด ํ”„๋กœ์ ํŠธ๋ฅผ ์šด์˜ํ•˜๊ณ  ์œ ์ง€ ๋ณด์ˆ˜ํ•˜๋Š” ๊ฒƒ๋„ ๋‹น์—ฐํžˆ ๋‚ด๊ฐ€ ์†Œ์†๋œ ๋ถ€์„œ์—์„œ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค. ์ผ๋ถ€ ์†Œ์ˆ˜ ์œ ์ €๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋‚ด ํˆด์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ์†Œ์Šค ์ฝ”๋“œ ๋ณ€๊ฒฝ๋„ ์ž์ฃผ ์—†๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ์ ํŠธ์— Linter Check ๋‚˜ Unit test, ์ž๋™ ๋ฐฐํฌ ๋“ฑ์€ ์ „ํ˜€ ๋„์ž…๋˜์–ด ์žˆ์ง€ ์•Š์•˜๋‹ค. ํ•˜์ง€๋งŒ, ์žฅ๊ธฐ์ ์ธ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์˜ ํ–ฅ์ƒ์„ ์œ„ํ•ด CI/CD ๋„์ž…์ด ํ•„์š”.. 2022. 9. 10.
๋ฐ˜์‘ํ˜•