개요 현재 서비스의 VPC는 4개의 퍼블릭 서브넷으로 이루어져 있고, RDS 또한 퍼블릭 서브넷에 위치되어있습니다. VPC를 새로 생성해서 퍼블릭 서브넷과 프라이빗 서브넷을 나누어 인스턴스는 퍼블릭, RDS는 프라이빗으로 관리할 수 있도록 마이그레이션 작업을 진행하려고합니다. VPC 생성 큰 서비스를 운영하는 것이 아니기에 172.16.0.0 ~ 172.31.255.255의 클래스 B 대역을 사용하겠습니다. 보안 그룹 생성 EC2는 인터넷 게이트웨이를 통해 퍼블릭으로 접근을 하기 때문에 인바운드 규칙 편집에 들어가서 HTTP(80), HTTPS(443), SSH(22)를 열어줍니다. RDS는 EC2를 통해 접근할 수 있도록 EC2의 보안 그룹을 소스에 적용합니다. (EC2 내부망을 통한 RDS 접근)..
개요 AWS SDK for Java 2 마이그레이션을 진행하면서 AWS S3에 이미지를 업로드 이후, 객체 URL을 접근할 때 뷰어로 열리지 않고 다운로드가 되는 문제가 생겼습니다. 이 문제는 Content-Type이 잘못 설정되어 S3 객체의 메타데이터가 제대로 반영되지 않을 때 발생하는데, 저의 경우에는 Content-Type이 "application/octet-stream"으로 저장되고 사용자 정의 메타데이터(x-amz-meta-content-type)가 "image/png" 형태로 저장되어 문제가 발생했습니다.AWS SDK for Java 2를 사용한 업로드시 메타 데이터 설정(Content-Type) 주의점 안내와 함께 문제를 해결한 경험을 공유하고자 합니다. [트러블 슈팅] 시스템 정의 메타..
개요 프레쉬투유 프로젝트에서 S3 설정을 진행하는 도중 "The AWS SDK for Java 1.x entered maintenance mode starting July 31, 2024 and will reach end of support on December 31, 2025"라는 메시지가 발생했습니다. 이 문제를 해결한 경험을 공유하고자 합니다. The AWS SDK for Java 1.x is in maintenance mode, effective July 31, 2024 프레쉬투유 프로젝트에서 com.amazonaws:aws-java-sdk:1.12.772 버전을 사용하여 S3 설정을 진행하는 도중 아래와 같은 이슈가 발생했습니다. "The AWS SDK for Java 1.x entered ma..
개요 프로젝트의 키, 토큰 등 보안이 중요한 민감한 설정 정보나 비밀 키를 관리하기 위해 AWS Parameter Store를 도입했습니다.Parameter Store를 도입한 경험을 공유하고자 합니다. Spring Cloud AWS 프로젝트는 Spring Boot 3.3.x 버전으로 spring-cloud-aws에서 권장 Spring Boot 버전에 작성되어 있지 않지만, 임의로 Spring Cloud AWS 3.1.x 버전을 사용했습니다. Create parameter AWS Systems Manager의 Parameter Store에 접속해서 "Create parameter"를 진행합니다.파라미터는 {prefix}/{name}{profileSeparator}{profile}/parameter.k..
개요 AWS Key Management Service (KMS)는 AWS에서 제공하는 완전 관리형 암호화 키 관리 서비스로, 사용자는 암호화 키를 생성하고 암복호화를 통해 데이터를 관리합니다. Customer Master Key (CMK)는 KMS에서 사용되는 주요 암호화 키로, 데이터 암호화 및 복호화에 사용되며, 사용자가 직접 관리하는 고객 마스터 키(CMK) 외에도, AWS 관리 키(AWS Managed Key)와 AWS KMS가 자동으로 생성하는 및 관리하는 서비스 전용 키(Service-specific key) 등 방법이 존재합니다. KMSUtilsAWS KMS를 사용하여 데이터를 암호화하고 복호화하는 유틸리티 클래스를 작성해보겠습니다.encrypt 메서드와 decrypt 메서드를 가진 Km..