[AWS] AWS 환경에서 모델 학습 API 호출 시 Broken pipe 에러 해결 과정
·
개발 (Development)/AWS
최근 Spring Boot 기반 API 서버에서 모델 학습 요청을 처리하는 도중, IOException: Broken pipe 예외가 발생하는 상황을 경험했습니다. 문제는 AWS 환경에서 발생했고, 처음에는 에러 메시지만 보고 정확한 원인을 파악하기가 쉽지 않았습니다. 이 글에서는 해당 문제를 어떻게 진단하고 해결했는지 과정을 정리합니다.문제 상황모델 학습을 위한 POST API(/api/models/train)를 호출하면 내부에서 학습이 시작되고, 이후 클라이언트에 성공 여부를 응답하도록 구현되어 있었습니다. 그런데 간헐적으로 아래와 같은 에러가 로그에 남는 문제가 있었습니다.IOException: Broken pipeSpring Web MVC에서 발생한 에러로, 응답을 전송하는 도중 예외가 발생하며 ..
[AWS] S3 객체 권한 변경 - PutObjectAcl
·
개발 (Development)/AWS
최근 업무 중에 Amazon S3에서 업로드한 파일에 대해 외부 사용자와 공유해야 할 일이 생겼습니다. 단순히 presigned URL로는 해결이 어려운 상황이었고, 결국 객체 자체의 접근 권한(ACL)을 변경해야 했습니다. 이때 처음 접한 개념이 바로 PutObjectAcl 이었습니다.PutObjectAcl은 어떤 역할을 할까?간단히 말하면, PutObjectAcl은 S3에 올라간 객체(파일)에 대해 누가 접근할 수 있는지를 설정하는 기능입니다. ACL(Access Control List)이라는 이름처럼, 객체별로 읽기/쓰기 권한을 세밀하게 제어할 수 있게 해줍니다.처음에는 버킷 정책으로 충분하지 않을까 싶었는데, 버킷 단위와 객체 단위는 다르게 동작합니다. 실제로 특정 파일 하나만 공개해야 하는 경우..
[AWS] AWS ECR에 MFA로 Docker 로그인 자동화하기 (.bat 파일)
·
개발 (Development)/AWS
AWS Elastic Container Registry(ECR)를 사용할 때, MFA(Multi-Factor Authentication)가 활성화된 계정을 이용하는 경우에는 매번 임시 세션 토큰을 발급받아야만 인증이 가능합니다. 이 과정을 수동으로 반복하다 보면 번거롭고 비효율적일 수 있습니다. 특히 Docker로 이미지를 푸시하거나 풀(Pull)하는 작업이 잦은 경우에는 인증 절차를 자동화하는 것이 큰 도움이 됩니다.이 글에서는 Windows 환경에서 배치 파일(.bat)을 사용하여 AWS CLI와 Docker 로그인을 자동화하는 방법을 소개합니다. 사용자로부터 MFA 코드를 입력받아 임시 자격 증명을 발급받고, 해당 자격 증명을 사용해 ECR에 로그인하는 과정을 자동화합니다.사전 준비 사항자동화 스크..
[AWS] AWS S3 버킷이 데이터 레이크인지 데이터 웨어하우스인지 확인하는 방법
·
개발 (Development)/AWS
AWS S3는 유연한 저장소이기 때문에, 같은 S3 버킷이라도 어떤 방식으로 데이터를 저장하고 활용하느냐에 따라 데이터 레이크로도, 데이터 웨어하우스의 일부로도 사용될 수 있습니다. 실무에서는 두 개념을 혼용하거나 병행해서 사용하는 경우도 많기 때문에, 이 글에서는 두 개념의 차이를 먼저 정리하고, 실제로 어떤 방식으로 확인할 수 있는지를 중심으로 정리해보았습니다.데이터 레이크 vs 데이터 웨어하우스항목데이터 레이크데이터 웨어하우스저장 형식정형 + 반정형 + 비정형 (CSV, JSON, 이미지 등)정형 (주로 Parquet, ORC, CSV)스키마 처리schema-on-read (나중에 스키마 적용)schema-on-write (저장 전 스키마 적용)데이터 형태원시(raw) 데이터정제된 데이터주요 도구A..
[PostgreSQL] WAL(Write-Ahead Logging) 로그 관리 가이드
·
개발 (Development)/PostgreSQL
PostgreSQL WAL(Write-Ahead Logging) 로그 관리 가이드PostgreSQL의 WAL(Write-Ahead Logging) 로그가 가득 차지 않도록 유지하려면 몇 가지 설정을 조정해야 합니다. 특히, 자동 체크포인트 설정, WAL 보존 주기 설정, 아카이빙 정책 등을 관리하면 WAL 크기를 제어할 수 있습니다. 해당 기능을 찾아보게 된 이유는 업무 중 AWS에 서비스 배포 및 이관 시 WAL 로그가 저장되는 PV(Persistent Volume) 의 크기에 제약이 있어, 해당 Pod 가 중지되는 현상이 발생했습니다. 따라서 해결 방법을 찾아 기록하기 위해 이 글을 남깁니다.1. WAL 로그 크기 관리 기본 설정WAL 파일이 너무 많이 쌓이지 않도록 하려면, 다음 설정들을 postg..