ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] Global Accelerator
    AWS 2023. 1. 13. 20:40

    Global Accelerator

    AWS의 글로벌 네트워크를 통해, 사용자에서 애플리케이션으로 이어진 경로를 최적화하여 트래픽 성능을 개선하는 기술


    [실습 목표]

     

    시드니와 상파울루에 구성된 웹 서버에 대해, Global Accelerator을 통해 연결하고 다양한 검증을 수행


    1. 기본 환경 구성

    CloudFormation으로 시드니, 상파울루 인프라 구성한 아키텍처

    [#1. 시드니 기본 인프라 구성]

     

    CloudFormation 배포

    (파일 위치 : 구글 드라이브 -> GA)

     

    [#2. 상파울루 기본 인프라 구성]

     

    CloudFormation 배포

    (파일 위치 : 구글 드라이브 -> GA)

     

    [#3. 서울 기본 인프라 구성]

     

    VPC, 서브넷, 라우팅테이블, 인터넷 게이트웨이 등등 생성

    서울리전 EC2 추가 수동생성 후 연결

     


    1-1. 기본 환경 검증

    서울 EC2 인스턴스에서 진행

     

    [시드니 EC2 인스턴스 통신 확인 (ALB)]

    시드니 ALB DNS 복사 후, curl로 통신 확인

     

     

    [상파울루 EC2 인스턴스 통신 확인 (ALB)]

    현재까진, 통신 흐름은 여러 ISP 네트워크를 거쳐 통신중이다. (Global Accelerator 아닌 상태)


     

    2. Global Accelerator 생성

    최종 아키텍처

     

    액셀러레이터 이름 : 원하는 이름으로 지정

    리스너 추가 : 포트 80 / 프로토콜 TCP

    엔드포인트 그룹 추가

     

    ap-southeast-2 (시드니)

    sa-east-1 (상파울루)

    엔드포인트 그룹 : ap-southeast-2 (시드니)에는 / 엔드포인트 유형 : ALB

    엔드포인트 그룹 : sa-east-1 (상파울루) 에는

    엔드포인트 유형 : EC2

    생성된 EC2-1, EC2-2를 엔드포인트로 각각 지정

    Global Accelerator 완성


    2. Traffic Dial과 Weight를 통한 트래픽 조정

    Global Accelerator의 Traffic Dial과 Weight 값을 조절하여 트래픽 흐름을 제어할 수 있다.

    for i in {1..20};do curl -s -q 13.125.140.136; done|sort|uniq -|sort -nr

    우선 트래픽 제어 검증에 앞서 기본적으로 어떻게 통신 되는지 확인해보자

     


    2-1. Traffic Dial을 통한 트래픽 조정 검증

     

    [시드니 리전 엔드포인트 그룹의 Traffic Dial 값 조정 (100 -> 50)]

    Global Accelerator - 리스너 ID 클릭

    엔드포인트 그룹 중 시드니(ap-southeast-2) 클릭

    엔드포인트 ID 클릭 후, 편집 클릭

    가중치를 50으로 변경해준다 (기존 100 -> 변경 50)

    트래픽 다이얼은 0으로 변경


    2-2. Weight을 통한 트래픽 조정 검증

     

    [상파울루 리젼 엔드포인트 그룹의 Weight 값 조정 (128 -> 64)]

    * weight값 : 엔드포인트에 대해 전달하는 비중 값

     

    액셀레이터 -> 리스너 ID -> 상파울루 클릭

    이후 엔드포인트 그룹 ID (sa-east-1) -> 편집 클릭

     가중치 64로 변경

     

    Seoul-EC2에서 상파울루 리전 테스트

     

    [상파울루 리전 엔드포인트 그룹의 Weight 값 조정 (64 -> 0)]

     


    3. Global Accelrator의 Failover 검증

     

    검증 전, 시즈니 리전 엔드포인트 그룹의 Traffic Dial 값을

    다시 기본값 100으로 변경하고 시작

     

    최초 상태인 시드니 리전 엔드포인트 그룹에만 트래픽이 전달되고 있음

     

    [시즈니 리전의 EC2 인스턴스 중지]

     

    2대 다 중지시킨다

     

    이후 시드니 라인 엔드포인트의 ALB 상태를 확인해보면 unhealthy임

    결과값을 확인해 보면, 상파울루 웹 서버로 모든 트래픽을 전달하게 됨

    현재 시드니 리전 엔드포인트 상태가 비정상이기 때문

    [시드니 리전의 EC2 인스턴스 시작]

     

    중지 시켰던 인스턴스 2대를 다시 재가동 시키고,

    결과값을 다시 확인해보면, 시드니 웹서버로 부하 분산하여 모든 트래픽을 전달함

    시드니 리전 엔드포인트의 상태가 정상으로 돌아왔기 때문!


    4. 결론

     

    이처럼 Global Accelerator은 주기적인 상태 검사를 통해, 정상 상태의 엔드포인트로 트래픽을 전달하며

    비정상 상태가 되면 최적의 다른 엔드포인트로 전달한다.

     

    이렇게 Global Accelerator을 통해 Failover 환경을 구성할 수 있다.

    [참고글]

     

    1. 따라하며 배우는 AWS 네트워크 입문

    2. https://assu10.github.io/dev/2022/12/03/load-balancing-4/

    'AWS' 카테고리의 다른 글

    [Azure] Application Gateway  (0) 2023.03.16
    [AWS] VPC 피어링  (0) 2023.01.14
    [AWS] CloudFront를 통한 CDN서비스  (0) 2023.01.12
    [AWS] Route 53  (0) 2023.01.12
    [AWS] 로드밸런싱 - NLB를 통한 로드밸런싱  (0) 2023.01.12
Designed by Tistory.