리소스 패치 시스템 개발기

프로젝트 이름

필요한 것

  • 리소스 배포
  • 리소스 버전 관리
  • 서버 점검 상태 관리

리서치

  • AWS s3 + CloudFront 사용 (boto3)
  • git 으로 버전 관리 (libgit2)
  • Python 사용

AWS CloudFront

git 으로 버전 관리

Python 사용

  1. Python 의 생산성
  2. AWS api 사용성 (boto3)
  3. Django + ORM 사용으로 인한 웹 사이트 구현 생산성 + DB 신경 덜 써도 됨

일단 생각한 Tech Stack

  • Python + Django
  • boto3 (AWS S3 + CloudFront)
  • libgit2 (Python 으로 binding 한 pygit2)

기술적 고려사항

웹 서비스로 구현, 있는 것은 최대한 활용

클라이언트 중심 로직 구현

Live QA 기능

Celery 도입

Elastic Beanstalk 배포

그래서 최종 tech stack

  • Python + Django
  • boto3 (AWS S3 + CloudFront + Lambda@Edge)
  • libgit2 (Python 으로 binding 한 pygit2)
  • GitLab (Git 서버 용으로 기존 사용하고 있던 Gitlab 사용)
  • Celery (long-time task 를 위해) + Redis (broker 로 씀)
  • Mysql (최소한의 Persistent Data는 당연히 필요한 거니까)
  • Elastic Beanstalk
  • Front-end 는 bootstrap 으로 비개발자들이 잘 사용할 UI를 만들었다.

후기들

삽질

EFS

Python

--

--

--

http://ethanhur.me

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Ethan Hur

Ethan Hur

http://ethanhur.me

More from Medium

[Solved] Error: JavaFX runtime components are missing, and are required to run this application

[VSC] Visual Studio Code 101 #4 : 7+ C_C++ extension in recommendation (Clang-Format)

Concurrency

The almighty GIL

Getting list of Git files owned by a specific owner based on the CODEOWNERS file