View a markdown version of this page

AWS CDK를 사용하여 AWS DevOps 에이전트 시작하기 - AWS DevOps 에이전트

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

AWS CDK를 사용하여 AWS DevOps 에이전트 시작하기

개요

이 가이드에서는 AWS 클라우드 개발 키트(AWS CDK)를 사용하여 AWS DevOps 에이전트 리소스를 생성하고 배포하는 방법을 보여줍니다. AWS CDK 애플리케이션은 AWS CloudFormation을 통해 에이전트 공간, AWS 자격 증명 및 액세스 관리(IAM) 역할, 운영자 앱 및 AWS 계정 연결 생성을 자동화합니다.

AWS CDK 접근 방식은 필요한 모든 리소스를 코드형 인프라로 정의하여 CLI 온보딩 가이드에 설명된 수동 단계를 자동화합니다.

AWS DevOps 에이전트는 미국 동부(버지니아 북부), 미국 서부(오레곤), 아시아 태평양(시드니), 아시아 태평양(도쿄), 유럽(프랑크푸르트) 및 유럽(아일랜드)의 6개 AWS 리전에서 사용할 수 있습니다. 지원되는 리전에 대한 자세한 내용은 섹션을 참조하세요지원되는 리전:.

사전 조건

시작하기 전에 다음 사항을 갖췄는지 확인하세요.

  • AWS 적절한 자격 증명으로 설치 및 구성된 명령줄 인터페이스(AWS CLI)

  • Node.js 버전 18 이상

  • AWS CDK 명령줄 인터페이스(CLI)는 전역적으로 설치됩니다. AWS CDK CLI를 설치하려면 다음 명령을 실행합니다.

npm install -g aws-cdk
  • 모니터링(기본) AWS 계정에 대한 하나의 계정

  • (선택 사항) 교차 AWS 계정 모니터링을 설정하려는 경우 두 번째 계정

이 가이드에서 다루는 내용

이 가이드는 두 부분으로 나뉩니다.

  • 1부 - 운영자 앱과 모니터링 계정의 AWS 연결을 사용하여 에이전트 공간을 배포합니다. 이 부분을 완료하면 에이전트가 해당 계정의 문제를 모니터링할 수 있습니다.

  • 2부(선택 사항) - 서비스 계정에 대한 소스 AWS 연결을 추가하고 해당 계정에 교차 계정 IAM 역할을 배포합니다. 이 구성을 사용하면 에이전트 공간이 계정 전체에서 리소스를 모니터링할 수 있습니다.

생성할 리소스

1부: DevOpsAgentStack(모니터링 계정)

  • IAM 역할(DevOpsAgentRole-AgentSpace) - 계정을 모니터링하기 위해 DevOps 에이전트 서비스에서 수임합니다. AIDevOpsAgentAccessPolicy 관리형 정책과 Resource Explorer 서비스 연결 역할 생성을 허용하는 인라인 정책을 포함합니다.

  • IAM 역할(DevOpsAgentRole-WebappAdmin) - 에이전트 작업에 대한 AIDevOpsOperatorAppAccessPolicy 관리형 정책이 있는 운영자 앱 역할입니다.

  • 에이전트 공간(MyCDKAgentSpace) - AWS::DevOpsAgent::AgentSpace CloudFormation 리소스를 사용하여 생성된 중앙 에이전트 공간입니다. 운영자 앱 구성을 포함합니다.

  • 연결(AWS 모니터) - AWS::DevOpsAgent::Association CloudFormation 리소스를 사용하여 모니터링 계정을 에이전트 공간에 연결합니다.

  • 연결(AWS 소스) - (선택 사항) 교차 계정 모니터링을 위해 서비스 계정을 에이전트 스페이스에 연결합니다.

2부: ServiceStack(서비스 계정, 선택 사항)

  • IAM 역할(DevOpsAgentRole-SecondaryAccount) - 이름이 고정된 교차 계정 역할입니다. 모니터링 계정의 에이전트 공간에서 신뢰합니다. AIDevOpsAgentAccessPolicy 관리형 정책과 Resource Explorer 서비스 연결 역할 생성을 허용하는 인라인 정책을 포함합니다.

  • Lambda 함수(echo-service) - 입력 이벤트를 에코백하는 간단한 예제 서비스입니다.

설정

1단계: 샘플 리포지토리 복제

다음 명령을 실행하여 리포지토리를 복제하고 프로젝트 디렉터리로 변경합니다.

git clone https://github.com/aws-samples/sample-aws-devops-agent-cdk.git cd sample-aws-devops-agent-cdk

2단계: 종속성 설치

다음 명령을 실행하여 프로젝트 종속성을 설치합니다.

npm install

1부: 에이전트 공간 배포

이 섹션에서는 모니터링 계정에 에이전트 공간, IAM 역할, 운영자 앱 및 AWS 연결을 생성합니다.

1단계: 모니터링 계정 ID 구성

lib/constants.ts를 열고 모니터링 계정 ID를 설정합니다.

다음 예제에서는 업데이트할 상수를 보여줍니다.

export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";

2단계: AWS CDK 환경 부트스트랩

모니터링 계정에서 AWS CDK를 부트스트래핑하지 않은 경우 다음 명령을 실행합니다.

cdk bootstrap aws://<MONITORING_ACCOUNT_ID>/<REGION> --profile monitoring

3단계: 빌드 및 배포

다음 명령을 실행하여 TypeScript 코드를 빌드하고 스택을 배포합니다.

npm run build cdk deploy DevOpsAgentStack --profile monitoring

4단계: 스택 출력 기록

배포가 완료되면 AWS CDK는 스택 출력을 인쇄합니다. 나중에 사용할 수 있도록 이러한 값을 기록합니다.

다음 예제에서는 예상 출력을 보여줍니다.

Outputs: DevOpsAgentStack.AgentSpaceArn = arn:aws:aidevops:<REGION>:123456789012:agentspace/abc123 DevOpsAgentStack.AgentSpaceRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-AgentSpace DevOpsAgentStack.OperatorRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-WebappAdmin DevOpsAgentStack.AssociationId = assoc-xyz

2부를 완료하려는 경우 AgentSpaceArn 값을 저장합니다. 서비스 계정 스택을 구성하는 데 필요합니다.

5단계: 배포 확인

에이전트 공간이 성공적으로 생성되었는지 확인하려면 다음 AWS CLI 명령을 실행합니다.

aws devopsagent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

이 시점에서 에이전트 공간은 운영자 앱이 활성화되고 모니터링 계정이 연결된 상태로 배포됩니다. 에이전트는이 계정의 문제를 모니터링할 수 있습니다.

2부(선택 사항): 교차 계정 모니터링 추가

이 섹션에서는 에이전트 공간이 두 번째 AWS 계정(서비스 계정)의 리소스를 모니터링할 수 있도록 설정을 확장합니다. 여기에는 다음 두 가지 작업이 포함됩니다.

  1. 서비스 계정을 가리키는 소스 AWS 연결을 DevOpsAgentStack에 추가합니다.

  2. 에이전트 공간을 신뢰하는 IAM 역할을 사용하여 ServiceStack을 서비스 계정에 배포합니다.

중요

계속하기 전에 1부를 완료해야 합니다. ServiceStack에는 DevOpsAgentStack 배포 출력AgentSpaceArn의이 필요합니다.

1단계: 서비스 계정 ID 구성

서비스 계정 ID를 lib/constants.ts 열고 설정합니다.

다음 예제에서는 업데이트할 상수를 보여줍니다.

export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";

DevOpsAgentStack은이 계정 ID를 사용하여 소스 AWS 연결을 생성합니다. 이 값을 설정하기 전에 DevOpsAgentStack을 배포한 경우 다시 배포하여 연결을 생성합니다.

다음 명령을 실행하여 재배포합니다.

npm run build cdk deploy DevOpsAgentStack --profile monitoring

2단계: 에이전트 공간 ARN 설정

DevOpsAgentStack 출력(1부, 4단계)에서 AgentSpaceArn 값을 복사하고에서 설정합니다lib/constants.ts.

다음 예제에서는 업데이트할 상수를 보여줍니다.

export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";

ServiceStack은이 값을 사용하여 보조 계정 역할에 대한 신뢰 정책의 범위를 지정합니다. ServiceStack은이 값이 설정된 경우에만 합성됩니다.

3단계: 서비스 계정 부트스트랩

서비스 계정에서 AWS CDK를 부트스트래핑하지 않은 경우 다음 명령을 실행합니다.

cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service

4단계: ServiceStack 배포

다음 명령을 실행하여 서비스 계정의 자격 증명을 사용하여 ServiceStack을 빌드하고 배포합니다.

npm run build cdk deploy ServiceStack --profile service

이렇게 하면 서비스 계정에 다음 리소스가 생성됩니다.

  • 모니터링 계정의 에이전트 공간을 신뢰하는 IAM 역할(DevOpsAgentRole-SecondaryAccount)

  • 예제 서비스로 사용되는 에코 Lambda 함수(echo-service)

5단계: 배포 확인

Lambda 함수가 성공적으로 배포되었는지 확인하려면 다음 명령을 실행하여 에코 서비스를 테스트합니다.

aws lambda invoke \ --function-name echo-service \ --payload '{"test": "hello world"}' \ --profile service \ response.json cat response.json

문제 해결

이 섹션에서는 일반적인 문제와 해결 방법을 설명합니다.

CloudFormation 리소스 유형을 찾을 수 없음

  • 에 배포하고 있는지 확인합니다지원되는 리전:.

  • AWS CLI가 적절한 권한으로 구성되어 있는지 확인합니다.

IAM 역할 생성 실패

  • 배포 역할에 IAM 역할을 생성할 수 있는 권한이 있는지 확인합니다.

  • 신뢰 정책 조건이 계정 ID와 일치하는지 확인합니다.

"대상 계정에서 역할을 수임할 수 없음"과 함께 교차 계정 배포가 실패합니다.

  • 각 스택은 대상 계정의 자격 증명으로 배포해야 합니다. --profile 플래그를 사용하여 올바른 AWS CLI 프로파일을 지정합니다.

  • 대상 계정에서 AWS CDK가 부트스트랩되었는지 확인합니다.

IAM 전파 지연

  • IAM 역할 변경 사항이 전파되는 데 몇 분 정도 걸릴 수 있습니다. 역할 생성 직후 에이전트 공간 생성에 실패하면 몇 분 정도 기다렸다가 다시 배포합니다.

정리

모든 리소스를 제거하려면 스택을 역순으로 삭제합니다.

다음 명령을 실행하여 스택을 삭제합니다.

# If you deployed the ServiceStack, destroy it first cdk destroy ServiceStack --profile service # Then destroy the DevOpsAgentStack cdk destroy DevOpsAgentStack --profile monitoring

경고:이 작업은 에이전트 공간과 모든 관련 데이터를 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다. 계속하기 전에 중요한 정보를 백업했는지 확인합니다.

보안 고려 사항

  • AWS CDK 애플리케이션은 aidevops.amazonaws.com 서비스 보안 주체만 해당 역할을 수임하도록 허용하는 신뢰 정책을 사용하여 IAM 역할을 생성합니다.

  • 신뢰 정책에는 특정 AWS 계정 및 에이전트 공간 ARN에 대한 액세스를 제한하는 조건이 포함됩니다.

  • 모든 정책은 최소 권한 원칙을 따릅니다. 조직의 보안 요구 사항에 따라 IAM 정책을 검토하고 사용자 지정합니다.

  • 교차 계정 역할(DevOpsAgentRole-SecondaryAccount)은 고정된 이름을 사용하며 특정 에이전트 공간 ARN으로 범위가 지정됩니다.

다음 단계

AWS CDK를 사용하여 AWS DevOps 에이전트를 배포한 후:

  1. DevOps 에이전트 AWS 사용 설명서에서 DevOps 에이전트 기능의 전체 범위에 대해 알아봅니다.

  2. 자동화된 인프라 관리를 위해 AWS CDK 배포를 CI/CD 파이프라인에 통합하는 것이 좋습니다.

추가 리소스