ysuekkom의 IT study note

[AWS Cloud] 분산 어플리케이션 분석 및 디버깅 X-Ray -2 실습따라하기 본문

Cloud Service/AWS

[AWS Cloud] 분산 어플리케이션 분석 및 디버깅 X-Ray -2 실습따라하기

ysuekkom 2023. 7. 22. 14:03

실습 따라하기

1. Elastic BeanStalk을 이용하여 EC2 인스턴스에서 돌아가는 Java Scorekeep 애플리케이션 배포 후, 간단한 웹페이지를 만들어 트래픽을 유발한다. 이 트래픽을 수집한 X-Ray결과를 확인한다.

2. DynamoDB와 X-Ray를 이용하여 조금더 복잡한 애플리케이션을 배포하고, 트래픽을 확인한다.

 

 

 AWS에서 들어오는 HTTP 호출, DyanmoDB SDK 클라이언트 및 HTTP 클라이언트를 계측하기 위한 X-Ray SDK이다. 샘플 애플리케이션은 CloudFormation 추가 구성 없이 DynamoDB테이블을 생성하고, 인스턴스에서 자바 코드를 컴파일, X-Ray 데몬을 실행할 수 있다. Spring 프레임워크와 AWS SDK for Java를 사용하여, 사용자, 세션 및 게임을 만들고 관리하기 위한 인터페이스를 제공하는 RESTful 웹 API다. API는 HTTP를 통해 API를 사용하는 Angular 1.5 웹 앱이 들어있는 번들로, Amazon Cognito, X-Ray 및 관리형 데이터베이스 서비스와의 통합을 보여주는 브랜치다. 

AWS X-Ray 샘플애플리케이션 스코어 킵 자습서

 

 

사전 조건

AWS CloudFormation샘플 애플리케이션 및 X-Ray 데몬을 실행하는 리소스를 만든다. IAM 사용자에 다음 정책을 추가한다.

  • AWSCloudFormationFullAccess
  • AmazonS3FullAccess
  • IAMFullAccess
  • AmazonEC2FullAccess
  • AmazonDynamoDBFullAccess
  • AmazonECS_FullAccess
  • AmazonSnSFullAccess
  • AWSXrayReadOnlyAccess

 


 

git clone https://github.com/aws-samples/eb-java-scorekeep.git xray-scorekeep -b xray-gettingstarted

//scorekeep application download
cd xray-scorekeep/cloudformation/

//aws cli create(CloudFormation Stack)
aws cloudformation create-stack --stack-name scorekeep --capabilities "CAPABILITY_NAMED_IAM" --template-body file://cf-resources.yaml

//CloudFormation Stack Status Check
aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].StackStatus"

>>Status 결과 COMPLETE 시 성공, URL 찾아서 접속하기

 

>>애플리케이션 URL 찾기

aws cloudformation describe-stacks --stack-name scorekeep --query "Stacks[0].Outputs[0].OutputValue"

 

 

>>접속 성공

 

>>Game 생성하기

  • game: ysuekkom
  • rules: Tic Tac Toe

>Play 버튼 클릭

 

>>Game 시작하기

 

 

>>게임 진행

각 단계는 API에 대한 HTTP 요청을 생성하고 DynamoDB에 대한 다운스트림 호출을 생성하여 사용자, 세션, 게임, 이동 및 상태 데이터를 읽고 쓴다. 게임 후 데이터 확인 가능

  • View traces for this game
  • View sevice map

 

X-Ray 스택생성>>Management Console에서 작업

 

 

>>템플릿파일 업로드

>>검토

 

 

 

 

 

 

1. Elastic BeanStalk을 이용 Java 애플리케이션 배포

Elastic BeanStalk: 웹 애플리케이션을 배포하는데 도움을 주는 AWS 리소스로 애플리케이션을 배포하는 가장 빠르면서도 간편한 방법이다. 코드를 업로드하면 용량 프로비저닝,LB, 오토스케일링, 모니터링 등을 자동으로 처리해주는 AWS의 관리형 서비스이다. 직접적인 추가 과금은 없으며, 애플리케이션을 실행, 저장하는데 필요한 AWS 리소스 사용량만큼 부과된다.

 

region: us-east-1(버지니아북부)에서 Elastic BeanStalk 생성하기 > Management console로 연결하기

https://us-east-1.console.aws.amazon.com/elasticbeanstalk/home?region=us-east-1#/welcome

 

 

>>step1. 환경 구성

  • 환경 티어: 웹 서버 환경
  • 애플리케이션 이름: ysue-scorekeep
  • 환경 정보: Ysue-scorekeep-env
  • 플랫폼: 관리형 플랫폼: Java, Corretto 11 running on 64bit Amazon Linux 2, 3.4.7(Recommended)
  • 애플리케이션 코드: 샘플 애플리케이션

 

>>step2. 서비스 액세스 구성

  • 서비스 역할: 기존 서비스 역할 사용(자동 연결)
  • 검토단계로 건너뛰기

 

 

>>검토 > 제출

 

>>도메인 접속

 

 

 

다음 실습 따라하기에서는 애플리케이션에서 유발된 트래픽을 X-Ray로 연동하여 분석해보도록 하겠다.

 

 

 

 

 

 

 

참고

https://docs.aws.amazon.com/ko_kr/xray/latest/devguide/xray-scorekeep.html

https://docs.aws.amazon.com/ko_kr/xray/latest/devguide/scorekeep-tutorial.html

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/tutorials.html

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/GettingStarted.CreateApp.html

https://docs.aws.amazon.com/ko_kr/xray/latest/devguide/xray-services.html

https://docs.aws.amazon.com/ko_kr/xray/latest/devguide/xray-api.html

https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/eb-cli3-install-osx.html

https://wwlee94.github.io/category/blog/aws-eb-deploy/