ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HA(High Availability)란?
    Data Engineering/분류하기 애매한 것들 2022. 12. 3. 21:24
    728x90
    반응형

     

     EKS 쓰면서 HA라는 용어를 많이 읽었는데 난 처음에 무슨 기술 이름인 줄 알았다. 알고보니 High Availability의 줄임말이었다. Full Words를 알고 나니 왜 EKS를 볼 때 많이 보였는지 알 것 같았다.

     

     High Availability, 한국어로 고가용성이란 이상적으로는 영원하다 할 수 있는 긴 시간동안 계속해서 시스템이 운영될 수 있는 것을 의미한다. 쉽게 말해, 가용성이 높은 서버라는 것은 서버가 "가용"할 수 있는 수준이 "높다", 즉, 오랫동안 안 죽고 살아있다는 것을 의미한다. 고가용성이 매우 높으면 Five9 (99.999%)로 표현되기도 한다고 한다 (첨들어봄..)

     

     현대의 시스템은 하나의 소프트웨어나 네트워크로 돌아가는 경우가 거의 없다. 따라서 연결되어 있는 모든 컴포턴트의 가용성이 높아야만 전체 시스템의 가용성이 높아지기 때문에, 고려해야하는 범위가 넓다. 소프트웨어 하나 뿐 아니라 네트워크, 하드웨어까지 범위에 넣어야하며, 해당 부분이 장애가 났을 때 전체가 장애가 나지 않도록 하는 방법까지 설계해야한다. 이를 위해 하나를 여러 개로 쪼개는 클러스터링, 로드발랜싱, RAID(하드디스크에 사용되는 기술이라고 한다)과 목표는 조금 다르지만 달성하는 결과는 같은 오토 스케일링과 같은 기술이 사용된다.

     

     HA를 찾아보면 이중화(Duplex, Duplicate)라는 용어가 함께 많이 등장하는데, 내용을 보면 blue green 배포랑 비슷한 것 같다. 서버 두 대를 두고 하나가 죽으면 다른 하나를 사용함으로써 서버가 죽은 시간을 최소화하는 방법이다. 다만 Blue green은 두 개의 서버를 한 번에 배포해서 무중단을 구현하고, 이중화는 하나가 죽으면 그 때 새로운 서버를 작동시켜서 어쨌든 중단되는 시간은 발생하는 것 같다.

     

     클러스터링은 하나의 무언가를(하드웨어, 소프트웨어 무엇이든) 여러 개인 것 처럼 나누어서 사용하는 건데, 글로 이해하기 정말 어려운 개념이다. 나도 그랬고, 아직도 정확하게 이해했다고 말할 수 없는 것 같다. 예를 들어, 서버 한 대가 한 번에 처리할 수 있는 트래픽은 제한이 있다. 그렇기 때문에 한 번에 사용자가 몰리는 웹사이트는 다운이 되거나 속도가 느린 거다. 그래서 한 서버에서 처리할 수 있는 트래픽 보다 많은 트래픽을 받기 위해 같은 웹 서버를 포트 100개에다가 연다면 이 100개의 포트가 하나의 웹 서버 클러스터가 되는거고, 포트 하나는 서비스 마다 다르겠지만 보통 노드라고 부른다.

     

     그래서 쿠버네티스에서 보면 하나의 클러스터를 생성했을 때 클러스터 안에 VM이 들어가고(EKS를 띄우면 EC2가 이 VM의 역할을 함), VM위에 POD가 배포가 된다. POD안에는 컨테이너들이 동작을 하게된다 (갑자기 HA얘기하다 K8S얘기..)

    대충 이런 식.. 이 안에 VM이 들어가고 또 namespace가 들어가긴 하지만

    728x90
    반응형

    댓글