AWS(Amazon Web Service)

[AWS] Route 53 - Health Checks

yunseohhe 2024. 10. 18. 09:19

Route 53 - Health Checks(상태 확인)

  • 상태 확인은 주로 공용 리소스에 대한 상태를 확인하는 방법이다.
  • 상태 확인 종류
    (밑의 종류의 상태 확인들은 각자의 매트릭을 사용하는데 CloudWatch의 지표에서도 확인이 가능하다.)
      - 공용 엔드 포인트를 모니터링
          : 애플리케이션, 서버, 혹은 다른 AWS 리소스가 될 수 있다.
      - 다른 상태 확인을 모니터링
          : 계산된 상태 확인이라고 불린다.
      - CloudWatch 경보의 상태를 모니터링
          : 제어가 쉽고 개인 리소스들에 아주 유용하다.

(출처 : 구글이미지)

  • 서로 다른 두 지역에 각 하나씩의 로드 밸런서가 있고, 둘은 모두 공용 로드 밸런서이고 그 둘의 뒤에서 애플리케이션이 작동중이다. 그리고 다중 지역 셋업이고, 지역 레벨에서 고가용성을 원하는 상황이다.
    Route53을 이용해 DNS를 만들어보자.
      : 유저가 mydomain.com과 같은 URL을 이용해 접속하면 해당 유저는 가장 가까운 로드 밸런서로 연결된다. 지연 시간 기반 레코드의 경우이다. 하지만 만약, 한 지역이 사용 불가능 상태가 되면 당연히 그곳으로는 유저를 보내고 싶지 않다. 그러기 위해서 Route53에서 상태 확인을 생성해야 한다.
  • us-east-1의 인스턴스에 상태 확인을 만들고, eu-west-1의 인스턴스에도 상태 확인을 생성한다.
    이 두 개의 상태 확인을 Route53의 레코드와 연결할 수 있게 된다.
    = 이는 DNS의 장애 조치를 자동화하기 위한 작업이다.

Health Checks - Monitor an Endpoint
(상태확인이 특정 엔드포인트에 어떻게 작동하는지)

  • 상태확인을 한다고 하면, 전 세계로부터 15개 정도의 상태 확인이 온다.
      - 사용자가 루트를 설정한 공용 엔드 포인트로 모두 요청을 보낸다.
      - 200 OK 코드 또는 우리가 정의한 코드를 받으면 리소스는 정상으로 간주된다.
      - 전세계에서 온 15개의 상태 확인이 엔드 포인트의 상태를 확인하고 임계값을 정상 혹은 비정상으로 설정한다. 
      - 간격도 설정이 가능하다.
          : 30초마다 정기적 확인
          : 10초마다 정기적 확인(비용이 더 들고, 빠른 상태확인 가능)
  • HTTP, HTTPS, TCP 등 많은 프로토콜 지원한다.
  • 18% 이상의 상태 확인이 엔드 포인트를 정상이라고 판단하면, Route53도 이를 정상이라고 간주한다. 그렇지 않다면 비정상인 것으로 인식한다. 
  • 상태 확인에 사용될 위치도 선택할 수 있다.
  • 상태 확인은 로드 밸런서로부터 2xx나 3xx의 코드를 받아야만 통과가 된다.
  • 상태 확인의 기능 중
      - 텍스트 기반 응답일 경우, 상태 확인은 응답의 처음 5,120바이트를 확인한다. 응답 자체에 해당 텍스트가 있는지 보기 위해서이다.
  • 네트워크 관점에서 아주 중요한 부분으로 상태 확인의 작동이 가능하려면 상태 확인이 사용의 애플리케이션 밸런서나 엔드 포인트에 접근이 가능해야 한다. 따라서, Route53의 상태 확인 IP 주소 범위에서 들어오는 모든 요청을 허용해야 한다. 

(출처 : 구글이미지)

 

 

Route 53 - Calculated Health Checks

  • 상태 확인의 또 다른 유형은 계산된 상태 확인으로 여러 개의 상태 확인 결과를 하나로 합쳐주는 기능이다.
      - 밑의 이미지처럼 Route 53에 EC2 인스턴스가 세 개 있고, 상태 확인을 세 개 생성할 수 있다.
      - 이들은 EC2 인스턴스를 하나씩 확인해 주는 하위 상태 확인(Child)이 될 것이다.
  • 이 상태 확인들을 모두 합치기 위한 조건은 OR와 AND 또는 NOT이다.
  • 하위 상태 확인을 256개까지 모니터링할 수 있고, 상위 상태 확인이 통과하기 위해 몇 개의 상태 확인을 통과해야 하는지도 지정할 수 있다.
      - 이를 사용하는 경우로는 예를 들어, 상태 확인이 실패하는 일 없이 상위 상태 확인이 웹사이트를 관리 유지하도록 하는 경우이다.

(출처 : 구글이미지)

 

Health Checks - Private Hosted Zones

  • 개인의 리소스를 모니터링하는 것은 모든 Route 53의 상태 확인이 공용 웹에 있기 때문에 VPC의 외부에 있다.
  • 개인 엔드 포인트에 접근이 불가능하다.
      - 개인 VPC나 온프레미스 리소스인 경우
      - CloudWatch 지표를 만들어 CloudWatch 알림을 할당하는 식으로 이 문제를 해결할 수 있다.
           : CloudWatch 메트릭을 이용해 개인 서브넷 안에 있는 EC2 인스턴스를 모니터 하는 것이다.
           : 메트릭이 침해되는 경우, CloudWatch 알림을 생성하게 된다. 그리고 알림이 ALARM 상태가 되면 상태 확인은 자동으로 비정상이 된다. → 이렇게 하면 개인 리소스에 대한 상태 확인을 만든 것이나 다름이 없다.+

(출처 : 구글이미지)