aws가 제공해주는 자동 scale out, scale in 기능 (scale up도 가능하지만 default는 scale out임)
설정해놓은 트래픽 이상이면 scale out시켜주고, 트래픽 이하이면 scale in 해준다.
서버 비용을 아끼기 위한 기능이라고 생각
ELB와 cloud watch를 포함하고, cloud watch에서 감시하다가 설정해놓은 일정 트래픽(메모리 사용량) 이상 몰리면, 등록해놓은 Launch Configuration으로 새로운 인스턴스를 만들고 실행하여 로드밸런서에 연결하는 식으로 scale out이 된다.
마찬가지로 일정 트래픽 이하로 떨어트리면 정책에 따라 인스턴스를 줄여가며(scale in) 서버 비용을 아낄수 있다.
aws - cloud watch
aws의 실행중인 인스턴스 상태를 (트래픽 등) 감시해주는 서비스
마치 자동차의 속도계와 같음
aws 리소스를 모니터링
기본으로 제공해주는 메트릭
직접 생성할 수 있는 custom metric 도 볼 수 있다고 한다.
ELB
EC2와 연결해서 사용하는 로드밸런서
사용자의 트래픽을 멀티AZ의 인스턴스들에게 분산 (따라서 리전 서비스임)
L4, L7 두 종류가 있음
ACM 서비스를 통해 무료 인증서 발급 및 연결 가능(즉, 손쉽게 https 지원이 가능해짐)
Launch Configuration
AMI에다가 인스턴스를 실행할 메타데이터들이 더해진 것이 Launch Configuration
Launch Configuration으로 바로 인스턴스 실행 가능
오토스케일링 그룹에 하나 이상의 런치컨피규레이션을 등록할 수 있음
블루 그린 디플로이먼트
서버를 죽이지 않고 점진적으로 배포하는 것을 의미하며 blue는 구버전, green은 신버전을 의미
오토 스케일링 그룹에 new 버전에 해당하는 launch configuration을 등록 후 선택해줌
기존에 돌고 있던 인스턴스를 죽이면 새로 등록한 launch config로 실행됨
또는 트래픽이 줄어 auto scale in 할때 old 버전부터 없어지게 설정하여, 다음 scale out부터는 new 버전이 실행되게 하면서 점진적 배포 가능
최근에 만든 인스턴스부터 줄어들게 설정할 수도 있다. 주로 안정성을 중시할때 이렇게 설정함 (수동으로 죽이기 전까지 old를 남겨놓기 위하여
new 버전 또는 old 버전이 동시에 존재하고 있기 때문에 점진적 배포가 가능함
new 버전을 점진적으로 배포하다가 new 버전에 문제가 없다 -> old 버전의 인스턴스를 모두 중지하여 new 버전으로 완전 배포할 수 있다.
느낌
네이버, 카카오 같이 동접자가 엄청나게 많은 서비스는 도대체 어떻게 유지될까 궁금했었다.
그런 궁금증이 해결되지 않아서 항상 궁금했었는데, 이렇게 원리를 알게되니까 너무 개운하다.