서버리스 장고 - AWS Lambda framework 자료 조사

서버리스 장고 - AWS Lambda framework 자료 조사
Photo by Claudio Schwarz / Unsplash

파이썬 기반의 서버리스 API 혹은 장고 platform을 구축할 수 있다는 Zappa! 관심 키워드로 두고 검색을 해보고 있음

서버 운용자 없이 그냥 코드만 관리하려면, 서버리스로 웹서버나 장고를 돌릴 수 있으면 베스트 인데, 소규모 스타트업 경우는 그냥 하나 띄워두고 자기 서비스에 집중할 수 있다니 한번 테스트 베드라도 구축해 두면 여러모로 도움이 될 듯!

그런데, 서버리스를 한다고 치자...Zappa 와 같은 또 쓰이게 되는 프레임워크의 필요성은 아래 글에서 참고하자. Zappa 대신 더 유명하다는 Serverless framework 사용기

Serverless

https://squarelab.co/blog/developing-internal-service-with-serverless-aws/

AWS Lambda + AWS API Gateway를 이용하여 직접 서버 인스턴스를 띄우지 않고서도 서버 기능을 할 수 있다는 사실은 많이 알려져 있습니다. 하지만 막상 이걸 직접 설정 해보려고 하면 해야할 일이 산더미 같습니다. 실제 코드를 작성해서 Lambda에 업로드해야하고, Lambda를 누가 실행 할 수 있는지 적당한 권한을 설정해줘야 하며, API Gateway와 Lambda를 연결해줘야하고, 사용자 지정 도메인도 연결해줘야하며, CloudWatch 로그 설정도 … (중략). 슬슬 오히려 EC2 인스턴스를 그냥 띄워서 하던대로 하는게 낫지 않을까 생각이 들기 시작하네요.
Serverless한 회사 내부 서비스 만들기
사내에서 사용되는 서비스의 경우 대중을 대상으로 하지 않기 때문에 사용량이 많지 않은 경우가 대부분입니다. AWS Lambda를 사용하면 비용 절감뿐만 아니라 서버를 직접 관리하고 운영할...

AWS 전용 프레임워크 - AWS Chalice 예제

Native python packaging 으로 아래 주소에 설명서가 있어요. 기왕 AWS 의존적이라면, 제공해주는 프레임워크를 쓰는 것도

Todo Application — AWS Chalice

단점

단점이라는 것을 한 번 살펴볼 필요가 있지만...암껏도 없는 소규모 서비스의 경우 백만건 도달할 수나 있나...

  1. vendor lock-in
    특정 vendor의 독자적 기술에 크게 의존한 제품, 서비스, 시스템 등을 채용했을 때 다른 vendor가 제공하는 동종 제품, 서비스, 시스템 등으로 갈아타기 어렵게 되는 현상
https://gnidoc.tistory.com/entry/AWS-Serverless-웹서비스-구축-경험-후기1탄
frontend는 react, backend는 django, DevOps는 terraform 등을 사용하여 최대한 오픈소스를 활용하여 vendor lock-in을 최대한 피했습니다
  • 누가 먼저 죽나...
  • Django 기반 프로젝트, Django template Frontend 구현
  • PostgreSQL 그냥 DB 사용 - 클라우드 플랫폼 의존성이 덜한

2. 기술 이전
쿠버네티스 이런걸 쓰고 싶다!!

쿠버네티스 ① 메인 K8s component (1)
인프라 내용을 학습할 때 항상 나오는 쿠버네티스...! 간단하게나마 알면 도움이 될 것같아 영상을 보고 학습하였다. 💪 학습 내용의 출처는 모두 아래 두영상이다! 🙌 참고한 영상 👇🏼 https://www.youtube.com..
  • 아직은...
  • 미래에도...
  • 이런 일이...

3. 운영에러
모르고 쓰게 되니깐 위험해...먼가 두려움이

https://www.megazone.com/techblog_20200424_opensource-24-open-source-tools-for-the-serverless-developer-part-1/

이러한 툴을 사용하여 프로비저닝을 자동화하기 전에 AWS에서 리소스를 프로비저닝하는 방법을 이해해야 합니다. 예를 들어 Serverless Framework 또는 AWS SAM 을 사용하는 경우 AWS CloudFormation의 작동 방식과 프레임워크의 기능을 이해해야 합니다. 툴이 작동하는 방식을 이해하지 않고 툴에 의존하게 되면 문제가 발생했을 때 이를 해결하는 방법을 모르기 때문에 위험합니다.
확실한 이해 없이 자동화해서는 안 됩니다.

참고 사이트

  • Zappa 찾아보게 된 계기
300원에 200만뷰 소화하기 - 서버리스 아키텍처 AWS 람다(Lambda) 활용 사례 - 로켓펀치 공식 블로그
로켓펀치에서는 기본적인 웹 서비스 외에 제휴를 통해 로켓펀치의 채용 공고를 위젯 형식으로 노출하는 경우가 있습니다. (예 : 플래텀 오른쪽 사이드바 위젯) 이런 위젯들을 운영하다 보니 몇 가지 추가적인 요구 사항이 생겼는데요. 주로 아래의 두 가지로 요약할 수 있습니다. 제휴를 맺은 곳의 갑작스러운 트래픽 증가가 로켓펀치 웹 서비스에 영향을 주지 않을 것 로켓펀치에서 일시적인 오류가 … 더 보기 “300원에 200만뷰 소화하기 – 서버리스 아키텍처 AWS 람다(Lambda) 활용 사례”
  • 기초 매뉴얼 같은 블로그
Zappa를 활용하여 Django 배포하기
Zappa를 활용하여 Django 프로젝트를 API Gateway + Lambda를 활용한 서버리스 아키텍쳐로 배포하는 과정에 대해 공유합니다.
  • 2022 최근 글
Zappa로 서버리스 배포
zappa를 이용한 lambda 배포 방법 (python + django + RDS(postgresql))
  • API 게이트웨이 예제 프로젝트
Zappa를 이용한 Serverless 배송 조회 API 구현
캐시슬라이드에는 상품을 구매하면 리워드를 적립 받을 수 있는 쇼핑하고 적립받기라는 서비스가 있습니다. 쇼핑하고 적립받기는 계속해서 신규 기능을 붙여가면서 점점 이커머스답게 성장해가고 있습니다. 그 과정에 통합적으로 사용할 기능을 Serverless…
  • 구조 그림이 예술
AWS Serverless 웹서비스 구축 경험 후기(1탄)
지난 1년 동안 아래와 같은 구조의 서버리스(serverless) 아키텍처의 웹서비스를 구축, 개발, 운영했습니다 일단 본 프로젝트는 아래와 같이 크게 3가지로 구성됩니다 frontend : UI, React 프로젝트 backend :..