rgw
[My-Storage 개선하기] Ceph에 파일 저장하기
이전에 간단하게 ceph 클러스터를 구성했으니 spring 서버를 통해 파일을 업로드해 보자.build.gradleimplementation platform('software.amazon.awssdk:bom:2.20.56')implementation 'software.amazon.awssdk:s3' // 필요한 모듈만 추가awssdk를 사용했다. s3 API를 사용하여 RGW에 요청을 보낼 것이기 때문에 s3도 추가했다.RgwConfigurationpackage com.woowacamp.storage.global.config;import java.net.URI;import org.springframework.beans.factory.annotation.Value;import org.springframew..
[My-Storage 개선하기] 로컬 환경에서 Docker로 Ceph 설치하기
현재 파일 처리의 문제점현재 서버는 파일을 직접 처리한다. 즉, InputStream으로 데이터를 읽고, OutputStream으로 쓰고 있다. 그냥 봤을 땐 문제가 없어 보이지만, 사용자의 요청이 증가하면 문제가 발생한다. 트래픽이 문제라면 그냥 서버를 다중화하면 되는 게 아닌가?라고 생각할 수 있다. 하지만, Spring 서버는 파일 처리만 하는 것이 아니라 다른 API에 대한 요청도 처리해야 한다. 이때 모든 스레드가 파일 처리를 하고 있으면 파일 업로드가 완료될 때까지 다른 요청들은 처리할 수 없게 되는 문제가 발생한다. 어떤 API의 요청이 0.1초 만에 끝나도 파일 업로드를 위해 스레드가 10초 동안 사용하지 못한다면 결국 간단한 요청도 오래 기다리거나 timeout이 발생하게 된다. 위 문제..