21년 6월 7일 - AWS 오토 스케일링

한 일

  • aws - auto scailing
    • 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 버전으로 완전 배포할 수 있다.

느낌

  • 네이버, 카카오 같이 동접자가 엄청나게 많은 서비스는 도대체 어떻게 유지될까 궁금했었다.
  • 그런 궁금증이 해결되지 않아서 항상 궁금했었는데, 이렇게 원리를 알게되니까 너무 개운하다.
  • 요즘 기분이 너무 좋다 허허

할 일

  • 코드스쿼드 미션하기
  • 프로그래머스 문제 풀기
  • 면접 준비