본문 바로가기
반응형

Lambda4

AWS Lambda에 Jenkins + Bitbucket 연동해서 코드 배포하기 Jenkins와 Bitbucket을 이용하여 AWS Lambda에 코드 배포하는 전과정을 경험 해보자. 먼저 Jenkins를 설치하고, 플러그인을 설치한 후, Bitbucket과 AWS에 연결하기 위한 Credential을 설정한다. 그 후 연동된 Bitbucket에서 가져온 Jenkinsfile을 이용해서 배포 파이프라인을 구성하여 최종적으로 Serverless Framework을 통해 AWS Lambda에 코드가 배포되는 과정을 확인해 볼 것이다. Jenkins 설치 Jenkins 설치는 간단하다. brew를 이용해서 아래와 같은 명령어를 입력하면 된다. $ brew install jenkins 설치가 완료되었다면, 아래의 명령어로 Jenkins를 시작/종료/재시작 할 수 있다. $ brew serv.. 2022. 11. 8.
Lambda를 활용한 저비용 분산 캐시 올 2월, USENIX에서 발표된 아주 따끈따끈한 논문을 하나 소개하고자 한다. 제목은 "InfiniCache: Exploiting Ephemeral Serverless Functions to Build a Cost-Effective Memory Cache" 뭐 어려운 말로 적혀있는 것 같지만, 요약하면, "Lambda를 활용한 저비용 분산 캐시" 쯤 될 것 같다. Lambda를 왜 활용하는 걸까. 무슨 이득이 있을까. AWS에서 (분산) 캐시를 사용하는 가장 간단한 방법은 Managed Service인 ElastiCache를 사용하는 것이다. 클라이언트는 ElastiCache를 쓰기 위해서 특별한 노력이 필요하지 않고, 그저 인스턴스를 생성해서, 만들어진 Endpoint를 통해 명령을 보내고 결과를 받.. 2020. 4. 6.
AWS Lambda Troubleshooting 3: Error handling Lambda에서 Exception이 발생했을 떈 어떻게 될까 특히 Lambda와 Lambda 간의 통신일 땐(, Lambda 1이 Lambda 2에게로 요청을 보냈다고 했을 때), 만약에 Lambda 2에서 에러가 발생하면, Lambda 1은 Retry를 시도한다. Retry는 최대 두 번까지 일어나고, 결과적으로 총 최대 3번의 Request가 들어가게 된다. 만약 이것이 의도된 Retry가 아니라면 비용적으로 문제가 된다. 왜냐면, Lambda는 요청 건 수 당 비용이 발생하는 과금 정책을 가지고 있고, 때문에 의도하지 않은 요청이 두번/세번 더 들어가면, 비용이 불필요하게 두배/세배 늘어날 수 있으니까. 현업에서는 이런 문제를 해결하기 위해서, Exception 객체를 Lambda 밖으로 나가지 않.. 2020. 3. 8.
AWS Lambda Troubleshooting 1: Cold Start, 콜드 스타트 현업에서 AWS Lambda를 사용하면서 경험했던 바에 따르면, Lambda를 사용하는 것에 있어 가장 큰 단점이자 어려움은 Cold start인 것 같다. Lambda의 근간이 되는 기술인 Container라는 개념은 Scaling하는데 있어 혁신적인 기술이라고 여겨진다. 왜냐하면, Scale-out하는 상황에서, AWS EC2와 같이, 가상OS가 새로 생성되는 방식이기 아닌, OS 위에 돌아가는 독립적인 하나의 프로그램을 생성하는 개념이기 때문이다. 다시말해, 우리가 꺼져있는 컴퓨터를 키는 것이 아니라, 켜져있는 컴퓨터에 프로그램을 하나 키는 것이다. 때문에 당연히 훨씬 가볍다. 때문에 Lambda를 쓰게 되면, 가장 낮은 사양으로 셋팅하더라도, 부하가 생기는 순간에, Container가 빨리 빨리 .. 2020. 3. 5.
반응형