공부

Chapter - 수평 확장

낑깡28 2023. 4. 20.

 

 

Auto Scaling Group

Auto Scaling은 미리 정해 놓은 규칙에 따라 워크로드(작업량)를 자동으로 확대 또는 축소할 수 있는 기술로 클라우드가 제공하는 탄력성에 의해 만들어지고, 사용자의 요구 수준을 반영할 수 있는 기술.

Auto Scaling을 이용하면 처리 요구량이 급등하는 시기, 즉 피크 워크로드에 맞춰 새 리소스를 자동으로 추가하고 환경설정하고, 처리 요구량이 줄어들면 해당 리소스를 감소시키기 때문에, 과잉 프로비전을 할 필요성이 사라짐.

 

프로비전(provision)

필요한 컴퓨팅 리소스들을 필요한 곳에 배치, 유휴 자원들을 다시 회수하는 일련의 작업들을 의미.

 

Auto Scaling의 장점

  • 동적 스케일링 : Auto Scaling의 가장 큰 장점은 사용자의 요구 수준에 따라 리소스를 동적으로 스케일링 할 수 있음. 스케일 업 할 수 있는 서버의 수에는 제한이 없고, 필요한 경우 서버 두 대에서 수백 ~ 수만 대의 서버로 즉시 스케일 업할 수 있음.
  • 로드 밸런싱 : Auto Scaling은 리소스를 동적으로 스케일업 혹은 스케일다운. 로드밸런서와 함께 사용하면, 다수의 EC2 인스턴스에게 워크로드를 효과적으로 분배할 수 있고, 다수의 AZ에 분포된 EC2 인스턴스에 대한 워크로드도 자동으로 분배하도록 설정할 수 있음. 따라서 사용자가 정의한 규칙에 따라 워크로드를 효과적으로 관리 가능.
  • 타겟 트래킹 : 사용자는 특정 타겟에 대해서만 Auto Scaling을 할 수 있으며, 사용자가 설정한 타겟에 맞춰 EC2 인스턴스의 수를 조정.
  • 헬스 체크와 서버 플릿 관리 : Auto Scaling을 이용하면 EC2 인스턴스의 헬스 체크 상태를 모니터링 할 수 있음. 헬스 체크를 하는 과정에서 특정 인스턴스의 문제가 감지되면, 자동으로 다른 인스턴스로 교체.

EC2 Auto Scaling 활용

Auto Scaling은 EC2 인스턴스 뿐만 아니라 다른 인스턴스와도 결합 가능하지만, EC2 사용자에게 가장 인기가 많은 서비스. EC2 Auto Scaling은 오직 EC2 서버라는 리소스만 대상으로 함.

 

시작 템플릿(Launch Configuration)

Auto Scaling으로 인스턴스를 확장 또는 축소하려면 어떤 서버를 사용할지 결정, 시작 템플릿을 통해서 가능하며, AMI 상세 정보, 인스턴스 타입, 키 페어, 시큐리티 그룹 등 인스턴스에 대한 모든 정보를 담고 있음.

 

Scaling 유형

  • 인스턴스 레벨 유지 : 기본 스케일링 계획으로도 부르며, 항상 실행 상태를 유지하고자 하는 인스턴스의 수를 지정할 수 있음.
  • 수동 스케일링 : 기존 Auto Scaling 그룹의 크기를 수동으로 변경할 수 있음. 사용자가 직접 콘솔이나, API, CLI 등을 이용해 수동으로 인스턴스를 추가 또는 삭제. 해당 방식은 추천하지 않는 방식.
  • 예측 스케일링 : 트래픽의 변화를 예측할 수 있고, 특정 시간대에 어느 정도의 트래픽이 증가하는지 패턴을 파악하고 있다면 일정별 스케일링을 사용하는 것이 좋음.
  • 적 스케일링 : 수요 변화에 대응하여 Auto Scaling 그룹의 용량을 조정하는 방법을 정의. 이 방식은 CloudWatch가 모니터링 하는 지표를 추적하여 경보 상태일 때 수행할 스케일링 규칙을 정함. 스케일링 정책을 정의 할 때는 항상 스케일 업과 스케일 다운 두 가지의 정책을 작성.

Elastic Load Balancing

로드 밸런싱이란?

로드 밸런서에는 동일한 서비스를 하는 다수의 서버가 등록되고 사용자로부터 서비스 요청이 오면 로드 밸런서가 받아 사용자별로 다수의 서버에 서비스 요청을 분산시켜 부하를 분산. 이러한 작동을 로드 밸런싱이라고 하며, 부하 분산이라고도 함. 이와 같은 방식의 서비스를 AWS에서도 제공하고 이를 Elastic Load Balancing 이라고 함. 

ELB란?

둘 이상의 가용 영역에서 EC2 인스턴스, 컨테이너, IP주소 등 여러 대상에 걸쳐 수신되는 트래픽을 자동으로 분산.

등록된 대상의 상태를 모니터링 하면서 상태가 양호한 대상으로만 트래픽을 라우팅. 

 

ELB의 장점

  • 고가용성 : ELB는 고가용성 아키텍처를 구현하는데 도움. 트래픽을 여러 AZ로 분산하여 하나의 AZ가 다운돼도 사용자의 애플리케이션은 문제 없이 실행 상태를 유지.
  • 탄력성 : ELB의 최대 장점은 자동적 확장성. 관리자는 인스턴스 추가 또는 삭제를 위한 어떤 수작업도 할 필요가 없고, 수동으로도 할일이 없음.
  • 안전성 : 통합 인증관리, SSL 복호화, 포트 포워딩 등 다수의 보안 기능을 제공. 현대 웹사이트 운영자는 웹 애플리케이션 레벨에도 암호화 기법을 적용하며, 다수의 보안 정책을 제공.
  • 높은 처리량 : ELB는 트래픽 증가를 처리할 수 있도록 설계, 초당 수백만 개의 요청을 로드밸런싱 가능. 갑작스럽고 변동이 심한 트래픽 패턴도 처리가능.

AZ : Availability Zone의 약자로, 하나 이상의 데이터 센터로 구성된 AWS 클라우드 인프라에서 물리적으로 분리된 지역.

SSL 복호화 : 암호화된 SSL 통신 데이터를 해독하여 원래의 평문 데이터를 복원하는 과정.포트 포워딩 : 인터넷에서 특정 포트로 들어오는 데이터를 로컬 네트워크 내부에서 다른 포트로 전달하는 기술.

 

작동 방식

로드 밸런서는 클라이언트에 대한 단일 접점으로, 클라이언트에서 오는 트래픽을 허용하고, 하나 이상의 기용 영역에서 등록된 대상(EC2 인스턴스)으로 요청을 라우팅. 또한 비정상 타겟을 감지하면, 해당 타겟으로 트래픽 라우팅을 중단. 다시 다음 타겟이 정상으로 감지되면 트래픽을 해당 타겟으로 다시 라우팅.

 

라우팅(Routing) : 패킷(Packet)을 목적지까지 전달하는 네트워크에서의 데이터 전송 과정.

 

리스너는 구성한 프로토콜 및 포트를 사용하여 클라이언트를 연결 요청을 확인. 리스너에 대해 정의한 규칙에 따라 로드 밸런서가 등록된 타겟으로 요청을 라우팅하는 방법이 결정됨.

 

각 타켓 그룹은 지정한 프로토콜과 포트 번호를 사용하여 EC2 인스턴스 같은 하나 이상의 동록된 타겟으로 요청을 라우팅.

즉 여러 대상 그룹에 타겟을 등록 가능. 

댓글