일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- SpringBatch
- JPA
- 그래프탐색
- springboot
- findById
- flyway
- 폰켓몬
- Spring JPA
- 백준
- BFS
- 구현
- CPU스케줄링
- 2178
- 컴퓨터구조
- 코테
- 트리셋
- 산업은행it
- 트리맵
- 외래키제약조건위반
- fatch
- CS
- 산업은행청년인턴
- 운영체제
- 스케일아웃
- 프로젝트
- DB replication
- 파이널프로젝트
- 프로그래머스
- 임베디드타입
- 해시
- Today
- Total
목록DevOps, MLOps (18)
나 JAVA 봐라

사용 기술AWS CloudWatchAWS SNSAWS Lambda현재 진행 상황AWS CloudWatch Logs에 로그 그룹, 로그 스트림 생성로그 그룹에 대한 지표 필터 생성지표 필터에 대한 경보 생성AWS Lambda, SNS를 통해 슬랙 알람먼저 기존의 슬랙 알람은 아래와 같다. 알람을 통해 바로 로그이벤트를 확인할 수 없는 문제가 있다. 링크에 접속해도, 로그 스트림을 확인할 수 있는 링크가 아니기 때문에 에러로그를 확인할 수 없다. 연동해둔 로그 이벤트는 아래와 같다. 이제 해당 로그 이벤트를 알람을 통해 바로 확인할 수 있도록 해보겠다.1. 기존 Lambda에 Nodejs 레이어 추가Lambda에서 CloudWatch logs에 접근하기 위해 aws-sdk를 사용해야한다.이를 위해 Lambd..

AWS CloudWatch를 통해 EC2 인스턴스에 출력되는 로그를 확인하고 특정한 로그 이벤트가 생기면 이메일로 알람이 가도록 한다.사용 기술AWS CloudWatchAWS SNSAWS Lambda기본 설정되어 있는 log 확인해보기먼저 터미널에 찍히는 log를 확인한다.EC2 터미널에서 아래와 같은 명령어로 log를 확인할 수 있다.이번 프로젝트에서는 EC2 인스턴스에 Docker container를 띄웠기 때문에 아래와 같은 명령어로 확인했다.docker logs [옵션] [컨테이너명] Docker는 container에서 생성된 로그를 자동으로 저장해준다.도커에서 로그를 남기는 경로를 알기 위해 아래의 명령어를 입력한다.docker inspect 컨테이너명 엄청나게 많은 정보들이 출력되는데 그 중 ..

Spring Boot 프로젝트를 EC2에 배포하고 보니, 아직 완성 안된 기능들을 추가해야할 때 jar 파일 빌드 → image로 생성하여 docker hub에 업로드 → EC2에서 프로젝트 이미지 pull → 컨테이너 생성 및 실행…과 같이 하나하나 해줘야하는 것들이 많고 이 과정이 자동화가 된다면 서비스를 유지보수 하는 것에 있어 편리하겠다는 생각을 했다. 왜 사람들이 Github Action을 쓰는지 이해했다.GitHub Actions 동작 순서Github Repository에 프로젝트의 추가사항이나 변경사항을 push 혹은 merge한다.테스트 코드를 통과하면 push 혹은 merge가 된다.Github Actions에서 push 혹은 merge가 된 것을 확인한다.Project 빌드에 필요한 a..

현재 Spring Boot와 MySQL을 통해 로컬 환경에서 프로젝트를 진행하고 있습니다. 개발이 얼추 마무리됨에 따라, AWS에 배포를 진행하기로 했습니다.찾아보니 배포하는 방법도 다양했는데, 그 중 아래의 두 가지 방식을 고민했습니다.Spring Boot 프로젝트는 Amazon S3에 올리고, DB는 Amazon RDS를 사용하여 EC2에 연결하기Spring Boot, Mysql 둘 다 Docker Container로 EC2에 띄우기로컬 환경에서 MySQL를 도커 컨테이너로 띄워 사용 중이었기 때문에 배포도 2번 방법에 따라 Docker를 사용하기로 했습니다 !그래서 오늘은어떻게 SpringBoot 프로젝트를 Docker Image로 만들고어떻게 만든 Image를 DockerHub에 업로드하고어떻게 ..

MLOps란? 머신 러닝 (Machine Learning)과 운영(Operations)를 합친 용어로 프로덕션 환경에서 머신 러닝 모델이 지속적, 안정적으로 배포되도록 유지, 관리, 모니터링 하기 위한 문화, 방법론즉, MLOps는 머신러닝 모델 개발과 운영을 통합하여 ML 시스템을 자동으로 유지, 관리, 운영한다.엔터프라이즈 레벨에서 ML을 서비스에 구현하고자 한다면, 단순히 성능이 좋은 모델만 필요한 것이 아니다.단순히 모델 개발 하나가 아니라 그 이전의 데이터 수집, 이 후의 모델 배포 및 모니터링 등의 전 과정(AI Lifecycle)을 거쳐야 한다. 또한 이러한 시스템들이 유기적으로 돌아가야 한다. 이런 과정들을 MLOps가 포함한다. 따라서, MLOps에는 머신 러닝(ML)과 소프트웨어 개..
1장 사용자 수에 따른 규모 확장성 하나의 서버 내에 웹 앱, DB, 캐시 등이 다 있을 수 있지만, 사용자 수가 많아짐(요구 사항)에 따라 각각의 서버(웹, DB, 캐시,... 등)로 분리할 수 있다. 웹 계층스케일 업(수직적 규모 확장) vs 스케일 아웃(수평적 규모 확장)스케일 업의 한계한 대의 서버에 CPU, 메모리를 무한대로 증설하는 데에 한계가 있다. 장애에 대한 자동복구(failover), 다중화 방안 없기에 장애 발생 시 서비스가 중단된다.-> 이런 단점으로 인해, 대규모 애플리케이션 지원하는데에는 스케일 아웃 많이 씀. 로드 밸런서사용자 많을 때 부하 분산함.사용자는 로드밸런서의 공개 IP 주소로 접속(웹서버-클라이언트가 직접 연결 x) -> 로드밸런서가 사설 IP주소로 웹 서버 접속서버..
의료 CV 연구실에서 학부 연구를 진행하며, 비용을 고려하지 않고. 단순히 더 좋은 성능만을 위하는 모델은 실질적이지 않다고 생각했다. 또한 연구실 환경에서는 모델 학습 ~ 성능 평가의 모든 과정이 수동으로 진행되어 속도도 더뎌지고 가끔씩 휴먼 에러도 발생했다. 내 나름대로 수동으로 이뤄져 불편한 과정들을 자동화 했었는데 실제 기업에서는 어떤 식으로 이러한 과정(학습, 평가, 배포)을 자동화하는지 궁금했다. 실제 프로덕션에서 동작하는 모델은 어떻게 다른지 책을 통해 알아가고자 한다. 참고 ) 쉘 스크립트로 모델 학습 자동화하기 -> https://yejin-code.tistory.com/421장 머신러닝 시스템 개요머신러닝 시스템이란? : 단순히 로지스틱 회귀와 같은 ML 알고리즘만 의미하는 것이 아니라..
프로젝트를 aws를 통해 배포하기로 했다. 그에 따라 DB도 RDS를 사용하기로 했는데, 이 후 Replication, Auto scale까지 고려하다보니 따져봐야할 것들이 많아졌다. 그렇다고 무턱대고 생성하기에는.. 추후 배포 후 운영 단계에서 많이 힘들어질 것 같았다. 그래서 프로젝트 운영 시 필요한 기능들을 따지다보니 AWS 서비스에 대해 하나씩 공부하게 되었다. AWS.. 공부할수록 없는게 없어서 왜 비싼지는 알 것 같고, 동시에 잘 써먹으려면 CS 지식을 바탕으로 AWS 서비스도 잘 공부해야겠다는 필요성을 느꼈다... ㅠ 현재 진행형으로 계속 공부 중인데, 공부한 것들이 머리에서 휘발되기 전에 어떤 서비스들을 어떤 이유로 찾아보게 되었는지 순서대로 정리해보려고 한다! 처음에는 단순히 DB rep..