api gateway -> private alb -> private fargate container (in ecs) 로 요청이 흘러가게 구성하려고 한다.alb는 2개의 AZ 및 private subnet에 걸쳐있다.사전준비: ALB우선 proxy 역할을 하는 api를
이전 포스팅에서 성능 최적화하는 방법까지 알아봤다.이번 포스팅에는 서비스를 운영하며 어떻게 모델을 관리해야할까? 하는 문제에서 시작된다.triton 모델관리 문서를 보면 3가지 모델제어 방식을 제공한다.NONE(기본 제어모드)POLLEXPLICITNone 제어모드로 t
대용량 파일을 제공하는 서비스를 운영하다가 문제가 발생했다.브라우저에서 운영서버로부터 1gb 정도 크기의 zip파일을 다운받으려고 하면 에러가 발생했는데, 로컬환경에서는 이러한 문제가 발생하지 않았다.운영서버는 도커를 사용해 배포하고 있었고, 로컬 개발환경은 데이터베이
k8s triton inference server 클러스터 구축 포스팅에 이어 배포된 추론서버의 서빙성능 최적화에 관한 내용을 다뤄보려고한다.triton에서는 모델 서빙 성능을 개선하기 위해 Dynamic Batch, Concurrent Model Execution 등
ec2 쿠버네티스 클러스터 구축 포스팅에 이어 클러스터의 worker 노드에 nvidia gpu를 할당하는 내용을 다뤄보려고한다.NVIDIA Container Toolkit과 k8s용 nvidia 장치 플러그인을 설치해야한다.컨테이너에서 gpu를 사용하는 경우 호스트에
위와같이 마스터노드 1개와 워커노드 2개로 클러스터를 구축하려고한다. 본 포스팅에서는 다루지 않지만, 최종목적은 gpu를 할당해 ml 모델을 서빙하는것을 목표로한다. 쿠버네티스 설치 위와같이 설정하고 클러스터를 생성한다. > ubuntu@ip-172-31-0-17
AWS ECS 인프라 구축(2) 편에서 스프링부트 애플리케이션을 ecs 클러스터의 private subnet에 배포했고, parameter store에서 값을 잘 받아오는것도 확인했다.code pipeline을 사용해 깃헙의 커밋을 감지하고 ecr에 이미지를 푸시, e
AWS ECS 인프라 구축(1) 편에서 네트워크 구성 후 배포테스트에 성공했다.이번에는 테스트용 ecs 클러스터를 제거하고 spring boot 애플리케이션을 배포해보려고한다.시스템 구성도는 다음과같이 수정되었다.수정사항vpc 외부에서 public subnet으로 향하
release-me-rtb-private3-ap-northeast-2arelease-me-rtb-private4-ap-northeast-2b위 private subnet은 aurora mysql, redis를 배치시킬 서브넷이다. NAT를 통해 외부로 요청할 일이 없기
분산서비스에서 mongodb의 document를 동시에 다루는 상황에서 발생한 문제와, 이를 해결한 내용을 정리한다.사용중인 mongodb는 replica set 설정이 되어있다.다루고 있는 도메인 객체는 양방향 연결리스트 구조로 되어있다.직접 참조하지는 않고 참조할
지난 포스팅에 SNS, SQS를 활용한 비동기 썸네일추출 환경을 구성했다.위 사진을 보면 worker-thumbnailator 라고 이름을 정의했는데, 처음에는 worker 서비스였다.썸네일 추출 서버를 개발하는 도중에 큰 문제가 발생해 worker-thumbnaila
사내프로젝트 진행중 업로드한 이미지의 썸네일을 추출해 갱신해야하는 상황이 생겼다.서비스 특성상 대량이 이미지가 업로드되는데, 무거운 썸네일 추출작업을 대량으로 처리하자니 api 서버에서 감당이 안될것같았다.해당 작업을 담당하는 별도의 모듈(프로세스)을 개발해 비동기처리
spring batch를 사용하며 겪었던 문제점들을 기록하려고 합니다. 아래 사진과 같이 api, batch 애플리케이션이 있고 분리된 데이터 저장소가 있는 구조batch meta 데이터 저장소와 서비스 도메인 데이터 저장소에 대해 2개의 데이터소스와 트랜잭션 매니저를
배포할 패키지의 구조는 위와같다.rollup dependency와 peer dependency 를 설치한다.rollup.config.js 번들링 파일 생성그리고 빌드한다.yarn builddist 디렉토리에 빌드 결과물이 생성된다.이제 배포를 하면된다.배포를 했으니 설
Nodejs 생태계에서 npm, yarn, pnpm 등의 유명한 패키지 관리자가 있다.위 저장소에 내 패키지를 올릴 수 있는데, public 저장소는 무료지만 private 저장소는 유료다.사내 라이브러리를 만들어 배포할 일이 생겼는데, 위 두가지 방법은 적절하지 않다