태그 기반 Amazon CloudWatch 대시보드를 자동으로 생성 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

태그 기반 Amazon CloudWatch 대시보드를 자동으로 생성

작성: 자낙 바다리아 (AWS), 라즈네시 야기 (AWS), 빈도쿠마르 만달라푸 (AWS)

코드 리포지토리: 골든시그널

환경: 프로덕션

기술: 운영 CloudNative, 관리 및 거버넌스

AWS 서비스: AWS CDK, 아마존 CloudWatch, AWS CodeBuild, AWS CodePipeline

요약

다양한 Amazon CloudWatch 대시보드를 수동으로 만들려면 시간이 많이 걸릴 수 있습니다. 특히 환경을 자동으로 확장하기 위해 여러 리소스를 만들고 업데이트해야 하는 경우에는 더욱 그렇습니다. CloudWatch 대시보드를 자동으로 생성하고 업데이트하는 솔루션을 사용하면 시간을 절약할 수 있습니다. 이 패턴을 사용하면 태그 변경 이벤트를 기반으로 AWS 리소스에 대한 CloudWatch 대시보드를 생성 및 업데이트하여 Golden Signals 메트릭을 표시하는 완전 자동화된 AWS Cloud Development Kit (AWS CDK) 파이프라인을 배포할 수 있습니다.

사이트 신뢰성 엔지니어링 (SRE) 에서 Golden Signals는 사용자 또는 소비자 관점에서 서비스를 폭넓게 볼 수 있는 포괄적인 지표 세트를 말합니다. 이러한 지표는 지연 시간, 트래픽, 오류 및 포화 상태로 구성됩니다. 자세한 내용은 사이트 신뢰성 엔지니어링 (SRE) 이란? 을 참조하십시오. AWS 웹 사이트에서.

이 패턴에서 제공하는 솔루션은 이벤트 기반입니다. 배포된 후에는 태그 변경 이벤트를 지속적으로 모니터링하고 CloudWatch 대시보드와 경보를 자동으로 업데이트합니다.

사전 조건 및 제한 사항

사전 요구 사항

제한 사항

이 솔루션은 현재 다음 AWS 서비스에 대해서만 자동화된 대시보드를 생성합니다.

아키텍처

대상 기술 스택

대상 아키텍처 

태그 CloudWatch 기반 대시보드를 만들기 위한 타겟 아키텍처
  1. 구성된 애플리케이션 AWS 태그 또는 코드 변경에 대한 태그 변경 이벤트가 발생하면 업데이트된 대시보드를 구축하고 AWS CodePipeline 배포하기 위한 파이프라인이 시작됩니다. CloudWatch

  2. AWS CodeBuild Python 스크립트를 실행하여 태그가 구성된 리소스를 찾고 리소스 ID를 CodeBuild 환경의 로컬 파일에 저장합니다.

  3. CodeBuild cdk synth를 실행하여 CloudWatch 대시보드와 경보를 배포하는 AWS CloudFormation 템플릿을 생성합니다.

  4. CodePipeline AWS CloudFormation 템플릿을 지정된 지역 및 지역에 배포합니다. AWS 계정

  5. AWS CloudFormation 스택이 성공적으로 배포되면 CloudWatch 대시보드와 경보를 볼 수 있습니다.

자동화 및 규모 조정

이 솔루션은 를 사용하여 자동화되었습니다. AWS CDKAmazon CloudWatch 리포지토리의 GitHub 골든 시그널 대시보드에서 코드를 찾을 수 있습니다. 추가 규모 조정 및 사용자 지정 대시보드 생성을 위해 여러 태그 키와 값을 구성할 수 있습니다.

도구

Amazon 서비스

  • EventBridgeAmazon은 AWS Lambda 함수, API 대상을 사용하는 HTTP 호출 엔드포인트 또는 기타 이벤트 버스를 비롯한 다양한 소스의 실시간 데이터와 애플리케이션을 연결할 수 있도록 지원하는 서버리스 이벤트 버스 서비스입니다. AWS 계정

  • AWS CodePipeline소프트웨어 릴리스의 여러 단계를 신속하게 모델링 및 구성하고 소프트웨어 변경 사항을 지속적으로 릴리스하는 데 필요한 단계를 자동화할 수 있도록 지원합니다.

  • AWS CodeBuild소스 코드를 컴파일하고, 단위 테스트를 실행하고, 배포할 준비가 된 아티팩트를 생성하는 데 도움이 되는 완전 관리형 빌드 서비스입니다.

  • AWS CodeCommit자체 소스 제어 시스템을 관리할 필요 없이 Git 리포지토리를 비공개로 저장하고 관리할 수 있는 버전 제어 서비스입니다.

  • AWS Command Line Interface (AWS CLI) 는 명령줄 셸의 명령을 통해 AWS 서비스와 상호 작용하는 데 도움이 되는 오픈 소스 도구입니다.

  • AWS Identity and Access Management (IAM) 을 사용하면 리소스 인증 및 사용 권한을 부여받은 사용자를 제어하여 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있습니다.

  • Amazon Simple Storage Service(S3)는 원하는 양의 데이터를 저장, 보호 및 검색하는 데 도움이 되는 클라우드 기반 객체 스토리지 서비스입니다.

모범 사례

보안 모범 사례로, 파이프라인에 연결되는 소스 리포지토리에 암호화 및 인증을 사용할 수 있습니다. 추가 모범 사례는 설명서의 CodePipeline 모범 사례 및 사용 사례를 참조하십시오. CodePipeline

에픽

작업설명필요한 기술

샘플 애플리케이션을 구성하고 배포합니다.

  1. 다음 명령을 사용하여 GitHub 샘플 코드 리포지토리를 복제합니다.

    git clone https://github.com/aws-samples/golden-signals-dashboards-sample-app
  2. 컴퓨터의 복제된 리포지토리로 이동한 다음 원하는 편집기로 src/project-settings.ts 파일을 엽니다.

  3. AWS 리소스 태그와 응용 프로그램 매핑에 따라 projectSettings 상수 값을 변경하십시오.

  4. AWS_ACCOUNT,AWS_REGION, GS_DASHBOARD_INSTANCE 환경 변수를 설정합니다.

    • 계정의 계정 AWS_ACCOUNT ID로 설정합니다. AWS

    • 샘플 애플리케이션을 배포할 지역으로 설정합니다AWS_REGION.

    • 개발 환경에 따라 dev testprod, 또는 GS_DASHBOARD_INSTANCE 로 설정합니다. (이 test 패턴에 설명된 테스트 절차에 권장됩니다.)

  5. AWS 자격 AWS CLI 증명으로 설정하십시오. 자세한 내용은 AWS CLI 설명서의 명령을 사용하여 구성 설정 설정 및 보기를 참조하십시오.

  6. 다음 명령을 실행하여 Golden Signals 대시보드 샘플 애플리케이션을 배포하십시오.

    sh deploy.sh
AWS DevOps

대시보드와 경보를 자동으로 생성합니다.

샘플 애플리케이션을 배포한 후에는 이 솔루션이 지원하는 모든 리소스를 예상 태그 값으로 만들 수 있습니다. 그러면 지정된 대시보드와 경보가 자동으로 생성됩니다.

이 솔루션을 테스트하려면 함수를 AWS Lambda 생성하십시오.

  1. 샘플 애플리케이션을 배포한 AWS 리전 위치에 로그인합니다. AWS Management Console

  2. https://console.aws.amazon.com/lambda/에서 Lambda 콘솔을 엽니다.

  3. 함수 생성을 선택한 다음 함수 이름을 입력합니다.

  4. 고급 설정 창에서 태그 활성화를 선택한 다음 새 태그 추가를 선택합니다. 다음 키와 값을 입력합니다.

    • 키: AutoDashboard

    • 값: True

  5. 함수 생성을 선택합니다.

    Lambda 함수는 코드 파이프라인을 즉시 시작하여 특정 Lambda 함수에 대한 대시보드와 경보를 자동으로 생성합니다.

  6. 자동화된 대시보드와 경보를 보려면 https://console.aws.amazon.com/cloudwatch/ 에서 콘솔을 여십시오. CloudWatch projectSettings상수에 지정한 함수 (기본적으로 App1-Lambda) 에 대한 사용자 지정 대시보드 및 경보를 볼 수 있습니다.

  7. Lambda 함수의 대시보드를 선택하면 이 솔루션의 일부로 생성된 추가 자동 대시보드를 볼 수 있습니다.

  8. Amazon RDS, Amazon SNS AWS Auto Scaling, DynamoDB 등의 다른 서비스에 대해서도 이 단계를 반복하여 관련 대시보드를 생성합니다. Amazon RDS의 예를 보려면 추가 정보 섹션을 참조하십시오.

AWS DevOps
작업설명필요한 기술

golden-signals-dashboard구문을 제거합니다.

  1. 샘플 애플리케이션에서 만든 모든 AWS CloudFormation 스택을 제거하려면,, GS_DASHBOARD_INSTANCE 환경 변수를 다시 구성해야 합니다. AWS_ACCOUNT AWS_REGION destroy.sh명령을 실행하려면 다음과 같은 구성이 필요합니다.

    • AWS_ACCOUNT계정의 계정 ID입니다. AWS

    • AWS_REGION샘플 애플리케이션을 배포한 지역입니다.

    • GS_DASHBOARD_INSTANCE이전 설정을 기반으로 한 dev testprod, 또는 입니다.

  2. AWS 자격 AWS CLI 증명으로 설정하세요.

  3. 다음 명령을 실행하여 샘플 애플리케이션 및 모든 관련 AWS CloudFormation 스택을 제거합니다.

    sh destroy.sh
AWS DevOps

문제 해결

문제Solution

Python 명령을 찾을 수 없습니다 (8행 findresources.sh 참조).

설치된 Python 버전을 확인하십시오. Python 버전 3을 설치한 경우 resources.sh 파일의 8번째 python 줄로 python3 바꾸고 sh deploy.sh 명령을 다시 실행하여 솔루션을 배포하십시오.

관련 리소스

추가 정보

다음 그림은 이 솔루션의 일부로 생성된 Amazon RDS용 샘플 대시보드를 보여줍니다.

Amazon RDS용 샘플 대시보드