Amazon CloudWatch Observability Access Manager를 사용하여 중앙 집중식 모니터링 - AWS 권장 가이드

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

Amazon CloudWatch Observability Access Manager를 사용하여 중앙 집중식 모니터링

작성자: Anand Krishna Varanasi(AWS), Jimmy Morgan(AWS), Ashish Kumar(AWS), Balaji Vedagiri(AWS), JAGDISH KOMAKULA (AWS), Sarat Chandra Pothula(AWS) 및 Vivek Thangamuthu(AWS)

코드 리포지토리: cloudwatch-obervability-access-manager-terraform

환경: 프로덕션

기술: 인프라, 관리 및 거버넌스, 다중 계정 전략

AWS 서비스: Amazon CloudWatch, Amazon CloudWatch Logs

요약

관찰성은 애플리케이션을 모니터링하고, 이해하고, 문제를 해결하는 데 매우 중요합니다. AWS Control Tower 또는 랜딩 영역 구현과 같이 여러 계정에 걸쳐 있는 애플리케이션은 많은 수의 로그와 추적 데이터를 생성합니다. 문제를 빠르게 해결하거나 사용자 분석 또는 비즈니스 분석을 이해하려면 모든 계정에서 공통의 관찰성 플랫폼이 필요합니다. Amazon CloudWatch Observability Access Manager를 사용하면 중앙 위치에서 여러 계정 로그에 액세스하고 제어할 수 있습니다.

Observability Access Manager를 사용하여 소스 계정에서 생성된 관찰성 데이터 로그를 보고 관리할 수 있습니다. 소스 계정은 리소스에 대한 관찰 가능성 데이터를 AWS 계정 생성하는 개인입니다. 관찰성 데이터는 소스 계정과 모니터링 계정 간에 공유됩니다. 공유 관측성 데이터에는 Amazon 의 지표 CloudWatch, Amazon CloudWatch Logs의 로그 및 의 추적이 포함될 수 있습니다 AWS X-Ray. 자세한 내용은 Observability Access Manager 설명서를 참조하세요.

이 패턴은 여러 에서 실행되는 애플리케이션 또는 인프라가 AWS 계정 있고 로그를 보는 데 공통된 위치가 필요한 사용자를 위한 것입니다. Terraform을 사용하고 Observability Access Manager를 설정하여 이러한 애플리케이션 또는 인프라의 상태를 모니터링하는 방법을 설명합니다. 이 솔루션은 여러 가지 방법으로 설치할 수 있습니다.

에픽 섹션의 지침은 수동 구현을 다룹니다. AFT 설치 단계는 GitHub Observability Access Manager 리포지토리의 README 파일을 참조하세요.

사전 조건 및 제한 사항

사전 조건 

  • Terraform이 시스템 또는 자동화된 파이프라인에 설치되거나 참조됩니다. (최신 버전을 사용하는 것이 좋습니다.)

  • 중앙 모니터링 계정으로 사용할 수 있는 계정. 다른 계정은 로그를 보기 위해 중앙 모니터링 계정에 대한 링크를 생성합니다.

  • (선택 사항) GitHub, AWS CodeCommit Atlassian Bitbucket 또는 유사한 시스템과 같은 소스 코드 리포지토리입니다. 자동 CI/CD 파이프라인을 사용하는 경우 소스 코드 리포지토리가 필요하지 않습니다.

  • (선택 사항) 에서 코드 검토 및 코드 공동 작업을 위한 풀 요청(PRs)을 생성하는 권한입니다 GitHub.

제한 사항

Observability Access Manager에는 다음과 같은 서비스 할당량이 있으며 이는 변경할 수 없습니다. 이 기능을 배포하기 전에 이러한 할당량을 고려하세요. 자세한 내용은 CloudWatch 설명서의 CloudWatch 서비스 할당량을 참조하세요.

  • 소스 계정 링크: 각 소스 계정을 최대 다섯 모니터링 계정에 연결할 수 있습니다.

  • 싱크 : 계정에 대해 여러 싱크를 만들 수 있지만 마다 하나의 싱크만 AWS 리전 허용됩니다.

또한 다음과 같습니다.

  • 싱크와 링크는 동일한 에서 생성되어야 합니다. AWS 리전교차 리전일 수 없습니다.

리전 간 및 계정 간 모니터링

리전 간 교차 계정 모니터링의 경우 다음 옵션 중 하나를 선택할 수 있습니다.

아키텍처

구성 요소

CloudWatch Observability Access Manager는 계정 간 관찰 가능성을 지원하는 두 가지 주요 구성 요소로 구성됩니다.

  • 싱크는 소스 계정이 중앙 모니터링 계정으로 관찰성 데이터를 전송할 수 있는 기능을 제공합니다. 싱크는 기본적으로 소스 계정을 연결할 수 있는 게이트웨이 정션을 제공합니다. 싱크 게이트웨이 또는 연결은 하나만 있을 수 있으며 여러 계정을 연결할 수 있습니다.

  • 각 소스 계정에는 싱크 게이트웨이 정션으로 연결되는 링크가 있으며 이 링크를 통해 관찰성 데이터가 전송됩니다. 각 소스 계정에서 링크를 만들기 전에 싱크를 만들어야 합니다.

아키텍처

다음 다이어그램은 Observability Access Manager와 그 구성 요소를 보여줍니다.

싱크 및 링크를 통한 교차 계정 관찰성을 위한 아키텍처입니다.

도구

AWS 서비스

  • Amazon CloudWatch은 AWS 리소스 및 실행 중인 애플리케이션의 지표를 AWS 실시간으로 모니터링할 수 있도록 도와줍니다.

  • AWS Organizations 는 여러 를 생성 및 중앙에서 관리하는 조직에 통합하는 AWS 계정 데 도움이 되는 계정 관리 서비스입니다.

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

도구

  • Terraform은 의 코드형 인프라(IaC) 도구 HashiCorp 로, 클라우드 및 온프레미스 리소스를 생성하고 관리하는 데 도움이 됩니다.

  • AWS Control Tower Account Factory for Terraform(AFT)은 에서 계정을 프로비저닝하고 사용자 지정하는 데 도움이 되는 Terraform 파이프라인을 설정합니다 AWS Control Tower. 선택적으로 AFT를 사용하여 여러 계정에서 대규모로 Observability Access Manager를 설정할 수 있습니다.

코드 리포지토리

이 패턴의 코드는 GitHub Observability Access Manager 리포지토리에서 사용할 수 있습니다.

모범 사례

  • AWS Control Tower 환경에서 로깅 계정을 중앙 모니터링 계정(싱크)으로 표시합니다.

  • 에 여러 계정이 있는 조직이 여러 개 있는 경우 구성 정책에 개별 계정 대신 조직을 포함하는 것이 AWS Organizations좋습니다. 계정 수가 적거나 계정이 싱크 구성 정책에 조직의 일부가 아닌 경우 개별 계정을 대신 포함할 수 있습니다.

에픽

작업설명필요한 기술

리포지토리를 복제합니다.

GitHub Observability Access Manager 리포지토리 복제:

git clone https://github.com/aws-samples/cloudwatch-obervability-access-manager-terraform
AWS DevOps, 클라우드 관리자, AWS 관리자

싱크 모듈의 속성 값을 지정합니다.

main.tf 파일(리포지토리의 deployments/aft-account-customizations/LOGGING/terraform/ 폴더)에서 다음 속성의 값을 지정합니다.

  • sink_name: CloudWatch 싱크의 이름입니다.

  • allowed_oam_resource_types: Observability Access Manager는 현재 CloudWatch 지표, 로그 그룹 및 AWS X-Ray 추적을 지원합니다.

  • allowed_source_accounts: 중앙 CloudWatch 싱크 계정으로 로그를 전송할 수 있는 소스 계정입니다.

  • allowed_source_organizations: 로그를 중앙 CloudWatch 싱크 계정으로 전송할 수 있는 소스 AWS Control Tower 조직입니다.

자세한 내용은 AWS CloudFormation 설명서의 AWS::Oam::Sink를 참조하세요.

AWS DevOps, 클라우드 관리자, AWS 관리자

싱크 모듈을 설치합니다.

모니터링 계정으로 AWS 계정 선택한 의 보안 인증 정보를 내보내고 Observability Access Manager 싱크 모듈을 설치합니다.

Terraform Init Terrafom Plan Terraform Apply
AWS DevOps, 클라우드 관리자, AWS 관리자
작업설명필요한 기술

링크 모듈의 속성 값을 지정합니다.

main.tf 파일(리포지토리의 deployments/aft-account-customizations/LOGGING/terraform/ 폴더)에서 다음 속성의 값을 지정합니다.

  • account_label: 다음 값 중 하나를 사용합니다.

    • $AccountName: 계정의 이름입니다.

    • $AccountEmail: 이메일 도메인을 포함하는 전역적으로 고유한 이메일 주소(예: hello@example.com)입니다.

    • $AccountEmailNoDomain: 도메인 이름이 없는 이메일 주소입니다.

  • allowed_oam_resource_types: Observability Access Manager는 현재 CloudWatch 지표, 로그 그룹 및 AWS X-Ray 추적을 지원합니다.

자세한 내용은 AWS CloudFormation 설명서의 AWS::Oam::Link를 참조하세요.

AWS DevOps, 클라우드 관리자, 클라우드 아키텍트

개별 계정용 링크 모듈을 설치합니다.

개별 계정의 보안 인증 정보를 내보내고 Observability Access Manager 링크 모듈을 설치합니다.

Terraform Plan Terraform Apply

각 계정에 대해 링크 모듈을 개별적으로 설정하거나 AFT를 사용하여 많은 수의 계정에 이 모듈을 자동으로 설치할 수 있습니다.

AWS DevOps, 클라우드 관리자, 클라우드 아키텍트
작업설명필요한 기술

상태 메시지를 확인합니다.

  1. 모니터링 계정에 로그인합니다.

  2. CloudWatch 콘솔 을 엽니다.

  3. 왼쪽 탐색 창에서 설정을 선택합니다.

오른쪽에 녹색 체크 표시가 있는 모니터링 계정 활성화 상태 메시지가 보일 것입니다. 즉, 모니터링 계정에는 다른 계정의 링크가 연결되는 Observability Access Manager 싱크가 있습니다.

연결을 승인합니다 link-to-sink.

  1. 상태 메시지 아래에서 계정을 연결할 리소스 옵션을 선택합니다. 이 정보는 모니터링 계정임을 확인하고 테넌트 소스 계정(로그 , 지표, 추적 )에서 공유되는 데이터를 나열하며 계정 레이블을 $로 표시합니다AccountName.

    이 화면에서는 테넌트 계정을 모니터링 계정에 연결하는 두 가지 옵션인 조직 수준 승인 또는 계정 수준 승인을 제공합니다. 각 옵션에 대해 승인을 위해 AWS CloudFormation 템플릿을 다운로드하거나 각 계정을 개별적으로 승인하도록 선택할 수 있습니다.

  2. 간소화를 위해 모든 계정을 선택하여 각 계정 수준에서 승인합니다. 이 옵션은 계정에 대한 승인 링크를 제공합니다.

  3. 복사URL를 선택하여 링크를 복사합니다.

  4. 각 소스 계정에 로그인합니다.

  5. 브라우저 창에서 링크를 붙여넣고 싱크에 링크 연결 승인을 선택합니다.

  6. 추가 소스 계정에 대해 반복합니다.

자세한 내용은 CloudWatch 설명서의 모니터링 계정과 소스 계정 연결을 참조하세요.

AWS DevOps, 클라우드 관리자, 클라우드 아키텍트
작업설명필요한 기술

교차 계정 데이터를 확인합니다.

  1. 중앙의 모니터링 계정에 로그인합니다.

  2. CloudWatch 콘솔 을 엽니다.

  3. 왼쪽 탐색 창에서 교차 계정 로그, 지표 및 추적을 볼 수 있는 옵션을 선택합니다.

AWS DevOps, 클라우드 관리자, 클라우드 아키텍트
작업설명필요한 기술

다른 계정의 지표, 대시보드, 로그, 위젯, 경보를 확인합니다.

추가 기능으로 CloudWatch 지표, 대시보드, 로그, 위젯 및 경보를 다른 계정과 공유할 수 있습니다. 각 계정은 CloudWatch-CrossAccountSharingRole 라는 IAM 역할을 사용하여 이 데이터에 액세스합니다.

중앙 모니터링 계정과 신뢰 관계가 있는 소스 계정은 이 역할을 맡아 모니터링 계정의 데이터를 볼 수 있습니다.

CloudWatch 는 역할을 생성하기 위한 샘플 CloudFormation 스크립트를 제공합니다. 데이터를 보려는 계정에서 이 스크립트IAM를 실행하려면 d에서 역할 관리를 선택합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::XXXXXXXXX:root", "arn:aws:iam::XXXXXXXXX:root", "arn:aws:iam::XXXXXXXXX:root", "arn:aws:iam::XXXXXXXXX:root" ] }, "Action": "sts:AssumeRole" } ] }

자세한 내용은 CloudWatch 설명서의 에서 교차 계정 기능 활성화 CloudWatch를 참조하세요.

AWS DevOps, 클라우드 관리자, 클라우드 아키텍트
작업설명필요한 기술

교차 계정 교차 리전 액세스를 설정합니다.

중앙 모니터링 계정에서 필요에 따라 계정 선택기를 추가하여 인증 없이 계정 간에 쉽게 전환하고 데이터를 볼 수 있습니다.

  1. 중앙의 모니터링 계정에 로그인합니다.

  2. CloudWatch 콘솔 을 엽니다.

  3. 왼쪽 탐색 창에서 설정을 선택합니다.

  4. 교차 계정 교차 리전 보기 섹션에서 구성을 선택합니다.

  5. 활성화를 선택한 다음 콘솔에서 선택기 보기 확인란을 선택합니다.

  6. 다음 옵션 중 하나를 선택합니다.

    • 계정 ID 입력: 이 옵션을 선택하면 교차 계정 데이터를 보기 위해 계정을 변경할 때마다 계정 ID를 수동으로 입력하라는 메시지가 표시됩니다.

    • AWS 조직 계정 선택기: CloudWatch 와 통합 AWS Organizations한 경우 이 옵션은 조직의 전체 계정 목록이 포함된 드롭다운 선택기를 제공합니다.

    • 사용자 지정 계정 선택기: 이 옵션을 사용하면 계정 목록을 수동으로 입력하여 선택기IDs를 채울 수 있습니다.

  7. Save changes(변경 사항 저장)를 선택합니다.

자세한 내용은 CloudWatch 설명서의 교차 계정 교차 리전 CloudWatch 콘솔을 참조하세요.

AWS DevOps, 클라우드 관리자, 클라우드 아키텍트

관련 리소스