쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

AWS CDK를 통해 여러 AWS 리전, 계정, OU에서 Amazon DevOps Guru를 활성화하여 운영 성능을 개선하세요. - 권장 가이드

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

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

AWS CDK를 통해 여러 AWS 리전, 계정, OU에서 Amazon DevOps Guru를 활성화하여 운영 성능을 개선하세요.

작성자: Dr. Rahul Sharad Gaikwad(AWS)

요약

이 패턴은 TypeScript에서 AWS Cloud Development Kit(AWS CDK)를 사용하여 여러 Amazon Web Services(AWS) 리전, 계정, 조직 단위(OU)에서 Amazon DevOps Guru 서비스를 사용하도록 설정하는 단계를 보여줍니다. AWS CDK 스택을 사용하면 관리자(기본) AWS 계정에서 AWS CloudFormation StackSets를 배포하여 각 계정에 로그인하고 각 계정에 대해 개별적으로 DevOps Guru를 활성화하는 대신 여러 계정에서 Amazon DevOps Guru를 활성화할 수 있습니다.

Amazon DevOps Guru는 애플리케이션의 가용성을 개선하고 운영 문제를 더 빠르게 해결하는 데 도움이 되는 인공 지능 운영 (AIOps) 특성을 제공합니다. DevOps Guru는 ML 전문 지식 없어도 기계 학습(ML) 기반 권장 사항을 적용하여 수작업을 줄여줍니다. DevOps Guru는 리소스와 운영 데이터를 분석합니다. 이상 징후가 감지되면 문제 해결에 도움이 되는 지표, 이벤트, 권장 사항을 제공합니다.

이 패턴은 Amazon DevOps Guru를 활성화하는 세 가지 배포 방법을 설명합니다.

  • 여러 계정과 리전에 있는 모든 스택 리소스용

  • OU에 있는 모든 스택 리소스용

  • 여러 계정과 리전에 있는 특정 스택 리소스용

사전 조건 및 제한 사항

사전 조건 

‬제품 버전‭

  • AWS CDK Toolkit 버전 1.107.0 이상

  • npm 버전 7.9.0 이상

  • Node.js 버전 15.3.0 이상

아키텍처

기술

이 패턴의 아키텍처에는 다음과 같은 서비스가 포함됩니다.

AWS CDK 스택

패턴은 다음과 같은 AWS CDK 스택을 사용합니다. 

  • CdkStackSetAdminRole - 관리자와 대상 계정 간의 신뢰 관계를 설정하기 위해 AWS IAM(신원 및 액세스 관리) 관리자 역할을 생성

  • CdkStackSetExecRole - 관리자 계정을 신뢰하는 IAM 역할을 생성

  • CdkDevopsGuruStackMultiAccReg - 여러 AWS 리전과 계정에서 모든 스택에 대해 DevOps Guru를 사용하도록 설정하고 Amazon Simple Notification Service(SNS) 알림을 활성화

  • CdkDevopsGuruStackMultiAccRegSpecStacks - 여러 AWS 리전과 특정 스택에 대한 계정에서 DevOps Guru를 활성화하고 Amazon SNS 알림을 설정

  • CdkDevopsguruStackOrgUnit— OU 전반에서 DevOps Guru를 사용하도록 설정하고 Amazon SNS 알림을 설정 

  • CdkInfrastructureStack— 관리자 계정에 API 게이트웨이, Lambda, DynamoDB와 같은 샘플 서버리스 애플리케이션 구성 요소를 배포하여 결함 삽입 및 인사이트 생성

샘플 애플리케이션 아키텍처

다음 다이어그램은 여러 계정과 리전에 배포된 샘플 서버리스 애플리케이션 아키텍처를 보여줍니다. 이 패턴은 관리자 계정을 사용하여 모든 AWS CDK 스택을 배포합니다. 또한 DevOps Guru를 설정하기 위한 대상 계정 중 하나로 관리자 계정을 사용합니다.

  1. DevOps Guru가 활성화되면 먼저 각 리소스의 동작을 기준으로 삼은 다음, CloudWatch에서 제공하는 메트릭에서 운영 데이터를 수집합니다.

  2. 이상 징후가 감지되면 이를 CloudTrail의 이벤트와 연관시켜 인사이트를 생성합니다.

  3. 인사이트는 운영자가 원인 리소스를 식별할 수 있도록 규정된 권장 사항과 함께 상호 연관된 이벤트 시퀀스를 제공합니다.

  4. Amazon SNS는 운영자에게 알림 메시지를 보냅니다.

여러 계정 및 리전에 배포된 샘플 서버리스 애플리케이션입니다.

자동화 및 규모 조정

이 패턴과 함께 제공되는 GitHub 저장소는 이 아키텍처에 대한 구성을 생성하는 코드형 인프라(IaC) 도구로 AWS CDK를 사용합니다. AWS CDK를 사용하면 여러 AWS 계정, 리전, OU에서 리소스를 오케스트레이션하고 DevOps Guru를 활성화할 수 있습니다.

도구

서비스

  • AWS CDK - AWS Cloud Development Kit(AWS CDK)는 지원되는 5가지 프로그래밍 언어 중 하나로 클라우드 인프라를 코드로 정의할 수 있도록 도와줍니다: TypeScript, JavaScript, Python, Java, C#.

  • AWS CLI - AWS Command Line Interface(AWS CLI)는 AWS 서비스, 리소스와 상호 작용할 수 있는 일관된 명령줄 인터페이스를 제공하는 통합 도구입니다.

코드

이 패턴의 소스 코드는 GitHub의 Amazon DevOps Guru CDK 샘플 저장소에 있습니다. AWS CDK 코드는 TypeScript로 작성됩니다. 리포지토리를 복제하여 사용하려면 다음 섹션의 지침을 따르세요.

중요

이 패턴의 일부 스토리에는 Unix, Linux 및 macOS용으로 형식이 지정된 AWS CDK 및 AWS CLI 명령 예제가 포함됩니다. Windows에서는 각 줄 끝에 있는 백슬래시(\) 연속 문자를 캐럿(^)으로 바꿉니다.

에픽

작업설명필요한 기술

AWS 네임드 프로필을 구성

다중 계정 환경에서 스택을 배포하려면 다음과 같이 AWS 네임드 프로필을 설정하세요.

관리자 계정의 경우

$aws configure --profile administrator AWS Access Key ID [****]: <your-administrator-access-key-ID> AWS Secret Access Key [****]: <your-administrator-secret-access-key> Default region name [None]: <your-administrator-region> Default output format [None]: json

대상 계정의 경우

$aws configure --profile target AWS Access Key ID [****: <your-target-access-key-ID> AWS Secret Access Key [****]: <your-target-secret-access-key> Default region name [None]: <your-target-region> Default output format [None]: json

자세한 내용은 AWS CLI 설명서에서 네임드 프로파일 사용을 참조하세요.

DevOps 엔지니어

AWS 프로필 구성 확인

(선택 사항) AWS CLI 설명서의 설정 및 보기 구성 설정에 있는 지침에 따라 credentialsconfig 파일에서 AWS 프로필 구성을 확인할 수 있습니다.

DevOps 엔지니어

AWS CDK 버전 확인

다음 명령을 실행하여 AWS CDK Toolkit 버전을 확인하세요.

$cdk --version

이 패턴을 사용하려면 버전 1.107.0 이상이 필요합니다. 이전 버전의 AWS CDK를 사용 중이면 AWS CDK 문서에 있는 지침에 따라 업데이트하세요.

DevOps 엔지니어

프로젝트 코드 복제

다음 명령을 사용하여 이 패턴에 대한 GitHub 저장소를 복제합니다.

$git clone https://github.com/aws-samples/amazon-devopsguru-cdk-samples.git
DevOps 엔지니어

패키지 종속성을 설치하고 TypeScript 파일을 컴파일하세요.

다음 명령을 실행하여 패키지 종속성을 설치하고 TypeScript 파일을 컴파일하세요.

$cd amazon-devopsguru-cdk-samples $npm install $npm fund

이 명령은 샘플 저장소의 모든 패키지를 설치합니다.

중요

누락된 패키지에 오류가 발생하면 다음 명령 중 하나를 사용합니다.

$npm ci

- 또는 -

$npm install -g @aws-cdk/<package-name>

패키지 이름과 버전 목록은 /amazon-devopsguru-cdk-samples/package.json 파일의 Dependencies 섹션에서 확인할 수 있습니다. 자세한 내용은 npm 설명서에 있는 npm cinpm install을 참조하세요.

DevOps 엔지니어

배포에 필요한 AWS 리소스 준비

작업설명필요한 기술

AWS 네임드 프로필을 구성

다중 계정 환경에서 스택을 배포하려면 다음과 같이 AWS 네임드 프로필을 설정하세요.

관리자 계정의 경우

$aws configure --profile administrator AWS Access Key ID [****]: <your-administrator-access-key-ID> AWS Secret Access Key [****]: <your-administrator-secret-access-key> Default region name [None]: <your-administrator-region> Default output format [None]: json

대상 계정의 경우

$aws configure --profile target AWS Access Key ID [****: <your-target-access-key-ID> AWS Secret Access Key [****]: <your-target-secret-access-key> Default region name [None]: <your-target-region> Default output format [None]: json

자세한 내용은 AWS CLI 설명서에서 네임드 프로파일 사용을 참조하세요.

DevOps 엔지니어

AWS 프로필 구성 확인

(선택 사항) AWS CLI 설명서의 설정 및 보기 구성 설정에 있는 지침에 따라 credentialsconfig 파일에서 AWS 프로필 구성을 확인할 수 있습니다.

DevOps 엔지니어

AWS CDK 버전 확인

다음 명령을 실행하여 AWS CDK Toolkit 버전을 확인하세요.

$cdk --version

이 패턴을 사용하려면 버전 1.107.0 이상이 필요합니다. 이전 버전의 AWS CDK를 사용 중이면 AWS CDK 문서에 있는 지침에 따라 업데이트하세요.

DevOps 엔지니어

프로젝트 코드 복제

다음 명령을 사용하여 이 패턴에 대한 GitHub 저장소를 복제합니다.

$git clone https://github.com/aws-samples/amazon-devopsguru-cdk-samples.git
DevOps 엔지니어

패키지 종속성을 설치하고 TypeScript 파일을 컴파일하세요.

다음 명령을 실행하여 패키지 종속성을 설치하고 TypeScript 파일을 컴파일하세요.

$cd amazon-devopsguru-cdk-samples $npm install $npm fund

이 명령은 샘플 저장소의 모든 패키지를 설치합니다.

중요

누락된 패키지에 오류가 발생하면 다음 명령 중 하나를 사용합니다.

$npm ci

- 또는 -

$npm install -g @aws-cdk/<package-name>

패키지 이름과 버전 목록은 /amazon-devopsguru-cdk-samples/package.json 파일의 Dependencies 섹션에서 확인할 수 있습니다. 자세한 내용은 npm 설명서에 있는 npm cinpm install을 참조하세요.

DevOps 엔지니어
작업설명필요한 기술

Amazon SNS 알림 이메일 주소를 구성합니다.

Amazon SNS 알림 이메일 주소를 제공하려면 다음 단계를 따르세요.

  1. 파일 /amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-multi-acc-reg-stack.ts/amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-org-uni-stack.ts를 편집합니다.

  2. DevOpsGuruTopic, Subscription 섹션에서 Endpoint 매개변수를 이메일 주소로 업데이트합니다.

  3. 파일을 저장하고 닫습니다.

DevOps 엔지니어

프로젝트 코드를 작성합니다.

명령을 실행하여 프로젝트 코드를 작성하고 스택을 합성하세요.

npm run build && cdk synth

다음과 유사한 출력 화면이 표시되어야 합니다. 

$npm run build && cdk synth > cdk-devopsguru@0.1.0 build > tsc Successfully synthesized to ~/amazon-devopsguru-cdk-samples/cdk.out Supply a stack id (CdkDevopsGuruStackMultiAccReg,CdkDevopsGuruStackMultiAccRegSpecStacks, CdkDevopsguruStackOrgUnit, CdkInfrastructureStack, CdkStackSetAdminRole, CdkStackSetExecRole) to display its template.

자세한 정보와 절차는 AWS CDK 문서에서 첫 번째 AWS CDK 앱을 참조하세요.

DevOps 엔지니어

AWS CDK 스택을 나열합니다.

다음 명령을 실행하여 모든 AWS CDK 스택을 나열하세요.

$cdk list

이 명령은 다음 목록을 표시합니다.

CdkDevopsGuruStackMultiAccReg CdkDevopsGuruStackMultiAccRegSpecStacks CdkDevopsguruStackOrgUnit CdkInfrastructureStack CdkStackSetAdminRole CdkStackSetExecRole
DevOps 엔지니어

AWS CDK 스택 작성(합성)

작업설명필요한 기술

Amazon SNS 알림 이메일 주소를 구성합니다.

Amazon SNS 알림 이메일 주소를 제공하려면 다음 단계를 따르세요.

  1. 파일 /amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-multi-acc-reg-stack.ts/amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-org-uni-stack.ts를 편집합니다.

  2. DevOpsGuruTopic, Subscription 섹션에서 Endpoint 매개변수를 이메일 주소로 업데이트합니다.

  3. 파일을 저장하고 닫습니다.

DevOps 엔지니어

프로젝트 코드를 작성합니다.

명령을 실행하여 프로젝트 코드를 작성하고 스택을 합성하세요.

npm run build && cdk synth

다음과 유사한 출력 화면이 표시되어야 합니다. 

$npm run build && cdk synth > cdk-devopsguru@0.1.0 build > tsc Successfully synthesized to ~/amazon-devopsguru-cdk-samples/cdk.out Supply a stack id (CdkDevopsGuruStackMultiAccReg,CdkDevopsGuruStackMultiAccRegSpecStacks, CdkDevopsguruStackOrgUnit, CdkInfrastructureStack, CdkStackSetAdminRole, CdkStackSetExecRole) to display its template.

자세한 정보와 절차는 AWS CDK 문서에서 첫 번째 AWS CDK 앱을 참조하세요.

DevOps 엔지니어

AWS CDK 스택을 나열합니다.

다음 명령을 실행하여 모든 AWS CDK 스택을 나열하세요.

$cdk list

이 명령은 다음 목록을 표시합니다.

CdkDevopsGuruStackMultiAccReg CdkDevopsGuruStackMultiAccRegSpecStacks CdkDevopsguruStackOrgUnit CdkInfrastructureStack CdkStackSetAdminRole CdkStackSetExecRole
DevOps 엔지니어
작업설명필요한 기술

IAM 역할 생성에 필요한 AWS CDK 스택을 배포합니다.

이 패턴은 AWS CloudFormation StackSets를 사용하여 여러 계정에서 스택 작업을 수행합니다. 첫 번째 스택 집합을 생성하는 경우, AWS 계정에 필요한 권한을 설정하려면 다음 IAM 역할을 만들어야 합니다.

  • AWSCloudFormationStackSetAdministrationRole

  • AWSCloudFormationStackSetExecutionRole

참고

역할에는 이러한 정확한 이름이 있어야 합니다.

  1. 다음 CLI 명령을 실행하여 관리자(기본) 계정에서 IAM AWSCloudFormationStackSetAdministrationRole 역할을 만듭니다.

    $cdk deploy CdkStackSetAdminRole --profile administrator
  2. 스택 인스턴스를 실행하려는 모든 대상 계정에서 IAM AWSCloudFormationStackSetExecutionRole 역할을 만듭니다. 이 역할을 만들려면 다음 CLI 명령을 실행하세요.

    $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile administrator   $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile target

자세한 내용은 AWS CloudFormation 설명서의 자체 관리형 권한 부여를 참조하십시오.

DevOps 엔지니어

여러 계정에서 DevOps Guru를 사용할 수 있도록 AWS CDK 스택을 배포하세요.

AWS CDK CdkDevopsGuruStackMultiAccReg 스택은 여러 계정과 리전에 걸쳐 스택 인스턴스를 배포하기 위한 스택 세트를 생성합니다. 스택을 배포하려면 지정된 매개변수와 함께 다음 CLI 명령을 실행합니다.

$cdk deploy CdkDevopsGuruStackMultiAccReg \ --profile administrator \ --parameters AdministratorAccountId=<administrator-account-ID> \ --parameters TargetAccountId=<target-account-ID> \ --parameters RegionIds="<region-1>,<region-2>"

현재 Amazon DevOps Guru는 DevOps Guru FAQ에 나열된 AWS 리전에서 사용할 수 있습니다.

DevOps 엔지니어

옵션 1 - 여러 계정의 모든 스택 리소스에 대해 DevOps Guru 사용 활성화

작업설명필요한 기술

IAM 역할 생성에 필요한 AWS CDK 스택을 배포합니다.

이 패턴은 AWS CloudFormation StackSets를 사용하여 여러 계정에서 스택 작업을 수행합니다. 첫 번째 스택 집합을 생성하는 경우, AWS 계정에 필요한 권한을 설정하려면 다음 IAM 역할을 만들어야 합니다.

  • AWSCloudFormationStackSetAdministrationRole

  • AWSCloudFormationStackSetExecutionRole

참고

역할에는 이러한 정확한 이름이 있어야 합니다.

  1. 다음 CLI 명령을 실행하여 관리자(기본) 계정에서 IAM AWSCloudFormationStackSetAdministrationRole 역할을 만듭니다.

    $cdk deploy CdkStackSetAdminRole --profile administrator
  2. 스택 인스턴스를 실행하려는 모든 대상 계정에서 IAM AWSCloudFormationStackSetExecutionRole 역할을 만듭니다. 이 역할을 만들려면 다음 CLI 명령을 실행하세요.

    $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile administrator   $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile target

자세한 내용은 AWS CloudFormation 설명서의 자체 관리형 권한 부여를 참조하십시오.

DevOps 엔지니어

여러 계정에서 DevOps Guru를 사용할 수 있도록 AWS CDK 스택을 배포하세요.

AWS CDK CdkDevopsGuruStackMultiAccReg 스택은 여러 계정과 리전에 걸쳐 스택 인스턴스를 배포하기 위한 스택 세트를 생성합니다. 스택을 배포하려면 지정된 매개변수와 함께 다음 CLI 명령을 실행합니다.

$cdk deploy CdkDevopsGuruStackMultiAccReg \ --profile administrator \ --parameters AdministratorAccountId=<administrator-account-ID> \ --parameters TargetAccountId=<target-account-ID> \ --parameters RegionIds="<region-1>,<region-2>"

현재 Amazon DevOps Guru는 DevOps Guru FAQ에 나열된 AWS 리전에서 사용할 수 있습니다.

DevOps 엔지니어
작업설명필요한 기술

OU ID를 추출합니다.

AWS Organizations 콘솔에서 DevOps를 사용하도록 설정할 조직 단위의 ID를 식별합니다.

DevOps 엔지니어

OU에 대한 서비스 관리형 권한을 활성화합니다.

계정 관리를 위해 AWS Organizations를 사용하는 경우, 서비스 관리 권한을 부여하여 DevOps Guru를 사용하도록 설정해야 합니다. IAM 역할을 수동으로 만드는 대신 조직 기반 신뢰할 수 있는 액세스 및 서비스 연결 역할(SLR)을 사용하세요.

DevOps 엔지니어

OU 전반에서 DevOps Guru를 지원하기 위해 AWS CDK 스택을 배포하세요.

AWS CDK CdkDevopsguruStackOrgUnit 스택을 통해 OU 전반에서 DevOps Guru 서비스를 이용할 수 있습니다. 스택을 배포하려면 지정된 매개변수와 함께 다음 명령을 실행하세요.

$cdk deploy CdkDevopsguruStackOrgUnit \ --profile administrator \ --parameters RegionIds="<region-1>,<region-2>" \ --parameters OrganizationalUnitIds="<OU-1>,<OU-2>"
DevOps 엔지니어

옵션 2 - OU의 모든 스택 리소스에 대해 DevOps Guru 활성화

작업설명필요한 기술

OU ID를 추출합니다.

AWS Organizations 콘솔에서 DevOps를 사용하도록 설정할 조직 단위의 ID를 식별합니다.

DevOps 엔지니어

OU에 대한 서비스 관리형 권한을 활성화합니다.

계정 관리를 위해 AWS Organizations를 사용하는 경우, 서비스 관리 권한을 부여하여 DevOps Guru를 사용하도록 설정해야 합니다. IAM 역할을 수동으로 만드는 대신 조직 기반 신뢰할 수 있는 액세스 및 서비스 연결 역할(SLR)을 사용하세요.

DevOps 엔지니어

OU 전반에서 DevOps Guru를 지원하기 위해 AWS CDK 스택을 배포하세요.

AWS CDK CdkDevopsguruStackOrgUnit 스택을 통해 OU 전반에서 DevOps Guru 서비스를 이용할 수 있습니다. 스택을 배포하려면 지정된 매개변수와 함께 다음 명령을 실행하세요.

$cdk deploy CdkDevopsguruStackOrgUnit \ --profile administrator \ --parameters RegionIds="<region-1>,<region-2>" \ --parameters OrganizationalUnitIds="<OU-1>,<OU-2>"
DevOps 엔지니어
작업설명필요한 기술

IAM 역할 생성에 필요한 AWS CDK 스택을 배포합니다.

첫 번째 옵션에 표시된 필수 IAM 역할을 아직 만들지 않았다면 먼저 만들어야 합니다.

  1. 다음 CLI 명령을 실행하여 관리자(기본) 계정에서 IAM AWSCloudFormationStackSetAdministrationRole 역할을 만듭니다.

    $cdk deploy CdkStackSetAdminRole --profile administrator
  2. 스택 인스턴스를 실행하려는 모든 대상 계정에서 IAM AWSCloudFormationStackSetExecutionRole 역할을 만듭니다. 이 역할을 만들려면 CLI 명령을 실행하세요.

    $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile administrator $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile target

자세한 내용은 AWS CloudFormation 설명서의 자체 관리형 권한 부여를 참조하십시오.

DevOps 엔지니어

기존 스택을 삭제하세요.

이미 첫 번째 옵션을 사용하여 모든 스택 리소스에 대해 DevOps Guru를 사용하도록 설정했으면 다음 명령을 사용하여 이전 스택을 삭제할 수 있습니다.

$cdk destroy CdkDevopsGuruStackMultiAccReg --profile administrator

또는 스택을 다시 배포할 때  RegionIds 매개변수를 변경하여 스택이 이미 존재함 오류를 방지할 수 있습니다.

DevOps 엔지니어

스택 목록으로 AWS CDK 스택을 업데이트하세요.

  1. /amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-multi-acc-reg-spec-stack.ts 파일을 편집합니다.

  2. Resources, CloudFormation, StackNames, 아래에 DevOps Guru를 사용하도록 설정할 스택을 나열합니다. 데모용으로 이 매개변수는 CdkInfrastructureStack 스택을 지정하지만 요구 사항에 따라 이 항목을 편집할 수 있습니다.

  3. 파일을 저장하고 닫습니다.

  4. 스택 템플릿을 합성하고 업데이트하려면 다음을 실행합니다.

     $cdk synth
데이터 엔지니어

여러 계정에서 특정 스택 리소스에 대해 DevOps Guru를 사용할 수 있도록 AWS CDK 스택을 배포하세요.

AWS CDK CdkDevopsGuruStackMultiAccRegSpecStacks 스택을 사용하면 여러 계정에서 특정 스택 리소스에 대한 DevOps Guru를 사용할 수 있습니다. 스택을 배포하려면 다음 명령을 실행하세요.

$cdk deploy CdkDevopsGuruStackMultiAccRegSpecStacks \ --profile administrator \ --parameters AdministratorAccountId=<administrator-account-ID> \ --parameters TargetAccountId=<target-account-ID> \ --parameters RegionIds="<region-1>,<region-2>"
참고

이전에 옵션 1에 대해이 스택을 배포한 경우 Stacks가 이미 존재하는 오류를 방지하려면 RegionIds 파라미터를 변경합니다(사용 가능한 리전 중에서 선택해야 함).

DevOps 엔지니어

옵션 3 - 여러 계정에서 특정 스택 리소스에 대해 DevOps Guru 사용 활성화

작업설명필요한 기술

IAM 역할 생성에 필요한 AWS CDK 스택을 배포합니다.

첫 번째 옵션에 표시된 필수 IAM 역할을 아직 만들지 않았다면 먼저 만들어야 합니다.

  1. 다음 CLI 명령을 실행하여 관리자(기본) 계정에서 IAM AWSCloudFormationStackSetAdministrationRole 역할을 만듭니다.

    $cdk deploy CdkStackSetAdminRole --profile administrator
  2. 스택 인스턴스를 실행하려는 모든 대상 계정에서 IAM AWSCloudFormationStackSetExecutionRole 역할을 만듭니다. 이 역할을 만들려면 CLI 명령을 실행하세요.

    $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile administrator $cdk deploy CdkStackSetExecRole \ --parameters AdministratorAccountId=<administrator-account-ID> \ --profile target

자세한 내용은 AWS CloudFormation 설명서의 자체 관리형 권한 부여를 참조하십시오.

DevOps 엔지니어

기존 스택을 삭제하세요.

이미 첫 번째 옵션을 사용하여 모든 스택 리소스에 대해 DevOps Guru를 사용하도록 설정했으면 다음 명령을 사용하여 이전 스택을 삭제할 수 있습니다.

$cdk destroy CdkDevopsGuruStackMultiAccReg --profile administrator

또는 스택을 다시 배포할 때  RegionIds 매개변수를 변경하여 스택이 이미 존재함 오류를 방지할 수 있습니다.

DevOps 엔지니어

스택 목록으로 AWS CDK 스택을 업데이트하세요.

  1. /amazon-devopsguru-cdk-samples/lib/cdk-devopsguru-multi-acc-reg-spec-stack.ts 파일을 편집합니다.

  2. Resources, CloudFormation, StackNames, 아래에 DevOps Guru를 사용하도록 설정할 스택을 나열합니다. 데모용으로 이 매개변수는 CdkInfrastructureStack 스택을 지정하지만 요구 사항에 따라 이 항목을 편집할 수 있습니다.

  3. 파일을 저장하고 닫습니다.

  4. 스택 템플릿을 합성하고 업데이트하려면 다음을 실행합니다.

     $cdk synth
데이터 엔지니어

여러 계정에서 특정 스택 리소스에 대해 DevOps Guru를 사용할 수 있도록 AWS CDK 스택을 배포하세요.

AWS CDK CdkDevopsGuruStackMultiAccRegSpecStacks 스택을 사용하면 여러 계정에서 특정 스택 리소스에 대한 DevOps Guru를 사용할 수 있습니다. 스택을 배포하려면 다음 명령을 실행하세요.

$cdk deploy CdkDevopsGuruStackMultiAccRegSpecStacks \ --profile administrator \ --parameters AdministratorAccountId=<administrator-account-ID> \ --parameters TargetAccountId=<target-account-ID> \ --parameters RegionIds="<region-1>,<region-2>"
참고

이전에 옵션 1에 대해이 스택을 배포한 경우 Stacks가 이미 존재하는 오류를 방지하려면 RegionIds 파라미터를 변경합니다(사용 가능한 리전 중에서 선택해야 함).

DevOps 엔지니어
작업설명필요한 기술

샘플 서버리스 인프라 스택을 배포하세요.

AWS CDK CdkInfrastructureStack 스택은 API 게이트웨이, 람다, DynamoDB 테이블과 같은 서버리스 구성 요소를 배포하여 DevOps Guru의 인사이트를 보여줍니다. 스택을 배포하려면 다음 명령을 실행하세요. 

$cdk deploy CdkInfrastructureStack --profile administrator
DevOps 엔지니어

DynamoDB에 샘플 레코드를 삽입하세요.

다음 명령을 실행하여 샘플 레코드로 DynamoDB 테이블을 채웁니다. populate-shops-dynamodb-table.json 스크립트의 올바른 경로를 입력합니다.

$aws dynamodb batch-write-item \ --request-items file://scripts/populate-shops-dynamodb-table.json \ --profile administrator

이 명령은 다음 출력을 표시합니다.

{ "UnprocessedItems": {} }
DevOps 엔지니어

DynamoDB에서 삽입된 레코드를 확인하세요.

DynamoDB 테이블에 populate-shops-dynamodb-table.json 파일의 샘플 레코드가 포함되어 있는지 확인하려면 AWS CDK 스택의 출력으로 게시되는 ListRestApiEndpointMonitorOperator API의 URL에 액세스합니다. 이 URL은 CdkInfrastructureStack 스택용 AWS CloudFormation 콘솔의 출력 탭에서도 찾을 수 있습니다. AWS CDK 출력은 다음과 유사하게 표시됩니다.

CdkInfrastructureStack.CreateRestApiMonitorOperatorEndpointD1D00045 = https://oure17c5vob.execute-api.<your-region>.amazonaws.com/prod/ CdkInfrastructureStack.ListRestApiMonitorOperatorEndpointABBDB8D8 = https://cdff8icfrn4.execute-api.<your-region>.amazonaws.com/prod/
DevOps 엔지니어

리소스가 기준선 설정을 완료할 때까지 기다립니다.

이 서버리스 스택에는 몇 가지 리소스가 있습니다. 다음 단계를 수행하기 전에 2시간 정도 기다리는 것이 좋습니다. 이 스택을 프로덕션 환경에 배포하는 경우 DevOps Guru에서 모니터링하도록 선택한 리소스 수에 따라 기준선 설정을 완료하는 데 최대 24시간이 걸릴 수 있습니다.

DevOps 엔지니어

AWS CDK 인프라 스택 배포

작업설명필요한 기술

샘플 서버리스 인프라 스택을 배포하세요.

AWS CDK CdkInfrastructureStack 스택은 API 게이트웨이, 람다, DynamoDB 테이블과 같은 서버리스 구성 요소를 배포하여 DevOps Guru의 인사이트를 보여줍니다. 스택을 배포하려면 다음 명령을 실행하세요. 

$cdk deploy CdkInfrastructureStack --profile administrator
DevOps 엔지니어

DynamoDB에 샘플 레코드를 삽입하세요.

다음 명령을 실행하여 샘플 레코드로 DynamoDB 테이블을 채웁니다. populate-shops-dynamodb-table.json 스크립트의 올바른 경로를 입력합니다.

$aws dynamodb batch-write-item \ --request-items file://scripts/populate-shops-dynamodb-table.json \ --profile administrator

이 명령은 다음 출력을 표시합니다.

{ "UnprocessedItems": {} }
DevOps 엔지니어

DynamoDB에서 삽입된 레코드를 확인하세요.

DynamoDB 테이블에 populate-shops-dynamodb-table.json 파일의 샘플 레코드가 포함되어 있는지 확인하려면 AWS CDK 스택의 출력으로 게시되는 ListRestApiEndpointMonitorOperator API의 URL에 액세스합니다. 이 URL은 CdkInfrastructureStack 스택용 AWS CloudFormation 콘솔의 출력 탭에서도 찾을 수 있습니다. AWS CDK 출력은 다음과 유사하게 표시됩니다.

CdkInfrastructureStack.CreateRestApiMonitorOperatorEndpointD1D00045 = https://oure17c5vob.execute-api.<your-region>.amazonaws.com/prod/ CdkInfrastructureStack.ListRestApiMonitorOperatorEndpointABBDB8D8 = https://cdff8icfrn4.execute-api.<your-region>.amazonaws.com/prod/
DevOps 엔지니어

리소스가 기준선 설정을 완료할 때까지 기다립니다.

이 서버리스 스택에는 몇 가지 리소스가 있습니다. 다음 단계를 수행하기 전에 2시간 정도 기다리는 것이 좋습니다. 이 스택을 프로덕션 환경에 배포하는 경우 DevOps Guru에서 모니터링하도록 선택한 리소스 수에 따라 기준선 설정을 완료하는 데 최대 24시간이 걸릴 수 있습니다.

DevOps 엔지니어
작업설명필요한 기술

AWS CDK 인프라 스택을 업데이트하세요.

DevOps Guru 인사이트를 시험해 보기 위해 몇 가지 구성을 변경하여 일반적인 운영 문제를 재현해 볼 수 있습니다.

  1. /amazon-devopsguru-cdk-samples/lib/infrastructure-stack.ts 파일을 편집합니다.

  2. DDB Table 섹션에서 DynamoDB 테이블의 읽기 용량을 5에서 1로 변경합니다.

  3. 파일을 저장하고 닫습니다.

  4. 다음 명령을 실행하여 업데이트된 AWS CDK 인프라 스택을 합성하고 배포합니다.

    $cdk synth $cdk deploy CdkInfrastructureStack --profile administrator
DevOps 엔지니어

API에 HTTP 요청을 삽입합니다.

ListRestApiMonitorOperatorEndpointxxxx API에 HTTP 요청 형태로 인그레스 트래픽을 삽입합니다.

  1. Python 스크립트 /amazon-devopsguru-cdk-samples/scripts/sendAPIRequest.py을 편집합니다.

  2. ListRestApiMonitorOperatorEndpointxxxx에 대한 API 링크로 url 변수를 업데이트합니다. 이 URL은 AWS CDK 배포 명령의 출력 또는 AWS Cloudformation 콘솔의 스택에 대한 출력 탭에서 찾을 수 있습니다.

  3. 파일을 저장하고 닫습니다.

  4. 다음 명령을 사용하여 Python 스크립트를 실행합니다.

    $python sendAPIRequest.py
  5. 200 상태 코드를 받았는지 확인하세요.

  6. 빠른 속도로 트래픽을 유입하려면 여러 대(가급적 4대)의 터미널에서 스크립트를 실행해야 할 수 있습니다.

  7. 스크립트가 약 10분 동안 반복 실행되면 DevOps Guru 콘솔에서 운영 인사이트를 확인할 수 있습니다.

DevOps 엔지니어

DevOps Guru 인사이트를 검토합니다.

표준 조건에서 DevOps Guru 대시보드의 진행 중인 인사이트 카운터에 0이 표시됩니다. 이상 징후가 감지되면 인사이트 형태로 경보를 발령합니다. 탐색 창에서 인사이트를 선택하여 개요, 집계된 메트릭, 관련 이벤트, 권장 사항 등 이상 징후에 대한 세부 정보를 확인합니다. 인사이트 검토에 관한 자세한 내용은 Amazon DevOps Guru 블로그 게시물에서 AIOps를 사용하여 운영 인사이트 얻기를 참조하세요.

DevOps 엔지니어

DevOps Guru 인사이트 생성

작업설명필요한 기술

AWS CDK 인프라 스택을 업데이트하세요.

DevOps Guru 인사이트를 시험해 보기 위해 몇 가지 구성을 변경하여 일반적인 운영 문제를 재현해 볼 수 있습니다.

  1. /amazon-devopsguru-cdk-samples/lib/infrastructure-stack.ts 파일을 편집합니다.

  2. DDB Table 섹션에서 DynamoDB 테이블의 읽기 용량을 5에서 1로 변경합니다.

  3. 파일을 저장하고 닫습니다.

  4. 다음 명령을 실행하여 업데이트된 AWS CDK 인프라 스택을 합성하고 배포합니다.

    $cdk synth $cdk deploy CdkInfrastructureStack --profile administrator
DevOps 엔지니어

API에 HTTP 요청을 삽입합니다.

ListRestApiMonitorOperatorEndpointxxxx API에 HTTP 요청 형태로 인그레스 트래픽을 삽입합니다.

  1. Python 스크립트 /amazon-devopsguru-cdk-samples/scripts/sendAPIRequest.py을 편집합니다.

  2. ListRestApiMonitorOperatorEndpointxxxx에 대한 API 링크로 url 변수를 업데이트합니다. 이 URL은 AWS CDK 배포 명령의 출력 또는 AWS Cloudformation 콘솔의 스택에 대한 출력 탭에서 찾을 수 있습니다.

  3. 파일을 저장하고 닫습니다.

  4. 다음 명령을 사용하여 Python 스크립트를 실행합니다.

    $python sendAPIRequest.py
  5. 200 상태 코드를 받았는지 확인하세요.

  6. 빠른 속도로 트래픽을 유입하려면 여러 대(가급적 4대)의 터미널에서 스크립트를 실행해야 할 수 있습니다.

  7. 스크립트가 약 10분 동안 반복 실행되면 DevOps Guru 콘솔에서 운영 인사이트를 확인할 수 있습니다.

DevOps 엔지니어

DevOps Guru 인사이트를 검토합니다.

표준 조건에서 DevOps Guru 대시보드의 진행 중인 인사이트 카운터에 0이 표시됩니다. 이상 징후가 감지되면 인사이트 형태로 경보를 발령합니다. 탐색 창에서 인사이트를 선택하여 개요, 집계된 메트릭, 관련 이벤트, 권장 사항 등 이상 징후에 대한 세부 정보를 확인합니다. 인사이트 검토에 관한 자세한 내용은 Amazon DevOps Guru 블로그 게시물에서 AIOps를 사용하여 운영 인사이트 얻기를 참조하세요.

DevOps 엔지니어
작업설명필요한 기술

리소스를 정리하고 삭제합니다.

이 패턴을 수행한 다음에는 추가 요금이 발생하지 않도록 생성한 리소스를 제거해야 합니다. 명령을 실행합니다.

$cdk destroy CdkDevopsGuruStackMultiAccReg --profile administrator $cdk destroy CdkDevopsguruStackOrgUnit --profile administrator $cdk destroy CdkDevopsGuruStackMultiAccRegSpecStacks --profile administrator $cdk destroy CdkInfrastructureStack --profile administrator $cdk destroy CdkStackSetAdminRole --profile administrator $cdk destroy CdkStackSetExecRole --profile administrator $cdk destroy CdkStackSetExecRole --profile target
DevOps 엔지니어

정리

작업설명필요한 기술

리소스를 정리하고 삭제합니다.

이 패턴을 수행한 다음에는 추가 요금이 발생하지 않도록 생성한 리소스를 제거해야 합니다. 명령을 실행합니다.

$cdk destroy CdkDevopsGuruStackMultiAccReg --profile administrator $cdk destroy CdkDevopsguruStackOrgUnit --profile administrator $cdk destroy CdkDevopsGuruStackMultiAccRegSpecStacks --profile administrator $cdk destroy CdkInfrastructureStack --profile administrator $cdk destroy CdkStackSetAdminRole --profile administrator $cdk destroy CdkStackSetExecRole --profile administrator $cdk destroy CdkStackSetExecRole --profile target
DevOps 엔지니어

관련 리소스

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.