๐คทโ๏ธ ๋ณธ๋ก ์ ์์
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ํ๊ฒฝ๋ณ์ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋๋ค.
ํ๋ก์ ํธ ์ฌ์ด์ฆ๊ฐ ์ปค์ง๋ฉด ๋์ฑ๋ ํ๊ฒฝ๋ณ์ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ๋ฒ ํ์๋น์ค๊น์ง ๊ฐ๋ฐ์ ์๋ฃํ๊ณ 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 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
https://cometruedream.tistory.com/243
https://cometruedream.tistory.com/242
https://cometruedream.tistory.com/241
https://cometruedream.tistory.com/244
'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 |