[ELB 및 ASG] 고가용성 및 스케일링성

728x90

고가용성 및 스케일링성

확장성이란느 것 애플리케이션이 더 큰 부하를 감당할 수 있도록 적응하는 것을 뜻한다.

수직적 확장성과 수평적 확정성(탄력성) 이 존재한다.

확정성과 고가용성은 연결되어 있지만 의미는 서로 다르다.

수직적 확장

수직적 확장이란 하드웨어 자체를 업그레이드 하는 것이다. 예를 들어 데이터베이스(RDS, Elastic Cache)나 비분산 시스템을 사용하면서 하드웨어 자체에 한계를 느껴, t2.micro 인스턴스 유형에서 t2.large 로 인스턴스를 업그레이드하는 것, 이게 수직적 확장이다.

아래처럼 체급 자체를 키워버리는 것..

수평적 확장

수평적 확장이란 인스턴스의 갯수를 증가시키는 방법이다. 이런 방식은 분산 시스템이란 것을 알 수 있다.

일반적으로 웹 애플리케이션을 사용할 때 주로 쓰는 방식이다. 하지만, 모든 앱이 분산 시스템인 것은 아니다. 단지, 수평적 확장 방법이 AWS 에선 클릭 몇 번으로 이루어지기 때문에 많이 사용하는 것이다.

고가용성

보통 수평적 확장과 비슷한 개념이다.

두개의 가용 영역에서 인스턴스가 실행된다. 이 말인즉슨, 데이터 센터 a 가 재해 상황에 의해 손실이 발생해도 데이터 센터 b 에 인스턴스가 있기 때문에 정상적으로 작동할 수 있다.

고가용성의 목표는 데이터 손실에서 살아남을 수 있도록 하는 것이다.

하나의 데이터 센터가 작동되지 않더라도 인스턴스는 다른 가용 영역에 있기에 작동되는 것이다.


수직적 확장을 통해 매우 작은 인스턴스들의 크기를 키울 수 있고, 수평적 확장을 통해 인스턴스의 숫자를 증가시킬 수 있다. AWS 에서는 이것을 스케일 아웃이나 스케일 인으로 부른다.

스케일 아웃은 인스턴스의 숫자가 증가하는 것이고 스케일 인은 인스턴스 숫자가 줄어드는 것이다.

이런 수평적 방식은 다른 확장 그룹이나 로드 밸런서에도 사용된다.

마지막으로 고가용성은 multi AZ 에서 같은 앱의 같은 인스턴스를 작동할 때 자동 확장 그룹이나, 사용가능한 multi AZ 를 가진 로드 밸런서에서 사용한다.

728x90