본문 바로가기
[AWS-FRF]/Global Accelerator

[중요][AWS] AWS Global Accelerator를 사용해서 애플리케이션 성능 개선하기!!

by METAVERSE STORY 2024. 8. 14.
반응형
728x170

 

 

 

Global Accelarator를 사용하여 다른 리전에서 접속하는 것을 확인해보도록 하겠다.

 

보통은 일반적으로 동적 컨텐츠를 서비스한다고 했을때, 위와 같이 Route53을 통해서 EdgeLocation의 DNS로 접속하고 Application Load Balancer를 통해서 웹서비스를 하고 있는 EC2로 접속하여 서비스를 확인한다.

하지만 미국등 다른 글로벌 환경에서 접속을 한다고 가정했을때, Latency가 발생할수 있다.

 

 

그렇기 때문에 위와 같이 Global Accelerator를 활용한다면 User들이 AWS BackBone을 통해서 좀더 빠르게 접속 할 수 있다.

 

 

 

 

 

 

위 Joycity의 사례를 봤을때, User사 뭄바이 출장중 게임 접속했을때 Latency가 발생하여 게임 이용이 어려웠다고 한다.
해당 현상을 해소하기 위해서 Global Accelerator를 적용하여 뭄바이에서 가장 가까운 EdgeLocation에서 접속했을때 Latency가 해소되어 정상적인 게임 이용이 가능했었다고 한다.

Global Accelerator는 고정 Anycast IP 주소를 제공한다.  (IP 선택 불가)
(ALB에서 자동연동하면 보안그룹 생성되나 불필요!!)

 * 하나 이상의 고정 진입점 역할의 Static IP를 제공
 * 제공된 IP주소는 AWS 엣지 로케이션의 Anycast
 * 트래픽이 사용자에게 가장 가까운  AWS 글로벌 네트워크로 연결
 * Static IP가 제공되어 개발 엔드포인트를 수정, 교체시 고객이 DNS 등 변경하지 않아도 됨.

 

 

글로벌 성능 기반 라우팅

AWS Global Accelerator는 방대하고 정체가 없는 AWS 글로벌 네트워크를 사용하여 TCP및 UDP 트래픽을 사용자에게 가장 가까운 AWS 리전의 정상 애플리케이션 엔트포인트로 라우팅

애플리케이션 장애 발생 시 AWS Global Accelerator는 차선의 엔드포인트로 즉각적인 장애 조치를 수행한다. 속도 비교 도구를 사용하여 사용자의 위치에서 성능 이점을 테스트 할 수 있다.

 

위와 같이 AWS Global Accelerator를 사용했을때 기존의 속도보다 44% 가량 빨라진것을 확인할 수 있다.

 

 

===================== 실습 ===========================

 

다음으로는 AWS Global Accelerator를 적용하여 실습을 진행해보도록 하자.

우선 EC2 Instance를 서울 리전에 먼저 생성한다.

 

다음 Instance는 다른 Region인 버지니아 북부에 생성하도록 한다.

 

다음으로는 각 EC2에 Http 서비스를 가동 시키도록 하자.

sudo su

루트 계정으로 전환을 한다.

 

yum install htppd -y

위 명령어를 입력하여 Update를 진행한다.

yum install httpd -y

다음으로 httpd를 설치한다.

 

systemctl enable httpd.service

httpd 서비스를 허용하고

systemctl start httpd.service

httpd 서비스를 실행하도록 하자.

 

다음으로 아래 디렉토리로 이동하고

cd /var/www/html

vi 편집기로 index.html을 생성한다.

 

각각 비교를 위해서 아래와 같이 작성하고 저장한다.

 

모두 완료 했다면 브라우저에서 Public IP를 입력한다.

그럼 인프라 준비는 모두 완료 되었다.

 

 

 

 

 

===================== Global Accelerator 실습 =====================

 

다음으로 본격적인 Global Accelerator 실습을 진행하자.

Global Accelerator는 글로벌 서비스이다.
우선 우측에 Create Accelerator를 클릭한다.

Global Accelerator의 이름을 입력하고 Accelerator Type을 선택하는데 우리는 Standard로 진행한다.
IP address type은 IPv4를 선택하고 Next를 클릭하여 넘어간다.

 

 

다음으로 Listeners를 추가한다.
우리는 Http를 사용하기 때문에 80번 포트를 입력하고 TCP 방식을 선택한 다음에 Next를 클릭하여 넘어간다.
(443 포트 설정도 필요)

 

 

 

다음으로 Endpoint를 설정한다.
우선 EC2를 서울 Region에 만들었기 때문에 ap-northeast-2를 선택한다.
하단에 추가 설정이지만, 디폴트값으로 넘어간다. 

추가로 버지니아 Region에도 EC2를 만들었기 때문에 Endpoint Group을 추가하여 us-east-1을 선택하고 Next를 클릭하여 넘어간다.

 

 

다음으로 Endpoint의 끝을 연결한다.

 

 

연결할수 있는 종류는 Application Load Balancer, Network Load Balancer, EC2 Instance, Elastic IP Address가 있는데 우리는 EC2 Instance를 선택한다.
(실제 연동시 ALB 선택)

다음으로 버지니아 북부의 Endpoint도 설정을 하고 Create accelerator를 클릭하여 생성한다.

 

현재는 In progress이기 때문에 잠시 기다리면 

Deployed 상태로 변경되고 사용할수 있게 된다.

 

 

 

 

 

 

여기서 보통 IP로 접속이 가능하지만 DNS를 통해서도 접속이 가능하다.

DNS를 브라우저에 입력하면 지금 필자가 있는곳이 서울이기 때문에 서울 Region으로 접속이 되는것을 확인할수 있다.

다음으로 VPN을 활성화 하고

조금전에 로그인했던 DNS로 접속해보자.

그럼 자동으로 버지니아 북부의 EC2로 변경된 것을 확인할수 있다.

 

다음으로는 Global Accelerator 이름을 클릭하면

해당 Global Accelerator의 상세로 이동한다.
해당 Listener의 Endpoint들이 모두 Healthy이기 때문에 All Healthy로 확인된다.
중간에 위치한 Listeners ID를 클릭하면

위와 같이 각 Endpoint가 확인되고 us-east-1의 ID를 클릭하면

us-east-1 리전에 생성된 EC2의 Health status와 함께 Instance ID를 확인할수 있다.

그렇다면 다음 실습으로 해당 EC2를 Terminate 시켜보자.

그렇다면 특정 임계 시간이 지나면 Unhealthy 상태로 확인된다.

그다음 접속했던 브라우저에서 새로고침을 하면 현재 버지니아 북부의 EC2는 서비스가 안되기 때문에 서울 Region으로 연결된 것을 확인할 수 있다.

8

 

 

## 최종정리

 

 

 

 

 

 

출처 : 

https://www.youtube.com/watch?v=TjAsIN-R0VE
https://www.youtube.com/watch?v=1Evp9-GPCoc

 

반응형
그리드형

댓글