• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

안녕하세요 선생님 서버 scale out 에 대해 질문드리려합니다.

22.09.30 19:55 작성 조회수 142

1

안녕하세요

 

장고 클라우드 서버로 AWS를 쓰면서 지속적으로 하고 싶었던 기술이 CI CD + AutoScaling을 동시에 도입을 하고 싶었습니다.

 

기존에 github action과 aws ec2로 자동 배포는 어찌어찌해서 찾아서 해봤는데 결국에는 하나의 서버 인스턴스로만 돌아가기 때문에 나중에 부하 걱정이 되더라고요

 

그래서 제가 사용하고 싶은 조합은 AWS Autoscaling + AWS Codedeploy + AWS EC2 + AWS Loadbalance + GithubAction을 통해 github에 코드가 push되면 loadbalance 타겟 그룹된 전 인스턴스가 전부 코드 업데이트 되어 배포가 되는것을 생각을 해봤는데,

 

위 조합으로 제가 생각한 내용이 가능할까요? 제가 codedeploy는 한번도 써보지 않아서 사실 감이 잘안오는데, codedeploy는 github에 코드가 push되지 않더라도 자동으로 autoscaling에서 인스턴스를 생성하면

깃허브 코드가 적용된 서버를 생성하기 위해서 필요할것 같더라고요.

 

위는 결국 서버를 유연하게 관리하기 위한 제가 생각한 조합이구 제 생각한 위 아키텍처에 문제가 있을까요?

(사실 일단 위 아키텍처 직접 구현이 어려울것 같아서 먼저 전문가이신 선생님께 확인을 받고 찾아보려합니다.)

보통 기업에서는 어떻게 서버 로드를 유연하게 관리하나요?? 클라우드 관점에서용!(다양한 자료나 서비스 다 좋습니다 !!)

쿠버네티스나, ECR, ECS 클러스터를 활용하나요?

 

 

궁금적으로 제가 현재 원하는 방식은 비교적 접근성 좋고(쉽고 ㅠㅠ) 혼자서 어느 정도 컨트롤 할만한 서버 아키텍처 구성을 원해서 질문드립니다!! (쿠버네티스는 어렵다고 들어서 선생님강의에서도 ㅠㅠ어렵다고 말씀하시고 ㅎㅎ; 위 방법이 가능성이 있는지 파악하고 나중에 차근차근공부하려합니다)

 

 

 

 

 

 

 

 

답변 1

답변을 작성해보세요.

1

안녕하세요.

기업마다 문화도 다르고 인프라가 다르기 때문에, 꼭 이렇게 한다라고 이야기할 수는 없습니다.

클라우드 벤더에서는 많은 서비스가 제공되고 있는 데, 이를 많이 활용하는 회사도 있고, 극히 일부만 사용하고 직접 구축해서 사용하는 곳도 있습니다.

No silver bullet. 유명한 말이죠. 모든 케이스를 해결할 수 있는 완벽한 해결책은 없다는 것입니다. 모두 선택의 문제일 뿐, 그 선택으로 인한 비용 발생은 그 조직이 부담해야하는 것일테구요. 추가 학습의 비용, 인프라 사용의 비용, 개발자 수급의 비용 등 다양한 비용을 고려해서, 그 조직 나름의 최선의 결정을 할 뿐인 것입니다.

일단 배포를 해보세요. 그리고 그에 따른 시행착오나 아쉬웠던 포인트, 개선 포인트들이 보이면 이를 정리해보시고 개선해보세요.

https://aws.amazon.com/ko/blogs/devops/integrating-with-github-actions-ci-cd-pipeline-to-deploy-a-web-app-to-amazon-ec2/

얼마 전에 페이스북에서 어떤 개발자 분이 이런 글을 남기신 적이 있습니다.

"빅테크들이 개발자들을 다 배려놓았다. 수백, 수천만명이 수십, 수백억의 레코드를 쓰는 SNS 성의 서비스에서나 필요한 아키텍처들을 기본 아키텍처라고 생각하게 만들었다. (생략)"

저도 어느 정도 동의하구요. 동네 마트와 대형 백화점의 운영방식이 다를 수 밖에 없을 텐데, 모두 대형 백화점의 설계와 운영에 대해서만 고민을 하시더라구요. 동네 마트는 대형 백화점에 비해서는 운영이 훨씬 단순할텐데 말이죠.

No silver bullet.

조금 큰 기업에서는 백엔드 개발자와 인프라를 담당하시는 분들이 나눠져있습니다. 작은 기업에서는 같이 하시는 경우가 많은 데, 저는 IaaS보다 PaaS를 통해 인프라에 대한 고민을 줄여나가는 쪽을 저는 선호합니다. AWS는 IaaS위주의 서비스일 뿐 PaaS가 없어요. :-(

IaaS는 운전자에게 운전도 하면서 차량도 조립하고 정비도 하라고 하는 데,
저는 조립/정비가 목적이 아니라 운전으로 여행을 다니는 것이 목적인데 말이죠.
그렇지만 이런 저를 조립/정비를 안하면 그것이 어찌 "운전자"냐 라고 말하시는 분들이 계실 수도 있습니다.
저는 운전에 집중하기 위해서 PaaS와 여러 관리형 서비스를 씁니다. :-)

해외의 사례지만, "개발자 1인 회사의 기술 스택" 포스팅도 참고해보세요. :-)

Just do it. 일단 해보시고 고민해보시고 경험치를 쌓아가보세요.

그것이 가장 빠른 길입니다.

화이팅입니다. :-)