[AWS] System Manager: Parameter Store
์์คํ
์ ๋ง๋ค๊ณ ๋ฐฐํฌํ๋ค๋ณด๋ฉด, ์๊ทผํ ๋ถํธํ ๊ฒ ์ค ํ๋๊ฐ, ํจ์ค์๋, ๋น๋ฐํค ๊ฐ์ ๋น๋ฐ์ค๋ฐ ์ค์ ๊ฐ์ ์ง์ด๋ฃ๋ ๊ฒ์ด๋ค.
๋ณดํต ์ด๋ฐ๊ฑด .env ๊ฐ์ ํ๊ฒฝ๋ณ์ ํ์ผ์ ๋๊ณ ์ฌ์ฉํ ๊ฒฝ์ฐ๊ฐ ๋ง์๋ฐ, Parameter Store๋ ์ด๊ฑธ ์กฐ๊ธ ๋์ฒดํ๊ธฐ ์ํ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ ์ ์๋ค.
์ด๊ฑด ํค-๊ฐํํ๋ก ํ๋์ฉ ์ ์ญ์ ์ธ ๊ฐ์ ๋๊ณ ๋ฐํ์์ ํธ์ถํด ๊บผ๋ด์ค๋ ๋ฐฉ์์ ์ทจํ๋ค.
env์ ์ด ๋ฐฉ์ ๋ชจ๋ ๊ฐ์ ์ฅ๋จ์ด ์๋ ๊ฒ ๊ฐ๋ค.
๋น์ฉ
๋น์ฉ์ ๋ฐ๋ก ๋๊ฐ๋๊ฑด ์๋ค.
๊ณ ๊ธ ํ๋ผ๋ฏธํฐ์ ๊ฒฝ์ฐ๋ง ๋น์ฉ์ด ์ฝ๊ฐ ๋์จ๋ค.

์์ธํ ๊ฒ์ ํด๋น ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ๋ค.
https://aws.amazon.com/ko/systems-manager/pricing/?nc1=h_ls
ํ๋ผ๋ฏธํฐ ๋ง๋ค๊ธฐ
๋ง๋๋๊ฑด ์ฝ๋ค.
๊ทธ๋ฅ ์ด๋ฆ๊ณผ ๊ฐ์ ์ ์ง์ด์ฃผ๋ฉด ๋๋ค.

๊ทธ๋ผ ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ๊ฒ์ด๋ค.
๋ค๋ง ํ ์ด๊ฒ ๋ฆฌ์ ์ ๋ชฐ๋นต์ด ๋์ด์๋ ํํ๋ผ, ๋ฆฌ์ ์์ ์๋ ์์คํ
๋ค๋ผ๋ฆฌ ์ด๋ฆ์ด ๋ฏธ๋ฌํ๊ฒ ๊ฒน์น ์๋ ์๋ค.
๊ทธ๋ด ๊ฒฝ์ฐ์๋ ์ด๋ฆ์ ์ ๋์ฌ๋ฅผ ์๋ น๊ป ์ ๋ถ์ฌ์ ๊ด๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
๋ณดํต URL ํจํด์ ์ฌ์ฉํด์ /์์คํ ๋ช /PASSWORD ๊ฐ์ ์์ผ๋ก ๋ง์ด๋ค ์ด๋ค.
ํ๋ผ๋ฏธํฐ ์ฌ์ฉํ๊ธฐ
์ ์ ์ฅํ ๊ฐ์ ๊ฐ์ ธ์ค๋ ค๋ฉด aws sdk๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์๋๋ AWS Lambda Node.js์์ ํ๋ผ๋ฏธํฐ๊ฐ์ ๊ฐ์ ธ์ค๋ ์์ ์ฝ๋๋ค.
const aws = require('aws-sdk');
const ssm = new aws.SSM();
exports.handler = async (event) => {
const DATABASE_URL = await ssm.getParameter({
Name: 'DATABASE_URL',
}).promise();
console.log(`DATABASE_URL: ${DATABASE_URL.Parameter}`)
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
๊ทธ๋ผ ์ด๋ ๊ฒ ์ ๊ฐ์ ธ์ฌ ๊ฒ์ด๋ค.

์ฐธ์กฐ
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SSM.html#getParameter-property