[AWS/Docker] AWS EC2 관련 기본 개념들 - Scale up/out

Hyo Kyun Lee·2022년 7월 20일
0

AWS/Docker

목록 보기
19/20

1-1. Scale up 개요

탄력적인 컴퓨터 수요 대응에 가장 적합한 방식으로, 말 그대로 컴퓨터 요청(수요)이 많아질 경우 해당 성능과 기능을 증가시키는 과정을 일컫는다.

1-2. 탄력적 수요 대응(scale up)

컴퓨터의 탄력적인 수요 및 요청을 대응하기 위해선 scale up 작업을 진행해야 한다. 이 경우 말 그대로 수요가 증가함에 따라 EC2 인스턴스의 규모 등이 향상되어 수요대응이 가능해진다.

1-3. Elastic IP

인스턴스는 껐다 켜면 IP주소가 반환되고 이를 대여하는 과정을 반복하여, 최초의 IP주소를 영구적으로 보관하지 않는다.

Scale up 시 해당 인스턴스를 이미지 파일로 freeze하고, 이를 다시 다른 유형/type의 인스턴스로 생성하기 때문에 Scale up을 할 때마다 IP주소를 바꿔야 하는 번거로움이 생긴다.

따라서 Elastic IP address를 설정하여, 특정 인스턴스의 IP주소를 고정할 수 있다.

1-4. Scale up process

이미지 파일로 만든후, 인스턴스를 다시 생성할 때 type을 상향 버전으로 재설정하여 scale을 상향하면 된다.

단 scale up 시 인스턴스를 이미지로 만드는 과정에서 인스턴스 작동이 중지되므로, 신중하게 scale up 상황을 판단할 필요가 있다.

인스턴스를 다시 생성한 후 기존의 탄력적 IP를 상향된 인스턴스에 반영하게 되면, scale up 과정이 완료된다.

2-1. Scale Out

Scale up의 기능 상향에 한계가 있을때, 여러 대의 컴퓨터를 구축하여 그 이상의 성능을 구현하는 방법이다.

보통 EC2 인스턴스와 application을 구축한다고 하면, 크게 아래와 같은 3가지 요소로 나뉜다.

이때 scale up으로도 감당할 수 없는 request로 인해 web server가 응답하지 않을 경우, scale out으로 병렬적인 처리가 이루어지도록 구성한다.

scale out을 진행한다면, 아래와 같이 컴퓨터를 분리하여 각 과정을 처리하도록 한다.

본 process의 Web server와 Middleware의 경우, 다른 컴퓨터의 인스턴스에게 정보를 요청한다.

이러한 과정이 추가되면서 복잡도가 늘어나고 성능저하가 유발될 수 있지만, 전체적인 처리과정에서는 더 빠르고 scalability가 향상된 효과를 얻을 수 있으므로 scale out을 활용한다.

최종적으로는 여러대의 컴퓨터를 동작하게 하여 scale out의 목적에 근접한 성능을 구현하도록 한다.

2-2. scale Out의 최종 process

Web server에 접속하는 것은 기본적으로 고정IP로 접속하기 때문에, scale out 과정이 다른 부분보다는 조금 특별하다.

DNS로 접속한 후(=주소입력), 해당 IP주소를 찾아갈때 web server를 병렬로 구축하여 처리하게 되면 동일 DNS에서라도 분산된 Web server를 거쳐 응답을 받을 수 있으므로 부하가 줄어든다.

이때 위와 같이 로드밸런서 과정을 거친다면, 웹서버 및 미들웨어로 향하는 요청을 적절하게 밸런싱할 수 있으므로 전체적인 부하도 줄이고 성능도 향상시킬 수 있는 scale out process를 구축할 수 있다.

3. 참고자료

생활코딩 - AWS 웹서비스 가입부터 활용까지
https://www.inflearn.com/course/aws-%EC%95%84%EB%A7%88%EC%A1%B4-%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4-%EA%B0%80%EC%9E%85%EB%B6%80%ED%84%B0-%ED%99%9C%EC%9A%A9%EA%B9%8C%EC%A7%80/unit/2912?tab=curriculum

0개의 댓글