
설정값을 안전하게 저장하고 관리하는 서비스
- 버전 관리: 변경 이력 자동 기록
- IAM 권한 제어: 누가 읽을 수 있는지 세밀하게 제어
- 재부팅 무관: AWS에서 관리하므로 서버 재부팅과 무관
- 무료
$0.4/월이름, 유형, 값으로 구성
/{앱이름}/{환경}/{키},로 구분된 문자열 리스트application-prod.properties에 있는 파라미터를 Parameter Store에 등록
spring.datasource.url=${DB_URL} spring.datasource.username=${DB_USERNAME} spring.datasource.password=${DB_PASSWORD}
/{app이름}/prod/DB_HOST: String, DB 엔드포인트/{app이름}/prod/DB_PORT: String, 3306 (mysql 포트)/{app이름}/prod/DB_NAME: String, 데이터베이스명/{app이름}/prod/DB_USERNAME: String, 사용자명/{app이름}/prod/DB_PASSWORD: String, 비밀번호
의존성 추가
implementation 'io.awspring.cloud:spring-cloud-aws-starter-parameter-store:4.0.0-RC1'
application-prod.properties 설정
spring.config.import=aws-parameterstore:/camp-health-app/prod/
spring.datasource.url=jdbc:mysql://${DB_HOST}:${DB_PORT}/${DB_NAME}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}
EC2가 AWS Parameter Store 서비스에 접근하려면 IAM 권한(Role)이 필요
IAM 정책 예시
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetParameter",
"ssm:GetParameters",
"ssm:GetParametersByPath"
],
"Resource": "arn:aws:ssm:ap-northeast-2:*:parameter/app/*"
}
]
}
EC2 Role에 정책 연결