AWS Systems Manager Parameter Store
Parameter Store를 사용하면 단순한 구성 데이터를 대규모로 안전하게 저장, 구성 및 검색할 수 있습니다. 여러 환경에서의 구성 관리를 간소화하도록 설계되어 있으므로, 팀이 값을 코드에 하드코딩하거나 분산된 저장 솔루션에 의존하지 않고도 애플리케이션이 중요한 데이터에 액세스하는 방식을 표준화할 수 있습니다.
Parameter Store는 단순한 저장 기능을 넘어, 버전 관리, AWS Identity and Access Management(IAM)를 통한 액세스 제어, Amazon EC2, Lambda, AWS과 같은 다른 CloudFormation 서비스와의 원활한 통합 기능을 제공합니다. 이를 통해 코드 변경이나 재배포 없이 동적으로 구성을 업데이트할 수 있어 운영 민첩성을 높이고 위험을 줄일 수 있습니다. 계층적 이름 지정, 파라미터 정책, 변경 추적과 같은 기능을 통해 Parameter Store는 팀이 일관성을 유지하고, 거버넌스를 적용하며, 더 안전하고 유지 관리가 용이한 시스템을 구축하도록 지원합니다.
Parameter Store는 String, StringList 및 SecureString 파라미터 유형을 지원합니다. String 및 StringList 파라미터 값은 일반 텍스트로 저장됩니다. SecureString 파라미터는 AWS Key Management Service를 사용하여 값을 암호화하므로, 교체 또는 기타 고급 보안 암호 수명 주기 기능이 필요하지 않은 가벼운 암호화 구성 값에 실용적으로 선택할 수 있습니다. 파라미터 유형에 대한 자세한 내용은 파라미터 유형 이해 섹션을 참조하세요.
참고
자동 교체, 교차 계정 액세스 또는 세분화된 감사 로깅이 필요한 자격 증명을 관리하는 경우 AWS Secrets Manager 사용을 권장합니다. Secrets Manager는 데이터베이스 자격 증명, API 키 및 지원되는 타사 소프트웨어 공급 보안 암호와 같은 보안 암호를 관리하도록 특별히 설계되었습니다. 자세한 내용은 AWS Secrets Manager 사용 설명서의 AWS Secrets Manager이란?을 참조하세요.
다음은 Parameter Store에 저장하고 관리할 수 있는 구성 데이터 유형의 예입니다.
데이터베이스 연결 문자열(자동 교체되지 않음) – jdbc:mysql://host:3306/appdb
애플리케이션 환경 변수 – ENV=프로덕션, LOG_LEVEL=디버그
서비스 엔드포인트 URL – 내부 마이크로서비스 엔드포인트 또는 타사 기본 URL
리소스 식별자 – S3 버킷 이름, DynamoDB 테이블 이름, ARN
애플리케이션 튜닝 파라미터 – 캐시 TTL, 배치 크기, 폴링 간격
참고
다음 유형의 구성 데이터에는 Parameter Store 사용을 권장하지 않습니다.
기능 플래그
시간 초과와 같은 운영 제어 설정
허용 목록 및 차단 목록
회로 차단기
동적 구성
이러한 유형의 구성 데이터에는 AWS AppConfig를 사용합니다. 자세한 내용은 AWS AppConfig란 무엇인가요?를 참조하세요.
Parameter Store 기능
Parameter Store에는 파라미터 관리를 위한 다음 기능이 포함되어 있습니다.
-
다른 계정과 파라미터 공유
단일 AWS 계정 계정에 구성 데이터를 중앙 집중화하고, 액세스가 필요한 다른 계정과 파라미터를 공유할 수 있습니다. 자세한 내용은 Parameter Store에서 공유 파라미터로 작업 섹션을 참조하세요.
-
OS 패치 적용
Amazon EC2에서는 AMI(AMI) ID를 코드에 하드코딩하는 대신 파라미터를 참조하여 새 인스턴스의 운영 체제를 지정할 수 있습니다. 이 접근 방식을 사용하면 인스턴스가 최신 패치 및 업데이트가 적용된 이미지를 자동으로 사용할 수 있습니다. AWS와 운영 체제 공급업체는 현재 AMI 버전을 추적하는 퍼블릭 파라미터를 제공하므로 수동으로 업데이트를 관리할 필요가 없습니다. 또한 자체 파라미터를 정의하여 중앙에서 관리되는 골든 AMI를 참조할 수 있으므로 조직 전체에서 일관되고 승인된 구성을 더 쉽게 적용할 수 있습니다.
-
다른 AWS 서비스에서 액세스 가능
다른 AWS 서비스에서는 파라미터 값을 쉽게 참조할 수 있습니다. 여기 몇 가지 예가 있습니다:
-
Lambda 함수는 Parameters and Secrets Lambda Extension을 사용하여 파라미터와 보안 암호를 검색할 수 있습니다.
-
Amazon Elastic Container Service 및 AWS Fargate에서는 Parameter Store에서 중앙 관리되는 값을 사용하는 환경 변수를 주입할 수 있습니다.
-
AWS CloudFormation 템플릿에서는 파라미터 값을 참조할 수 있습니다.
-
AWS AppConfig에서는 파라미터를 참조하는 구성 프로필을 생성할 수 있으므로 점진적 롤아웃, 경보 기반 롤백, 기본 제공 데이터 검증과 같은 기능을 사용해 구성 변경 사항을 안전하게 배포할 수 있습니다.
-
AWS CodeBuild에서는 빌드 시점에 Parameter Store에서 동적으로 값을 검색하는 환경 변수를 정의할 수 있습니다.
-
-
파라미터 기록
Parameter Store는 각 파라미터의 최신 100개 버전을 보관하므로 운영 문제를 조사할 때 이전 값을 빠르게 검토하고 복원할 수 있습니다.
-
이벤트 및 알림
파라미터 변경 이벤트를 구독하여 Parameter Store에서 워크플로를 자동화합니다. 또한 변경 이벤트를 사용해 만료 정책을 적용하고, 지정된 기간 내에 파라미터가 교체되지 않은 경우 알림을 받을 수 있습니다.
-
계층 구조로 파라미터 구성
파라미터 계층 구조를 사용하여 관련 파라미터를 그룹화하면 여러 환경과 애플리케이션에서 파라미터를 더 쉽게 검색, 관리 및 필터링할 수 있습니다.
파라미터 티어
Parameter Store는 비용, 규모 및 성능에 영향을 미치는 여러 파라미터 티어를 제공합니다. 표준 파라미터 티어(기본 티어) 또는 고급 파라미터 티어에서 사용하도록 파라미터를 개별적으로 구성할 수 있습니다.
다음 사용:
표준 파라미터: 대부분의 구성 데이터 및 소규모 워크로드용
고급 파라미터: 더 높은 한도, 더 큰 값 또는 파라미터 정책이 필요한 경우
중요
파라미터를 표준에서 고급으로 업그레이드할 수는 있지만, 다시 다운그레이드할 수는 없습니다.
다음 표에서는 여러 파라미터 피터의 차이점을 설명합니다.
| 기능 | 표준 | Advanced |
|---|---|---|
|
최대 파라미터 수 (AWS 계정 및 AWS 리전당) |
10,000개 |
100,000건 |
|
최대 값 크기 |
4KB |
8KB |
|
파라미터 정책 |
지원되지 않음 |
지원됨 자세한 내용은 Parameter Store에서 파라미터 정책 할당 섹션을 참조하세요. |
|
AWS 계정 간 파라미터 공유 |
지원되지 않음 |
지원됨 자세한 내용은 Parameter Store에서 공유 파라미터로 작업 섹션을 참조하세요. |
|
비용 |
추가 요금 없음 |
요금 적용 자세한 내용은 Parameter Store에 대한 AWS Systems Manager 요금 |
파라미터 계층 및 해당 기능에 대한 자세한 내용은 티어 관리 섹션을 참조하세요.
Parameter Store 할당량 및 제한의 전체 목록은 AWS 일반 참조의 AWS Systems Manager endpoints and quotas를 참조하세요.
성능 및 처리량
Parameter Store는 소규모 워크로드에 적합한 기본 처리량을 제공합니다. 더 높은 요청 속도가 필요한 애플리케이션의 경우 더 높은 처리량을 활성화할 수 있습니다.
기본 처리량은 일반적인 구성 검색 패턴에 충분합니다.
고처리량 모드는 대규모 또는 지연 시간에 민감한 애플리케이션을 위해 훨씬 더 높은 요청 속도를 지원합니다.
더 높은 처리량을 활성화하면 추가 요금이 부과됩니다.
애플리케이션이 파라미터를 자주 또는 대규모로 검색하는 경우 스로틀링을 방지하기 위해 처리량 설정을 초기에 검토합니다. 고처리량 활성화에 대한 자세한 내용은 Parameter Store 처리량 변경 섹션을 참조하세요.
파라미터 검색 방법
AWS Management Console, AWS CLI 또는 AWS SDK를 사용하여 다음 API 작업을 호출해 Parameter Store에서 파라미터를 검색할 수 있습니다.
AWS CLI: 다음 표에는 Parameter Store용 AWS CLI 명령 예제가 포함되어 있습니다.
| 명령 | 용도 | 최적의 용도 |
|---|---|---|
|
get-parameter |
aws ssm get-parameter --name " |
특정 파라미터 값 하나를 가져오는 경우. |
|
get-parameter |
aws ssm get-parameter --name " |
|
|
get-parameters |
aws ssm get-parameters --names " |
서로 관련 없는 특정 파라미터를 한 번에 최대 10개까지 가져오는 경우. |
|
get-parameters-by-path |
aws ssm get-parameters-by-path --path " |
전체 환경의 구성을 대량으로 가져오는 경우. |
|
get-parameter-history |
aws ssm get-parameter-history --name " |
값이 시간에 따라 어떻게 변경되었는지 확인하는 경우. |
SDK(예: Python용 Boto3): 애플리케이션 코드 내에서 get_parameter() 또는 get_parameters_by_path()와 같은 메서드를 사용하여 런타임에 값을 가져옵니다.
CDK 및 CloudFormation:
AWS CDK: 합성 또는 배포 중에 값을 읽기 위해
valueForStringParameter또는valueFromLookup를 사용합니다.CloudFormation:
{{resolve:ssm:parameter-name:version}}과 같은 동적 참조를 사용하여 값을 템플릿에 직접 주입합니다.
참고
대부분의 동적 파라미터 참조에서는 다음 규칙을 사용하여 파라미터 이름을 지정합니다.
{{ssm:}}parameter-name
Parameter Store을 시작하려면 Parameter Store 설정 섹션을 참조하세요.