Cloudflare를 사용하여 GCP와 AWS 간에 사이트를 로드 밸런싱하는 방법은 무엇입니까?

Cloudflare 로드 밸런서(LB)를 사용하여 AWS(Amazon Web Services)와 GCP(Google Cloud Platform) 간에 트래픽을 분산하는 방법을 알아봅니다.

대부분의 웹 애플리케이션은 동일한 데이터 센터에 있는 서버/서비스 간에 로드 밸런싱을 필요로 하거나 수행합니다.

그러나 전 세계에서 항상 가동 시간이 필요한 미션 크리티컬 애플리케이션을 실행하는 경우 클라우드 로드 밸런서가 필요합니다.

가동 시간뿐만 아니라 다른 많은 요인이 있을 수 있습니다.

전:

  • 액티브-패시브 또는 액티브-액티브 데이터 센터 요구 사항
  • 재난 복구 계획
  • 가장 가까운 위치의 요청을 처리하기 위해 여러 데이터 센터 활용
  • 규정 준수

클라우드플레어 트래픽을 여러 데이터 센터로 라우팅하는 데 도움이 되는 로컬 및 글로벌 로드 밸런싱 옵션을 제공합니다.

Cloudflare LB 기능 중 일부는 다음과 같습니다.

  • 상태 확인 기능이 내장되어 있어 결함이 있는 서버를 신속하게 중단할 수 있습니다.
  • 상태 확인 실패 시 장애 조치 트리거
  • 가장 가까운 서버로 트래픽을 라우팅하여 대기 시간 감소
  • DNS 수준 및 HTTP(S), TCP 및 UDP 지원
  • 요청이 동일한 서버로 이동하도록 하는 세션 고정성

Cloudflare 대시보드 또는 API를 통해 전체를 구성할 수 있습니다.

기술적으로 다음 지침은 Azure와 같은 모든 클라우드 플랫폼의 부하 분산에 적용됩니다. 디지털오션Alibaba 등. 하지만 저는 데모용으로 GCP와 AWS를 선택했습니다.

AWS 및 GCP 설정 세부정보

다음을 사용하여 GCP 및 AWS 플랫폼에서 하나의 서버를 프로비저닝했습니다.

  • Nginx 설치
  • 페이지가 해당 서버에서 제공되고 있음을 보여주기 위해 사용자 정의 텍스트가 있는 index.html을 추가했습니다.
  • Nginx를 시작했으며 두 서버에서 페이지에 액세스할 수 있습니다.

Cloudflare로 이동하여 LB를 구현해 보겠습니다.

Cloudflare 로드 밸런서 활성화

이 실습에서 사용할 도메인(bloggerflare.com)이 하나 있습니다.

참고: Cloudflare의 로드 밸런서는 무료가 아니며, 가격 월 $5부터 시작합니다.

  2020년에 검토된 12가지 최고의 네트워크 모니터링 소프트웨어 및 도구

이미 Cloudflare 계정이 있다고 가정합니다. 그렇지 않은 경우 이전 게시물에서 설명한 대로 도메인을 만들고 추가할 수 있습니다.

  • Cloudflare에 로그인하고 밸런싱을 활성화할 도메인을 선택합니다.
  • 트래픽 탭으로 이동하여 부하 분산을 활성화합니다.

  • 요구 사항에 따라 기능을 구성합니다. 최소한의 구성으로 진행하고 있습니다.

요청을 가장 가까운 위치로 리디렉션하려면 지리적 라우팅을 활성화해야 합니다.

  • 구독을 확인하고 활성화합니다.

보시다시피 2개의 원본 서버와 1분의 상태 확인 간격으로 월 5달러부터 시작할 수 있습니다.

인프라는 이제 매우 저렴합니다. 5년 전, 5달러에 클라우드 로드 밸런서를 상상할 수 있습니까?

이는 Cloudflare LB가 활성화되어 구성할 준비가 되었음을 나타냅니다.

Cloudflare LB 만들기

구독을 확인하고 트래픽 페이지로 돌아가는 데 몇 초 정도 걸립니다.

  • 로드 밸런서 생성 클릭

  • 밸런싱을 설정할 도메인을 입력합니다.
  • 세션 고정성을 활성화해야 하는 경우 세션 선호도를 확장하고 Cloudflare 쿠키별을 선택합니다.

  • 풀 이름을 입력하면 원본(트래픽이 리디렉션되어야 하는 서버)입니다.

  • 다음으로 상태 확인을 구성할 수 있습니다.

건강검진은 필수입니다. Cloudflare는 상태 확인이 실패하면 결함이 있는 오리진으로의 트래픽 전송을 중지합니다.

  • 오리진이 포트 80에서 수신 대기 중인 경우 443 포트에 대해 HTTP 또는 https를 선택할 수 있습니다.

Cloudflare를 사용하면 다음과 같은 고급 상태 확인 설정을 구성할 수도 있습니다.

  • GET 또는 HEAD 메서드
  • 예상되는 HTTP 상태 코드
  • 응답 본문의 콘텐츠 유효성 검사
  • 정상 또는 비정상으로 간주되기 전의 시도 횟수
  • 헤더 이름 유효성 검사

마지막으로 구성을 저장하고 배포합니다.

  • LB가 상태 확인을 수행하고 몇 초 후에 상태가 정상임을 확인할 수 있습니다.

좋습니다. Cloudflare 로드 밸런서가 전 세계의 트래픽을 수락하고 구성된 원본 서버로 전달할 준비가 되었다는 결론입니다.

로드 밸런서 테스트

작동하는지 확인하기 위해 기본 테스트를 수행해 보겠습니다.

  • 먼저 도메인 액세스를 시도합니다.

대박!

LB는 Google Cloud VM에 요청을 전달하고 응답을 받았습니다. Nginx에서 요청을 볼 수 있습니다.

162.158.167.174 - - [19/Dec/2017:10:25:41 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36"
  • GCP에서 Nginx를 종료하고 페이지에 다시 액세스하겠습니다.
  스케치 파일에 메모를 추가하는 방법

  • 그리고 여기 있습니다. 요청된 페이지는 AWS에서 제공됩니다.

LB가 GCP 풀 멤버를 중단한 것을 볼 수 있습니다.

기본적으로 Cloudflare IP는 Nginx 액세스 로그에 표시되며 클라이언트 IP를 복원해야 하는 경우 이 가이드를 확인할 수 있습니다.

결론

Cloudflare 로드 밸런서를 구현하는 것은 간단하며 15분 이내에 시작할 수 있습니다. 여러 데이터 센터 또는 원본 서버 간의 고가용성을 찾고 있다면 작동 방식을 확인하십시오.

기사를 재미있게 읽었습니까? 세상과 함께 나누는 건 어떨까요?