오늘의 포스팅은 간단한 한 의문으로 시작된 수 시간의 연구 일기입니다. AWS는 Lambda와 같은 서버리스 기술을 어떻게 구현했을까? 막연하게 떠오르는 건 도커가 아닐까요? 흔히 도커 짱짱...이라고 많이 알려져 있으니까요. 혹은 가상머신을 수십만 대 활성화해두고 요청 때마다 작업, 작업 후 리셋? 이 글을 보고 계신 여러분들도 다양한 가정을 세우실 텐데, 과연 여러분들의 추측이 맞았을지 검증하면서 읽는 것도 하나의 재미요소 일 것입니다. 시작해볼까요? (다만 글에서 등장하는 AWS 엔지니어는 허구의 인물입니다. 이해를 돕기 위해 등장시킨 인물이니 주의해주세요!) 일반적으로 클라우드 제공업체는 워크로드를 서로 분리하기 위해 멀티 테넌시 아키텍처를 구축해야 합니다. 즉, 보안을 위해 워크로드들을 모두 분..
Notion API 활용하기 - (1) API용 유저 토큰 생성하기 : https://newdeal123.tistory.com/86 Notion API 활용하기 - (2) 노션 데이터베이스에 새 페이지 추가하기 : https://newdeal123.tistory.com/87 앞선 실습을 통해 노션 데이터베이스에 새 페이지를 notion API를 이용해 추가하는 방법에 대해 알아보았습니다. 이번 시간에서는 AWS Lambda로 해당 코드를 실행시켜 서버리스 환경에서 notion API를 실행시키는 실습을 진행하겠습니다. 진행에 앞서 AWS 계정과 AWS Lambda, eventBridge 서비스에 대한 사전 지식이 필요합니다. 먼저 Lambda 함수를 생성해줍시다. 런타임은 nodeJS 14버전으로 진행합..
Lambda는 AWS의 서버리스 서비스 중 핵심이고 알파이자 오메가입니다. 그럼에도 불구하고 컨테이너 이미지 지원이 공식적으로 지원된 건 2020년 겨울 무렵부터 입니다. 설명서도 자세하게 나와있지만 실전에서 사용하는 데에는 제약이 많았습니다. 본격적으로 들어가기 전에 Lambda와 docker의 관계를 정리할 필요가 있습니다. 1. 임의의 기본 이미지는 Lambda와 호환되지 않는다. Lambda와 호환하려면 Lambda 런타임 API를 구현해야 한다. https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/runtimes-api.html 문서를 참조해서 직접 구현해야 하는데 너무 복잡하고 예제가 없는 설명서는 구현 할 의욕조차 사라지게 합니다. 2. 그래서 AWS는..
마이크로 서비스 아키텍처(MSA)의 핵심 기술인 서버리스 환경 구성은 여러 장점도 존재하지만, 단점 역시 있습니다. 그중 Lambda의 고질적인 문제로 지적받는 콜드 스타트, 쓰로틀링을 제외하고서라도 복잡한 워크플로에 대한 처리가 있는데요. 병렬, 재시도, 동기화 등 다양한 플로우에 대해 Lambda만으로는 처리가 굉장히 복잡해지고 마이크로 서비스를 실천하기도 어려워집니다. 최근 프로젝트를 진행하면서 처음엔 비동기적이던 lambda 플로우를 처리하기 위해 다음과 같은 방법을 썼습니다. S3 trigger로 Lambda 실행하기 S3의 버킷에 파일이 올라가면 lambda가 실행되고, 그 lambda가 실행이 끝날때 또 S3에 더미 파일을 올리면서 트리거가 되는 식으로 플로우를 짰습니다. 파일이 올라갈 때 ..
최근 프로젝트 작업 중 팀원이 만든 Jupyter notebook을 AWS lambda로 옮겨 자동화를 시켜야 할 Task가 생겼습니다. Jupyter는 python코드로 변환해서 사용하면 되고, 다른 과정도 처음에는 대수롭지 않게 생각하고 작업을 진행했지만.. lambda로 이전하는 작업 중 꽤 고되고 힘든 과정이었습니다. Jupyter의 작업 내용은 무엇인가? 한 사이트를 켜고 musicXML파일을 올리고 사이즈를 적당히 줄인 뒤 svg형태의 파일을 저장하고 svg의 css_selector로 요소를 뽑아내서 txt 파일로 또 저장하는 작업. lambda로 이전 시 무엇이 문제인가? 로컬 환경에 저장된 musicXML을 이용해 로컬환경에 svg, txt를 저장하는 작업을 lambda로 어떻게 옮기는가,..
테라폼은 infrastructure를 코드로 관리할 수 있게 해주는 툴입니다. 보통 aws, azure, gcp 등 클라우드와 연계해서 사용하게 되는데, 자동화나 GIT처럼 버전 관리에도 사용할 수 있습니다. 정의만 보고서는 정확하게 개념이 와닿지 않을 수 있습니다. 간단한 aws ec2 인스턴스를 생성,삭제하는 과정을 따라 하며 익혀볼까요? 실습 환경 macOS(Big Sur, M1) Terraform v1.0.0 on darwin_arm64 먼저 테라폼 설치가 필요합니다. 테라폼은 홈페이지에서 다운로드 가능하며. 저의 실습 환경은 위와 같습니다. https://www.terraform.io/ Terraform by HashiCorp Terraform is an open-source infrastruc..
소마 예비과정을 시작한 지도 2달이 지났고, 그동안 정말 많은 일들이 있었고 시간은 너무 빠르게 지나갔습니다. 여러 배운 점들이 많았지만 그중에서도 이번에는 클라우드 얘기를 하려 합니다. 올해 3월까지만해도 AWS에 대한 지식은 거의 없었습니다. 건너 건너 알고 있는 건 서버를 AWS로 이용하면 공짜래! 같은 얄팍한 지식뿐이었던.. 그런데 멘토님의 권유로 AWS 중심으로 백엔드 아키텍처를 그리고 AWS 솔루션스 아키텍트 자격증을 따는 공부를 하며 실습한다는 느낌으로 백엔드 개발을 동시에 진행하면 어떻겠냐는 말에 그날 바로 두 책을 구매하고 공부에 들어갔습니다. AWS 공부는 재밌었습니다. AWS가 손을 안뻗친 분야가 없기 때문에 개발의 전체적인 분야의 개념을 공부한다는 느낌도 받았습니다. 특히 lambd..
어느 날 카뱅에서 결제 알림이 떠서 무심코 봤더니, AWS에서 63만 원 요금이 결제되었습니다... AWS 모든 책에서 실습 끝나고 삭제하세요... 블로그에서도 제발 프리티어 믿고 마구잡이로 쓰다가 폭탄 맞지 마세요... 했는데 말 귓등으로도 안듣다가 기어코 이 사달이 났습니다. 솔직히 뭐 55달러였으면 공부했다 치고 넘어갔을 것 같은데 555달러는... 다행히 저 같은 분이 많았고 블로그에도 요금폭탄 후기가 굉장히 많았습니다. 그렇게 안내센터로 가서 영어로 반성문을 쓰고.. 그 내용은 대충 "학생이고 프리티어로 연습하다가 555달러나 나왔어요ㅠㅠ 저번 요금만 환불이 가능할까요?"였고, 친절한 상담원이 4시간? 정도 걸려서 도착한 답변은 "~~ 이런 이유로 요금이 나왔고 지금 켜져 있는 Elasticac..