(선택 사항) 샘플 앱으로 Application Signals 체험하기
자체 애플리케이션을 계측하기 전에 샘플 앱에서 CloudWatch Application Signals를 사용해 보려면 이 섹션의 지침을 따르세요. 이 지침은 스크립트를 사용하여 Amazon EKS 클러스터를 생성하고, 샘플 애플리케이션을 설치하고, Application Signals와 함께 작동하도록 샘플 애플리케이션을 계측하는 데 도움이 됩니다.
샘플 애플리케이션은 4개의 마이크로서비스로 구성된 Spring 'Pet Clinic' 애플리케이션입니다. 이러한 서비스는 Amazon EC2의 Amazon EKS에서 실행되며 Application Signals 활성화 스크립트를 활용하여 Java, Python 또는 .NET 자동 계측 에이전트로 클러스터를 활성화합니다.
요구 사항
현재 Application Signals는 Java, Python 또는 .NET 애플리케이션만 모니터링합니다.
인스턴스에 AWS CLI가 설치되어 있어야 합니다. AWS CLI 버전 2를 권장하지만 버전 1도 사용할 수 있습니다. AWS CLI 설치에 대한 자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.
이 섹션의 스크립트는 Linux 및 macOS 환경에서 실행되도록 설계되었습니다. Windows 인스턴스의 경우 AWS Cloud9 환경을 사용하여 이러한 스크립트를 실행하는 것이 좋습니다. AWS Cloud9에 대한 자세한 내용은 AWS Cloud9란 무엇인가요?를 참조하세요.
지원되는 버전의
kubectl
을 설치합니다. Amazon EKS 클러스터 컨트롤 플레인과 마이너 버전 차이가 1 이내인kubectl
버전을 사용해야 합니다. 예를 들어, 1.26kubectl
클라이언트는 Kubernetes 1.25, 1.26 및 1.27 클러스터로 작업해야 합니다. Amazon EKS 클러스터가 이미 있는 경우kubectl
에 대한 AWS 보안 인증을 구성해야 할 수 있습니다. 자세한 내용은 Amazon EKS 클러스터용kubeconfig
파일 생성 또는 업데이트를 참조하세요.eksctl
을 설치합니다. AWS CLI은eksctl
를 사용하여 AWS와 상호 작용합니다. 즉, AWS CLI와 동일한 AWS 보안 인증을 사용합니다. 자세한 내용은eksctl
설치 또는 업데이트를 참조하세요.jq
를 설치합니다. Application Signals 활성화 스크립트를 실행하려면jq
가 필요합니다. 자세한 내용은 다운로드 jq를 참조하세요.
1단계: 스크립트 다운로드
샘플 앱으로 CloudWatch Application Signals를 설정하는 스크립트를 다운로드하려면 압축된 GitHub 프로젝트 파일을 로컬 드라이브에 다운로드하고 압축을 풀거나 GitHub 프로젝트를 복제할 수 있습니다.
프로젝트를 복제하려면 터미널 창을 열고 지정된 작업 디렉터리에 다음 Git 명령을 입력합니다.
git clone https://github.com/aws-observability/application-signals-demo.git
2단계: 샘플 애플리케이션 구축 및 배포
샘플 애플리케이션 이미지를 구축하고 푸시하려면 다음 지침을 따릅니다
3단계: Application Signals와 샘플 애플리케이션 배포 및 활성화
다음 단계를 완료하기 전에 (선택 사항) 샘플 앱으로 Application Signals 체험하기에 나열된 요구 사항을 완료했는지 확인합니다.
Application Signals와 샘플 애플리케이션 배포 및 활성화
다음 명령을 입력합니다.
new-cluster-name
을 새 클러스터에 사용할 이름으로 바꿉니다.region-name
을us-west-1
과 같은 AWS 리전 이름으로 바꿉니다.이 명령은 Application Signals가 활성화된 새 Amazon EKS 클러스터에서 실행되는 샘플 앱을 설정합니다.
# this script sets up a new cluster, enables Application Signals, and deploys the # sample application cd application-signals-demo/scripts/eks/appsignals/one-step && ./setup.sh
new-cluster-name
region-name
설치 스크립트는 실행하는 데 약 30분이 걸리며 다음과 같은 작업을 수행합니다.
지정된 리전에 새 Amazon EKS 클러스터를 생성합니다.
Application Signals(
arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess
및arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
)에 필요한 IAM 권한을 생성합니다.CloudWatch 에이전트를 설치하고 CloudWatch 지표 및 X-Ray 트레이스용 샘플 애플리케이션을 자동으로 계측하여 Application Signals를 활성화합니다.
PetClinic Spring 샘플 애플리케이션을 동일한 Amazon EKS 클러스터에 배포합니다.
pc-add-vist
,pc-create-owners
,pc-visit-pet
,pc-visit-vet
,pc-clinic-traffic
이라는 5개의 CloudWatch Synthetics canary를 생성합니다. 이러한 canary는 1분 간격으로 실행되어 샘플 앱에 대한 합성 트래픽을 생성하고 Application Signals에 Synthetics canary가 어떻게 나타나는지 보여줍니다.PetClinic 애플리케이션을 위한 네 가지 서비스 수준 목표(SLO)를 다음과 같은 이름으로 생성합니다.
소유자 검색 가능 여부
소유자 검색 지연 시간
소유자 등록 가능 여부
소유자 등록 지연 시간
Application Signals에 다음 권한을 부여하는 사용자 지정 신뢰 정책을 사용하여 필요한 IAM 역할을 생성합니다.
cloudwatch:PutMetricData
cloudwatch:GetMetricData
xray:GetServiceGraph
logs:StartQuery
logs:GetQueryResults
-
(선택 사항) PetClinic 샘플 애플리케이션의 소스 코드를 검토하려는 경우 루트 폴더에서 해당 코드를 찾을 수 있습니다.
- application-signals-demo - spring-petclinic-admin-server - spring-petclinic-api-gateway - spring-petclinic-config-server - spring-petclinic-customers-service - spring-petclinic-discovery-server - spring-petclinic-vets-service - spring-petclinic-visits-service
배포된 PetClinic 샘플 애플리케이션을 보려면 다음 명령을 실행하여 URL을 찾습니다.
kubectl get ingress
4단계: 샘플 애플리케이션 모니터링
이전 섹션의 단계를 완료하여 Amazon EKS 클러스터를 생성하고 샘플 애플리케이션을 배포한 후 Application Signals를 사용하여 애플리케이션을 모니터링할 수 있습니다.
참고
Application Signals 콘솔에서 채우기를 시작하려면 일부 트래픽이 샘플 애플리케이션에 도달해야 합니다. 이전 단계에서 샘플 애플리케이션으로 트래픽을 생성하는 CloudWatch Synthetics canary가 생성되었습니다.
서비스 상태 모니터링
활성화되면 CloudWatch Application Signals는 추가 설정 없이 서비스 목록을 자동으로 검색하여 채웁니다.
검색된 서비스 목록 보기 및 해당 서비스의 상태 모니터링
https://console.aws.amazon.com/cloudwatch/
에서 CloudWatch 콘솔을 엽니다. 탐색 창에서 Application Signals, 서비스를 선택합니다.
서비스, 해당 작업 및 종속성을 보려면 목록에서 서비스 중 하나의 이름을 선택합니다.
이 통합 애플리케이션 중심 보기를 통해 사용자가 서비스와 상호 작용하는 방식을 전체적으로 파악할 수 있습니다. 이를 통해 성능 이상이 발생할 경우 문제를 분류할 수 있습니다. 서비스 뷰에 대한 자세한 내용은 Application Signals를 사용하여 애플리케이션의 운영 상태 모니터링 섹션을 참조하세요.
서비스 작업 탭을 선택하여 해당 서비스 작업에 대한 표준 애플리케이션 지표를 봅니다. 작업은 예를 들어, 서비스가 호출하는 API 작업입니다.
그런 다음, 해당 서비스의 단일 작업에 대한 그래프를 보려면 해당 작업 이름을 선택합니다.
종속성 탭을 선택하여 각 종속성에 대한 중요한 애플리케이션 지표와 함께 애플리케이션의 종속성을 봅니다. 종속성에는 애플리케이션이 직접적으로 호출하는 AWS 서비스 및 타사 서비스가 포함됩니다.
서비스 세부 정보 페이지에서 상관관계가 있는 트레이스를 보려면 테이블 위의 세 그래프 중 하나에서 데이터 포인트를 선택합니다. 그러면 새 창에 해당 기간의 필터링된 트레이스가 채워집니다. 이러한 트레이스는 선택한 그래프를 기준으로 정렬 및 필터링됩니다. 예를 들어, 지연 시간 그래프를 선택한 경우 트레이스는 서비스 응답 시간을 기준으로 정렬됩니다.
CloudWatch 콘솔 탐색 창에서 SLO를 선택합니다. 스크립트가 샘플 애플리케이션에 대해 생성한 SLO를 볼 수 있습니다. SLO에 대한 자세한 내용은 서비스 수준 목표(SLO) 섹션을 참조하세요.
(선택 사항) 5단계: 정리
애플리케이션 신호 테스트를 마치면 Amazon에서 제공하는 스크립트를 사용하여 샘플 애플리케이션을 위해 계정에 생성된 아티팩트를 정리하고 삭제할 수 있습니다. 정리를 수행하려면 다음 명령을 입력합니다. new-cluster-name
을 샘플 앱용으로 만든 클러스터의 이름으로 바꾸고, region
-name을 us-west-1
등의 AWS 리전 이름으로 바꿉니다.
cd application-signals-demo/scripts/eks/appsignals/one-step && ./cleanup.sh new-cluster-name region-name