brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 17. 2022

6탄-2. 대용량 트래픽 처리에 최적화! AWS 서버리

<1> 서버리스 애플리케이션의 특징

<2>  AWS에서 제공하는 서버리스 애플리케이션

<3> 자주 사용되는  REST API  기반 애플리케이션 구성

<4> 람다 함수  사용해보기

<5>  API Gateway 사용해 보기

<6> AWS X-Ray 활성화 하자.

<10> 개인 정리




<1> 서버리스 애플리케이션의 특징


거의 모든 트래픽을 처리할 수 있도록 애플리케이션의 월할한 스케일링이 가능하다.

(대규모 이벤트시 대응가능)

사용한 만큼 지불

운영으로 인한 부하의 최소화



<2>  AWS에서 제공하는 서버리스 애플리케이션


람다

파 게이트

S3

Amazon Aurora Serverless 

Amazon Dynamode

Amazon EventBridge

Amazon API Gateway

Amazon SQS

Amazon SNS

Amazon Step Function

Amazon appSync



<3> 자주 사용되는  REST API  기반 애플리케이션 구성


구성?

클라이언트------------ Amazon API Gateway ------ AWS Lambda ----------Amazon RDS


2

모니터링?

API Gateway  액세스 로그를 활성화하여 로깅

AWS X-Ray를 활용해 API 요청에 대한 가시성을 높인다.

Cloudwatch로 모니터링


3

안정성?

초당 요청건수에 따라 람다의 Provisioned Concurrency를 구성해 백엔드를 보호

API Gateway에 할당량을 정하여 과도한 요청이 백엔드로 전달되는 것을 방지하자


4

보안?

람다 코드 자체에 DB 정보나 API 키 같은 자격증명을 저자 하기보다는 AWS Secret Manager로 자격증명을 저장하고, 람다에서 읽어서 사용하자.


5

성능?

RDS로의 연결은 RDS Proxy를 사용하는 것이 보다 효과적이다.

API  Gateway에서는 HTTP API로 레이턴시를 개선할 수 있다.


6

비용?

람다 인사이트로 람다 함수의 메모리 사용률을 모니터링하고, 최적의 메모리를 할당하여 비용 효율화를 하자.




<4> 람다 함수  사용해보기


1

아키텍처?

파일  업로드-------S3 --------(이벤트)----------람다-------SNS----------- Email로 통보




<5>  API Gateway 사용해 보기


1

사용자 - (REST API)-----------Amazon API Gateway ---람다--------RDS



2

locust로 부하 룰 주어 테스트하자.


필요시  AWS Support를 통해 한도를 증가시키자


3

람다의 모니터링 가서 모니터링 하자.




<6> AWS X-Ray 활성화 하자.


1

API Gateway에서 AWS X-Ray 활성화 하자.

API Gateway>  Stages >  Logs/Tracing > Enable X-Ray Tracing 체크  > 저장

웹브라우저에서 API Gateway  Endpoint  URL을 몇 번 접속한다.

AWS X-Ray 페이지로 이동  > 좌측 추천 메뉴 > 오른쪽 위 최근 1분 내용을 확인하자.

URL 확인 가능하다. 평균 응답 시간, 성공률 등 확인 가능하다.

하단의 특정 URL 클릭하면  트레이스 맵들 상세 내용 확인이 가능하다.



2

람다에서 AWS X-Ray 활성화 하자.

람다 > 구성 >  왼편  모니터링과 운영 툴 >  수정 > 엑스레이 활성화로 변경

람다> 설정>  추천 상태 활성화되었는지 확인한다.


기존에 작성하였던 람다 함수에  X-Ray SDK를 임포트 하고, patch-all   함수를 통해  각 언어별로 지원하는 라이브러리들에 대한 

다운스트림 호출에 대한 자동 계측을 수행할 수 있다. (람다 코드에 추가한다)

pymsql  또한 X-Ray SDK에서 자동 계측을 지원한다.

MySQL에 대한 쿼리 또한 X-Ray 추적 정보에 기록이 된다.


변경된 람다 함수를 배포한다.


X-Ray SDK는 람다에서 기본적으로 제공하는 라이브러리가 아니라  람다 계층을 활용하여 등록하고 추가해주는 과정이 필요하다.


웹브라우저에서   Endpoint  URL을 몇 번 접속한다.


AWS X-Ray 페이지로 이동  > 좌측 추천 메뉴 > 오른쪽 위 최근 1분 내용을 확인하자.  새로 고침


하단의 특정 URL 클릭하면  트레이스 맵들 상세 내용 확인이 가능하다.

람다, SQL  다운 스트림 호출 가지 추적 정보가 표시된다.

Sevice Icons를 활성화하면 , 직관적으로 아이콘으로 확인이 가능하다.

하단에 실제 코드 수행 시간 등 확인이 가능하다.



3

 AWS X-Ray에서 확인하자.

 AWS X-Ray > 서비스 맵 > 오른쪽 위 5분 통계 > 통계 정보를 확인 > Sevice Icons 활성화

평균 소요시간 정보 등 확인할 수 있다.

서비스 맵에서 응답 속도에 대한  아이콘을 클릭하면 > 히스토리 그램을 확인할 수 있다.


 AWS X-Ray >  분석에서 AWS  성능을 신속하게 확인 가능하다.

응답 시간 분포와  분석과 시각화 확인이 가능하다.




<10> 개인 정리


1

서버리스 사용 시   <3> 자주 사용되는  REST API  기반 애플리케이션  구성을 확인하자.


2

API Gateway에서 AWS X-Ray 활성화 하자.

람다에서 AWS X-Ray 활성화 하자.

 AWS X-Ray에서 확인하자.




https://brunch.co.kr/@topasvga/2439



감사합니다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari