실무를 통해 배우는 DevOps와 AWS: 서비스 구축 및 스케일링
·2016.11.14 17:00
핵심 내용
Repl.it의 코드 실행 서비스를 구축하며 경험한 AWS 기반의 서비스 스케일링과 DevOps 자동화 과정을 다룬다.
자세히 보기
Repl.it의 코드 실행 서비스를 구축하며 겪은 실무 중심의 AWS 인프라 확장 과정을 공유한다. 초기에는 Go와 Docker를 사용하여 간단한 서비스를 구축했다.
처음에는 단일 EC2 인스턴스에 직접 접속하여 코드를 배포하는 방식을 사용했다. 하지만 서비스 규모가 커지면서 OutOfMemoryError가 발생하고, 단일 인스턴스가 **단일 장애 지점(SPOF)**이 되는 문제에 직면했다.
이를 해결하기 위해 **수평적 확장(Horizontal Scaling)**을 도입했다. AMI를 통해 사전 구성된 인스턴스 이미지를 만들고, **AWS Elastic Load Balancer(ELB)**를 사용하여 트래픽을 분산했다. 특히 Websocket 연결을 안정적으로 처리하기 위해 Application Load Balancer(ALB) 사용을 권장한다.
서비스가 성장함에 따라 하드웨어 결함이나 인스턴스 교체 등의 문제가 빈번해졌고, 수동 관리는 한계에 부딪혔다. 이를 극복하기 위해 CodeDeploy, EC2 Launch Configuration, EC2 AutoScaling group 등을 활용한 자동화를 단계적으로 도입했다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.