
현재 서비스는 대부분 Java/Kotlin으로 구현되어 있어 갑자기 진행된 Python 프로젝트를 어떻게 배포할까에 대한 고민이 있었다. 스케줄러로 하루에 한번돌기 때문에 부담은 없지만, 내부 패키지를 많이 사용하는 프로젝트다. 대략 3가지 방안이 논의됐다. 1. AWS Lambda에 배포 2. Spot EC2에 배포 3. 쿠버네티스 컨테이너에 배포 DB를 따로 사용하지 않기 때문에, 1번 방안부터 알아봤다. 결론부터 이야기하면, 해당 프로젝트에 이미지 프로세싱이 들어가있어서 AWS Lambda는 후보군에서 바로 제외됐다. 그래도 serverless 프레임워크를 써서 파이썬 Lambda를 생성해봤기 때문에 정리하고 넘어가려고한다. python만의 특이한 옵션들이 있어서 프로젝트 생성/관리에 조금 어려움이..

이전 글들은 이 글을 쓰기위한 빌드업이 었다. 1. AWS S3와 CloudFront 연동 끝까지 가보기 2. WSL/WSL2에 Go(Golang) 설치하기 3. Go + serverless framework로 Lambda 관리하기 4. 꼭 읽어줬으면 하는 AWS Lambda@Edge의 특이 사항들 정리 개인적으로는 Lambda@Edge를 시작하기전에 4번은 꼭 훑고 갔으면 좋겠다. 1번 글의 마치며에서도 언급한 내용이지만, 이미지가 아직 CloudFront(CDN)에 등록되지 않았을 경우 첫 로딩에 문제가 발생할 수 있다. 그리고 그 문제는 이미지의 크기가 커질수록, 더 커질 것이다. 그래서 이미지의 사이즈를 작게 만드는 과정이 필요하다. (리사이징이든, 확장자 변환이든 여러가지 방법이 있다) 하지만 ..

앞서 이야기했지만 Go도 알아야되는 상황이 됐다. 그 이유는 Go로 개발한 Lambda가 있기 때문이다. 아무것도 몰라서 바닥부터 머리를 박아가면서 알게된것들이 많다. Go로 Lambda를 개발할 때 주의할 점이 몇가지 있다. 1. yarn이나 npm 같은 패키지매니저가 없어서 makefile을 이용해 빌드 방식을 관리한다. 2. 올해(2024년)부터는 runtime을 go 1.x보다 Amazon Linux 2를 사용하길 권장한다. 3. binary를 생성하고, Amazon Linux 2에서 사용되는 bootstrap으로 람다에 배포해야한다. 참고자료 : https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/golang-package.html 추가적으로, Go의 함수..

이번엔 serverless에서 제공하는 다양한 기능을 써보려고 한다. 이전 포스팅에서는 너무 한가지만 써봤어서 재미가 없었기 때문에 다양한 기능을 엮어서 엔드 투 엔드로 하나의 세트를 만들어 보려고 한다. 약간의 콘솔 작업이 필요하지만, 차근 차근 진행해보려고 한다. 작업 내용은 이렇다. 1. serverless로 람다, API gateway 생성 후 연동 2. Route 53에서 도메인 발급, 서브도메인 생성 3. 발급받은 서브도메인과 API gateway 연동 4. servless에서 API gateway 재사용하도록 설정 5. 람다와 DDB 연결 정리하면, 발급받은 url로 들어와 api gateway로 들어온 이벤트를 람다에 라우팅해, api gateway의 이벤트 정보들을 ddb에 저장하는데까지..

현재 서비스하는 서버에는 DB에 직접 접근하지 않거나 이벤트 성으로 관리할 것들은 람다로 관리한다. 그러다보니 람다가 계속해서 늘어나는데, 각각의 람다들을 매번 콘솔에서 람다를 관리하기는 꽤나 번거롭다. 이럴 때 여러 serverless 서비스(AWS Lambda의 Event나 function)을 관리하기 위한 도구가 있다. Serverless framework인데, BE 개발만 하던 나에겐 좀 생소해서 가볍게 사용해보면서 사용법을 익혀보려고 한다. Installation 패키지 매니저로 yarn을 사용할 것이다. npm 설치, yarn 설치 sudo apt install npm sudo npm install --global yarn serverless 설치 npm install -g serverless..
- Total
- Today
- Yesterday
- object
- Spring
- AWS
- AOP
- GIT
- 스프링부트
- serverless
- openAI API
- Kotlin
- 람다
- JWT
- java
- S3
- AWS EC2
- elasticsearch
- CloudFront
- docker
- Log
- 오블완
- 후쿠오카
- OpenAI
- MySQL
- terraform
- springboot
- cache
- lambda
- EKS
- 티스토리챌린지
- ChatGPT
- Elastic cloud
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |