[AWS] Amazon SageMaker 사용법 정리
·
개발 (Development)/AWS
머신러닝 모델을 실제 서비스에 적용하려면 데이터 준비, 모델 학습, 배포라는 과정이 필요합니다. Amazon SageMaker는 이 전체 과정을 하나의 관리형 플랫폼에서 제공하기 때문에, 인프라 관리 부담을 줄이고 빠르게 모델을 운영할 수 있도록 돕습니다. 이번 글에서는 SageMaker 사용법을 단계별로 정리하겠습니다.1. SageMaker의 기본 개념SageMaker는 크게 세 가지 단계를 중심으로 구성됩니다.데이터 준비: 데이터를 Amazon S3에 업로드하고 전처리 수행모델 학습: 내장 알고리즘, 프레임워크(TensorFlow, PyTorch 등), 혹은 사용자 정의 코드 활용배포 및 추론: 학습된 모델을 엔드포인트로 배포하거나 배치 추론 실행이 구조 덕분에 머신러닝 파이프라인을 통합적으로 관리할..
[AWS] ECR 리포지토리에서 모든 이미지 태그 조회하기
·
개발 (Development)/AWS
쿠버네티스 클러스터 안에서 사용하는 이미지를 확인하는 경우에는 kubectl 명령어를 이용하면 되지만, 이번에는 ECR(Amazon Elastic Container Registry)에 저장된 이미지 태그 목록을 조회하는 방법을 정리해보겠습니다.1. 특정 리포지토리의 모든 태그 조회가장 기본적인 방법은 list-images 명령어를 사용하는 것입니다.aws ecr list-images \ --repository-name \ --query 'imageIds[*].imageTag' \ --output text이렇게 실행하면 해당 리포지토리에 저장된 모든 태그가 공백으로 구분되어 출력됩니다.2. 태그가 없는 이미지까지 포함해서 조회일부 이미지에는 태그가 붙어있지 않을 수 있습니다. 이 경우에는 tagSt..
[Linux] Bash에서 `source` 명령어 사용법 정리
·
개발 (Development)/Linux
리눅스나 macOS 환경에서 개발 작업을 하다 보면 source 명령어를 자주 접하게 됩니다. 특히 AWS나 기타 서비스의 인증 토큰을 담은 token.sh 같은 스크립트를 불러올 때 자주 활용됩니다. 이번 글에서는 source 명령어가 무엇인지, 왜 필요한지, 그리고 실제 활용 방법을 정리해보겠습니다.1. source 명령어란?source는 쉘 내장 명령어로, 스크립트 파일을 새로운 프로세스가 아닌 현재 쉘에서 실행하게 합니다.즉, 파일 안에 들어 있는 export 같은 환경 변수 설정이 현재 터미널 세션에 그대로 반영됩니다.실행 방식: source 짧은 축약형: . 2. bash 과의 차이많은 분들이 bash token.sh처럼 실행하는데, 이렇게 하면 새로운 하위 셸에서 실행됩니다.하위 셸이 종료되..
[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)이라는 이름처럼, 객체별로 읽기/쓰기 권한을 세밀하게 제어할 수 있게 해줍니다.처음에는 버킷 정책으로 충분하지 않을까 싶었는데, 버킷 단위와 객체 단위는 다르게 동작합니다. 실제로 특정 파일 하나만 공개해야 하는 경우..