AWS

AWS Parameter Store 개념, 가이드

TedDev 2025. 6. 4. 18:55
728x90

Parameter Store란?

AWS Parameter Store는 애플리케이션 설정과 비밀 정보를 안전하게 저장하고 관리할 수 있는 완전 관리형 서비스입니다. 하드코딩된 설정 값 대신 중앙에서 관리되는 매개변수를 런타임에 가져와 사용할 수 있습니다.

 

주요 특징

계층적 구조

/myapp/dev/database/host
/myapp/prod/database/host

데이터 타입

  • String : 일반 텍스트
  • StringList : 쉼표로 구분된 목록
  • SecureString : KMS 암호화된 민감 정보

핵심 장점

  • KMS 암호화로 보안성 확보
  • IAM을 통한 세밀한 권한 제어
  • CloudFormation, Lambda 등과 완벽 통합

 

실사용 예제

CLI로 매개변수 관리

# 매개변수 생성
aws ssm put-parameter \
    --name "/myapp/dev/db-host" \
    --value "dev-db.example.com" \
    --type "String"

# 암호화된 매개변수 생성
aws ssm put-parameter \
    --name "/myapp/dev/db-password" \
    --value "mySecret123" \
    --type "SecureString"

# 매개변수 조회
aws ssm get-parameter --name "/myapp/dev/db-host"
aws ssm get-parameter --name "/myapp/dev/db-password" --with-decryption

Python에서 활용

import boto3

def get_parameter(name, decrypt=False):
    ssm = boto3.client('ssm')
    response = ssm.get_parameter(Name=name, WithDecryption=decrypt)
    return response['Parameter']['Value']

# 사용 예제
db_host = get_parameter('/myapp/prod/db-host')
db_password = get_parameter('/myapp/prod/db-password', decrypt=True)

Lambda에서 설정 로드

import boto3
import os

def lambda_handler(event, context):
    # 환경별 설정 로드
    env = os.environ.get('ENV', 'dev')
    config = load_config(f'/myapp/{env}')
    
    # 비즈니스 로직 수행
    return process_request(event, config)

def load_config(path):
    ssm = boto3.client('ssm')
    config = {}
    
    paginator = ssm.get_paginator('get_parameters_by_path')
    for page in paginator.paginate(Path=path, Recursive=True, WithDecryption=True):
        for param in page['Parameters']:
            key = param['Name'].split('/')[-1]
            config[key] = param['Value']
    
    return config

 

Parameter Store vs Secrets Manager

기능 Parameter Store Secrets Manager
용도 일반 설정 관리 민감 정보 전용
자동 로테이션 X O
가격 저렴 (Standard 무료) 비쌈
크기 제한 4KB/8KB  

 

 

Parameter Store는 애플리케이션 설정 관리의 모든 요구사항을 만족하는 강력한 도구입니다. 적절한 네이밍 컨벤션과 보안 정책만 수립한다면 안전하고 효율적인 설정 관리 체계를 구축할 수 있습니다.

반응형