탄력성, 고가용성 시스템 구축

송현아·2021년 9월 28일
0

Computer Science

목록 보기
5/5
post-thumbnail

조직에서 급격한 성장(수만 명의 사용자)이 발생한 경우 어떻게 해결해야 할까?

📌 고가용성 환경

고가용성은 "가용성이 높다"는 의미이며 하나의 시스템에서 장애 발생 시 클러스터 내의 다른 시스템으로 전이하여 서비스 중단을 최소화하는 기술입니다.

핵심 비즈니스 시스템은 고가용성 애플리케이션으로 배포해야 합니다. 이로 인해 일부 구성 요소에 장애가 발생해도 정상적으로 운영될 수 있습니다.

애플리케이션의 전반적인 가용성을 결정하는 세 가지 요소는 내결함성, 복구성 및 확장성입니다.

  • 내결함성

    애플리케이션 구성 요소의 내장된 중복성을 의미합니다.

  • 복구성

    재해 발생 후 서비스 복구와 관련된 프로세스, 정책 및 절차

  • 확장성

    애플리케이션의 설계 변경 없이 성장을 수용하는 능력

📌 탄력적인 인프라

탄력적인 인프라는 용량 요구사항이 변화함에 따라 지능적으로 확장 및 축소될 수 있습니다.

🔎 대표적인 상황

  • 트래픽 급증 시 웹 서버 수 증가

  • 트래픽이 줄어들 때 데이터베이스의 쓰기 용량 감소

  • 아키텍처 전반에 걸친 일상적인 수요 변동 처리

🔎 탄력성이 없다면?

클라우드의 가장 큰 장점 중 하나가 탄력성입니다. 이러한 탄력성이 없다면 일반적인 데이터 센터를 생각하면 됩니다. 일단 배포된 리소스는 일반적으로 필요 여부와 상관없이 실행되고, 사용할 필요가 없었던 용량에 대해서도 비용을 지불하게 됩니다. 또한 급하게 더 많은 용량이 필요한 경우에 용량 추가가 불가능 합니다.

  • 리소스 비용을 선불로 결제하고 해당 리소스가 수요에 적합하길 바람
  • 너무 많은 추가 리소스, 비용 낭비, 전기 소모

🔎 세 가지 유형의 탄력성

  • 시간 기반

    리소스가 사용되지 않을 경우에는 리소스를 끄기

  • 볼륨 기반

    수요 강도에 맞게 규모 조정

  • 예측 기반

    일일 및 주간 추세를 기반으로 향후 트래픽 예측

💻 인프라 모니터링

탄력적인 아키텍쳐를 생성하기 위해서는 인프라 모니터닝이 필수적입니다.

  • 리소스에 대한 지표를 수집하고 추적합니다.
  • 경보를 생성하고 알림을 전송할 수 있습니다.
  • 설정한 규칙에 따라 리소스의 용량 변화를 트리거 할 수 있습니다.

0개의 댓글