[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