๐คทโ๏ธ ๋ณธ๋ก ์ ์์
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ํ๊ฒฝ๋ณ์ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋๋ค.
ํ๋ก์ ํธ ์ฌ์ด์ฆ๊ฐ ์ปค์ง๋ฉด ๋์ฑ๋ ํ๊ฒฝ๋ณ์ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ๋ฒ ํ์๋น์ค๊น์ง ๊ฐ๋ฐ์ ์๋ฃํ๊ณ AWS Systems Manger ๊ธฐ๋ฅ์ธ Parameter Store๋ก ํ๊ฒฝ๋ณ์๋ฅผ ์ด๊ดํ๊ณ ํ๊ฒฝ๋ณ์ ๊ด๋ฆฌ๋ฅผ ์ค์ ์ง์คํํ๋ ๊ณผ์ ์ ์ ๋ฆฌํ ์๋ฆฌ์ฆ๋ก ๊ธ์ ์์ฑํ ์๊ฐ์ ๋๋ค.
๐คทโ๏ธ ํ๊ฒฝ๋ณ์ ์ค์ ์ง์คํ ํ๋ ์ด์
AWS Parameter Store ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ ์ ์? ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ๊ด๋ฆฌํ๊ณ ์ง์คํ๋ฅผ ๊ตฌ์ถํ๋ฉด ์ฐ๋ฆฌ์๊ฒ ์ฃผ๋ ํธ๋ฆฌํจ๊ณผ ํจ์จ์ฑ์ ์์๋ณด๊ฒ ์ต๋๋ค.
๊ธฐ์กด ํ๊ฒฝ๋ณ์ ์์ ๋ฐฉ์
Nest.js ํ๋ก์ ํธ์์. env ํ์ผ์ ํตํด์ ํ๊ฒฝ๋ณ์๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
ํ์ง๋ง ์ฌ๋ฌ ๋ช ์ ๊ฐ๋ฐ์๋ค์ด .env ํ์ผ์ ๊ด๋ฆฌํ๋ ํ์ผ์ ์ถ๊ฐ/์ญ์ /์์ ํ์ ๋ ๊ณ์ํด์ ๋ค๋ฅธ ๊ฐ๋ฐ์๋ค๊ณผ ๊ณต์ ํ๊ณ ์ต์ ํ ์ ๋ฐ์ดํธ๋ฅผ ํด์ค์ผ ํฉ๋๋ค.
์ด๋ฐ ์๊ฐ์ด ๋ค์ค ์๋ ์์ต๋๋ค.
๋งค๋ฒ ๊ณต์ ์ํ๊ณ .env ํ์ผ์ ์์ ๋๋ฉด ์ต์ ํํด ์ฃผ๋ฉด ๋๋ ๊ฑฐ ์๋์ผ?
๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค.
Parameter Store ํ์ฉํด์ ์๋ํ๋ฅผ ๊ตฌ์ถํ ์ ์๊ณ ๋ฒ๊ฑฐ๋ก์ด . env ํ์ผ์ ์ต์ ํํ๋ ์์ ์ ์ ํด์ ์์ฐ์ฑ์ ๋์ผ์ ์์ต๋๋ค.
Parameter Store ์์ ๋ฐฉ์
ํ๊ฒฝ๋ณ์๋ฅผ ์ค์์ง์คํ๋ฅผ ํตํด์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
.env ํ์ผ์ ๋งค๋ฒ ์ ๋ฐ์ดํธํ ํ์ ์์ด Parameter Store์์ ๊ณตํต๋ ํ๊ฒฝ๋ณ์๋ฅผ ํ์ฉํด์ ๋ณด์์ฑ, ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
AWS Parameter Store ๊ณต์๋ฌธ์
https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html
AWS Systems Manager Parameter Store - AWS Systems Manager
AWS Systems Manager Parameter Store Parameter Store, a capability of AWS Systems Manager, provides secure, hierarchical storage for configuration data management and secrets management. You can store data such as passwords, database strings, Amazon Machin
docs.aws.amazon.com
๐คทโ๏ธ AWS Parameter Store ๊ฐ๋
AWS Parameter Store๋ AWS Systems Manager์ ๊ธฐ๋ฅ ์ค ํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์๋ก ํ๋ ํ๊ฒฝ๋ณ์ ๊ฐ, ์ค์ ๊ฐ, ๋น๋ฐ ์ ๋ณด(์: API ํค, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น๋ฐ๋ฒํธ) ๋ฑ์ ์์ ํ๊ฒ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ์ค์ ์ ์ฅ์์ ๋๋ค.
๋งค๊ฐ ๋ณ์(Parameter)๋ผ๋ ํ์์ผ๋ก ์ ๋ณด๋ฅผ ์ ์ฅํ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๋ค๋ฅธ AWS ์๋น์ค์์ ์ด ์ ๋ณด๋ฅผ ์ฝ๊ฒ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.
Parameter Store ์ฃผ์ ์ฅ์ ์ค ํ๋๋ ๋ค๋ฅธ AWS ์๋น์ค์ ํตํฉ๋์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
EC2, ECS, Lambda, Elastic Beanstalk ์๋น์ค์ ํตํฉ๋์ด์ Parameter Store ์ ์ฅ๋ ํ๋ผ๋ฏธํฐ ๊ฐ๋ค์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
Parameter Store ์ฅ์
- ๋น๋ฐ ์ ๋ณด ๊ด๋ฆฌ: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น๋ฐ๋ฒํธ, API ํค, ์ค์ ๊ฐ ๋ฑ ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ๊ณ ์ ๊ทผ ์ ์ด๋ฅผ ํตํด ๋ณดํธํฉ๋๋ค.
- ์ค์ ๊ด๋ฆฌ: ๋ค์ํ ํ๊ฒฝ(์: ๊ฐ๋ฐ, ํ ์คํธ, ํ๋ก๋์ )์์ ์ฌ์ฉํ๋ ์ค์ ๊ฐ์ ์ค์์์ ๊ด๋ฆฌํ๊ณ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ์๋ํ ์ง์: AWS Lambda, EC2, ECS ๋ฑ ๋ค์ํ AWS ์๋น์ค์ ํตํฉํ์ฌ ์๋ํ๋ ํ๊ฒฝ ๊ตฌ์ฑ์ ์ง์ํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
- ๋ณด์: Parameter Store๋ AWS KMS(Key Management Service)์ ํตํฉ๋์ด ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ํธํํ์ฌ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด๋ก ์ธํด ๋ฐ์ดํฐ ์ ์ถ์ ๋ํ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค.
- ๋ฒ์ ๊ด๋ฆฌ: ๋งค๊ฐ ๋ณ์์ ๋ณ๊ฒฝ ๋ด์ญ์ ์๋์ผ๋ก ๊ธฐ๋กํ๋ฉฐ ํ์์ ํน์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ ์ ์์ต๋๋ค. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ๋ณต๊ตฌํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
- ๊ณ์ธต ๊ตฌ์กฐ: ๋งค๊ฐ ๋ณ์๋ฅผ ํด๋ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ์ฌ ๋ณต์กํ ์์คํ ์์๋ ๊น๋ํ๊ฒ ์ ๋ฆฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด /my-app/dev/db-password, /my-app/prod/db-password์ ๊ฐ์ด ํ๊ฒฝ๋ณ๋ก ๋งค๊ฐ ๋ณ์๋ฅผ ์กฐ์งํํ ์ ์์ต๋๋ค.
- IAM ๊ถํ ์ ์ด: Parameter Store์ ์ ์ฅ๋ ๋งค๊ฐ ๋ณ์๋ AWS Identity and Access Management(IAM) ์ ์ฑ ์ ํตํด ์ ๊ทผ์ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํน์ ์ฌ์ฉ์๋ ์๋น์ค๋ง ํน์ ๋งค๊ฐ ๋ณ์์ ์ ๊ทผํ ์ ์๋๋ก ์ ํํ ์ ์์ต๋๋ค.
๊ณ์ธต๊ตฌ์กฐ, ๋ฒ์ ๊ด๋ฆฌ ์ค์ ํ ๋๋ ํ์ or ๊ฐ์ด ์ผํ๋ ๊ฐ๋ฐ์๋ค๊ณผ ์ํต์ ํตํด์ ์ปจ๋ฒค์ ์ ๋ง์ถ๋ ๊ฒ์ด ์ค์ํ๋ฉฐ ๋์ค์ ์ปจ๋ฒค์ ์ ๋ฐ๋ฅด์ง ์์ผ๋ฉด. env ํ์ผ ๊ด๋ฆฌ๋ณด๋ค ๋ ๋ณต์กํด์ง ์๋ ์์ต๋๋ค.
๊ผญ ์ปจ๋ฒค์ ๊ณผ ๊ท์น์ ๋ฐ๋ผ์ Parameter Store๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค!
๐คทโ๏ธ ๋ง์ง๋ง์ผ๋ก
์ด๋ฒ ๊ธ์์๋ ํ๊ฒฝ๋ณ์๋ฅผ ์ค์์ง์คํ ํ๋ ์ด์ ์ AWS Parameter Store ๊ฐ๋ ๊ณผ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ํด์ ์์๋ดค์ต๋๋ค.
๋ค์ ๊ธ์๋ ์ค์ AWS Parameter Store ํ๋ผ๋ฏธํฐ ๊ฐ๋ค์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์ธํ ์์๋ณด๊ฒ ์ต๋๋ค.
์ฌ๋ฐ๋ ์ค๋์ ๋ ๋ณ ์ด์ธ ๋ณด๊ณ ๊ฐ์ธ์!
https://cometruedream.tistory.com/247
[React] Tailwind ํ์ค, ๋์ค, ์ธ์ค ํจ๊ณผ className ์ปค์คํ
๐คทโ๏ธ Tailwind ํ์ค, ๋์ค, ์ธ์ค ํจ๊ณผํ๋ก์ ํธ ์งํ์ค ๋ฐฐ๋ ๋งํฌ์ URL ๊ธธ์ด๊ฐ ๋๋ฌด ๊ธธ์ด์ 3์ค ํจ๊ณผ ์ฒ๋ฆฌ๋ฅผ ํด์ผ ํ์ต๋๋ค. React + Tailwind CSS ์ ํ ๋ ํ๋ก์ ํธ ์ฌ์ CSS ํ์ผ & style ํ๊ทธ๋ฅผ ์ฌ์ฉํ
cometruedream.tistory.com
https://cometruedream.tistory.com/243
NestJS Lifecycle (์๋ช ์ฃผ๊ธฐ) ๊ฐ๋
๐คทโ๏ธ ๋ณธ๋ก ์ ์์ Nest JS ๊ฐ๋ ?Nest JS๋ Node JS ๊ธฐ๋ฐ์ผ๋ก ํ ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ ์ ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋นํ ์ค๋ซ๋์ Express ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์ ์๋์ ์ธ ์
cometruedream.tistory.com
https://cometruedream.tistory.com/242
๋ฆฌ์กํธ Vite Proxy ํ์ฉํ CORS ์ค๋ฅ ํด๊ฒฐ
๐คทโ๏ธ ๋ณธ๋ก ์ ์์ํ๋ก ํธ์๋ ๋ฒ๋ค๋ฌ ๊ฐ๋ ๊ณผ webpack vs vite ๋น๊ต์ ๋ํด์ ๊ณต๋ถ๋ฅผ ํ๊ณ ๊ธ์ ๋ณด์๋ฉด ๋ ๋ง์ ๋์์ด ๋ฉ๋๋ค^^ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ํ ๋ฒ๋ค๋ฌ ๊ฐ๋ ๊ณผ webpack vs vite ๋น๊ตhttps://comet
cometruedream.tistory.com
https://cometruedream.tistory.com/241
React ํด๋๊ตฌ์กฐ FSD ๊ธฐ๋ฅ ๋ถํ ์ค๊ณ ์ํคํ ์ฒ
๐คทโ๏ธ ๋ณธ๋ก ์ ์์ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ์ ์์ ํด๋ ๊ตฌ์กฐ, ์ค๊ณ์ ๋ํ ์ํคํ ์ฒ๋ฅผ ๋ง๋๋ ๊ฒ์ ์๋นํ ์ด๋ ต๋ค. ์ด๋ฒ ํ๋ก์ ํธ์ React FSD ํด๋๊ตฌ์กฐ ์ํคํ ์ฒ๋ฅผ ์ค๊ณํ ์์ ์ด๋ผ์ FSD ์ํคํ
cometruedream.tistory.com
https://cometruedream.tistory.com/244
์ฝ๊ฒ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ Prisma ๋ช ๋ น์ด ์ ๋ฆฌ
๐คทโ๏ธ Prisma ๋ช ๋ น์ด ๋ณธ๋ก ์ ์์ Prisma๋?Nest JS ํ๋ ์์ํฌ์ Prisma ORM์ ํ์ฉํด์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ Prisma๋ Node JS ๊ธฐ๋ฐ์ ํ๋ ์์ํฌ/๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํธ์์ฉ์ด ์๋๋ฉฐ Prisma + DB ์ฐ๋์ผ
cometruedream.tistory.com
[๋์ปค ์ ๋ฌธ ์๋ฆฌ์ฆ] Dockerfile ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ
์ด ๊ธ์์๋ ์ ๋ฌธ์๋ฅผ ์ํ ๋์ปค ์๋ฆฌ์ฆ๋ก ๋์ปค ์ ๋ฌธ ์๋ฆฌ์ฆ - Dockerfile ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ์ ๋ํด์ ์๊ฐํฉ๋๋ค. ์๋ ํ์ธ์! ITibiza ์ ๋๋ค. ์ด์ ๊ธ์์ ๋์ปค ์ด๋ฏธ์ง, ์ปจํ ์ด๋์ ๊ฐ๋ ๊ณผ ๋์ปค
itibiza.tistory.com
'Nest.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[NestJS] AWS Parameter Store AWS-SDK ํ๋ก์ ํธ 3ํ (3) | 2024.09.06 |
---|---|
[NestJS] AWS Parameter Store ํ๋ก์ ํธ 2ํ (0) | 2024.09.05 |
NestJS Lifecycle (์๋ช ์ฃผ๊ธฐ) ๊ฐ๋ (1) | 2024.05.07 |
Nest.js - ํํ ์ค ์ข ํฉ์๋์ธ API ํ์ฑ (25) | 2023.05.15 |
Nest.js Middleware logger (15) | 2022.12.05 |