AWS

Aurora 의 기능, 장애 조치, 스토리지, 가용영역, 인스턴스 접속, 작동

박현국 2024. 10. 15. 23:47
Aurora
  • Postgres 및 MySQL 과 호환되도록 만들었다. (성능 짱)
  • 클라우드에 최적화 되어 있으며, RDS 의 MySQL 보다 5배 높은 성능과, Postgres 보다 3배 높은 성능을 가지고 있다.
  • Aurora 스토리지 : 자동 확장 10GB -> 12TB 까지 커진다.
    -> DB나 SysOps 로써 저장 디스크를 신경 쓰지 않아도 자동으로 커진다.
  • 읽기 전용 복제본의 경우 15개의 복제본을 둘 수 있다. 
    • MySQL 5개만 가능했다.
    • 복제 속도도 훨씬 빠르다.
  • Aurora 장애 조치는 즉각적이다.
    • 다중 AZ 나 MySQL RDS 보다 훨씬 빠르다.
    • 클라우드 네이티브이므로 가용성이 높다.
    • 비용은 RDS 에 비해 20% 높지만, 스케일링 측면에서 훨씬 더 효율적이다. -> 따라서 오히려 비용을 절감할 수 있다.
  • Aurora 스토리지 측면에서는 여러분이 3 AZ에 걸쳐 무언가를 기록할 때 마다 6개의 사본을 저장한다.
    • 쓰기에는 6개 사본 중 4개만 있으면 된다. -> 이는 AZ 하나가 작동하지 않아도 괜찮음을 뜻한다.
    • 읽기에는 6개 사본 중 3개만 있으면 된다. -> 즉, 읽기 가용성이 높다.
    • 자가 복구 과정이 있다. -> 일부 데이터가 손상되거나 문제가 있으면 백엔드에서 P2P 복제를 통한 자가 복구가 진행된다. + 단일 볼륨에 의존하지 않고 수 백 개의 볼륨을 사용한다. --> 리스크를 크게 감소 시켜준다.
    • ex) 3개의 AZ가 있고 공유 볼륨(로직 볼륨) 이 있고,  복제, 자가 복구, 자동 확장 기능을 수행한다.
      데이터를 많이 쓸 수록 3 AZ 에 6개의 사본이 생기며, 각기 다른 볼륨에 기록되어, 스트라이프(Striped) 형식으로 되어 매우 잘 작동한다. 
  • Aurora는 RDS 의 다중 AZ 와 유사하다.
    • 쓰기를 받는 인스턴스는 하나 뿐이다. -> Aurora 에도 마스터가 존재하고 여기서 쓰기를 받게 된다.
    • 마스터가 작동하지 않으면 평균 30초 이내로 장애 조치가 시작된다. -> 장애 조치가 매우 빠르다.
    • 마스터 외에 읽기를 제공하는 읽기 전용 복제본은 15개까지 둘 수 있다. -> 복제본을 많이 두고 읽기 워크로드를 스케일링할 수 있다. -> 마스터에 문제가 생기면 읽기 전용 복제본 중 하나가 마스터가 되어 대체한다.
    • 즉, RDS 와는 작동 방식이 꽤 다르다고 할 수 있다. -> 하지만, 기본적으로 마스터가 하나인 건 동일하다.
    • 이 복제제본들은 리전 간 복제를 지원한다. -> 마스터는 하나고, 복제본은 여럿이며 스토리지가 복제된다. 작은 블록 단위로 자가 복구 또는 확장이 일어난다.

Auroa az 예시

 

  • Aurora 에서 클라이언트가 있을 때 수 많은  인스턴스와 어떻게 접속할까?
    • 공유 볼륨은 10GB -> 128TB 까지 자동으로 확장된다.
    • 스토리지에 쓰는 것은 마스터만이 가능하다. 
    • 따라서 마스터가 바뀌거나 장애 조치가 실행될 수 있으므로, Aurora 에서는 Writer 엔드포인트를 제공한다.
      -> Writer 엔드포인트는 DNS 이름으로 항상 마스터를 가리킨다.
      -> 따라서 장애 조치 후에도 클라이언트는 Writer 엔드포인트와 상호작용하게 되며, 올바른 인스턴스로 자동으로 리다이렉트된다.
    • 자동 스케일링을 설정해서 항상 적절한 수의 읽기 전용 복제본이 존재하도록 할 수 있다.
    • 자동 스케일링이 켜져 있는 경우 복제본이 어디에 있고, URL 은 무엇이고 어떻게 연결하는지 파악하기 어려울 수 도 있다. 
      --> 이를 위한 기능이 바로 Reader 엔드포인트이다.
    • Reader 엔드포인트는 Writer 엔드포인트와 정확히 같은 기능을 한다. -> 연결 로드 밸런싱에 도움을 준다. 
    • 모든 읽기 전용 복제본과 자동으로 연결되어 클라이언트가 리더 엔드포인트에 연결될 때마다 읽기 전용 복제본 중 하나로 연결되며 이런 방식으로 로드 밸런싱을 도와준다.
    • 로드 밸런싱이 문장 레벨이 아닌 연결 레벨에서 일어난다는 것은 기억해야한다.

Aurora 인스턴스 접속 예시

 

 

  • Aurora 작동하는 방법
    • 라이터 엔드포인트와 리더 엔드포인트가 있다. + 자동 스케일링, 자동 확장되는 공유 스토리지 볼륨도 있다.
    • 자동 장애 조치, 백업 및 복구

      격리 및 보안, 산업 규정 준수

      자동 스케일링을 통한 버튼식 스케일링 제로 다운타임 자동 패치 설치 등

      이 모든 일이 실제로 백엔드에서 일어난다. 
      + 고급 모니터링, 통상 유지 관리 등 모든 작업이 이루어지며, 
      + 백트랙 (과거 어떤 시점의 데이터로도 복원할 수 있게 해준다.) 을 사용하여 백업에 의존하지 않으며 다른 방법을 사용한다.