View a markdown version of this page

OPS04-BP05 트랜잭션 추적 기능 구현 - AWS Well-Architected Framework

OPS04-BP05 트랜잭션 추적 기능 구현

단일 논리적 작업의 결과로 트리거되고 워크로드의 다양한 경계에 걸쳐 통합되는 이벤트를 내보내도록 애플리케이션 코드를 구현하고 워크로드 구성 요소를 구성합니다. 맵을 생성하여 워크로드 및 서비스에서 트레이스가 어떻게 흐르는지 확인합니다. 구성 요소 간의 관계에 대한 인사이트를 얻고 문제를 식별하고 분석합니다. 수집된 정보를 사용하면 대응이 필요한 경우를 확인하고 문제의 원인을 파악할 수 있습니다.

원하는 결과:

  • 워크로드 전체에서 트랜잭션 트레이스를 수집하여 구성 요소 간의 관계에 대한 인사이트를 얻습니다.

  • 트랜잭션 및 이벤트가 워크로드에서 어떻게 흐르는지 더 잘 이해할 수 있도록 맵을 생성합니다.

일반적인 안티 패턴:

  • 여러 계정에 걸쳐 서버리스 마이크로서비스 아키텍처를 구현했습니다. 고객에게 간헐적인 성능 문제가 있습니다. 트랜잭션 추적 기능이 없어 원인이 되는 기능이나 구성 요소를 파악할 수 없습니다.

  • 워크로드에 성능 병목 현상이 발생합니다. 트랜잭션 추적 기능이 없어 애플리케이션 구성 요소 간의 관계를 확인하고 성능 병목 현상을 식별할 수 없습니다.

  • 추적에 사용되는 식별자는 전역적으로 고유하지 않으므로 워크로드 동작을 분석할 때 추적 충돌이 발생합니다.

이 모범 사례 확립의 이점:

  • 워크로드 전반의 트랜잭션 흐름을 파악하면 워크로드 트랜잭션의 예상 동작에 대한 인사이트를 얻을 수 있습니다.

  • 예상 동작과 워크로드 전반의 예상 동작 변형을 파악할 수 있으므로 필요한 경우 대응할 수 있습니다.

  • 생성된 위치와 관계없이 고유하게 생성된 식별자로 트랜잭션을 정확히 파악할 수 있습니다.

이 모범 사례를 따르지 않을 경우 노출되는 위험 수준: 낮음

구현 가이드

시스템 구성 요소 간의 트랜잭션 흐름 관련 정보를 내보내도록 애플리케이션 및 워크로드를 설계합니다. 트랜잭션에 포함할 데이터는 전역적으로 고유한 트랜잭션 식별자, 트랜잭션 단계, 활성 구성 요소 및 활동 완료 시간입니다. 이 정보를 사용하여 진행 중인 활동과 완료된 활동, 그리고 완료된 활동의 결과를 확인합니다.

고객 사례

AnyCompany Retail에서 모든 트랜잭션에는 전역적으로 고유한 UUID가 생성됩니다. 이 UUID는 트랜잭션 중에 마이크로서비스 간에 전달됩니다. UUID는 사용자가 워크로드와 상호 작용할 때 트랜잭션 트레이스를 생성하는 데 사용됩니다. 워크로드 토폴로지의 맵은 트레이스와 함께 생성되며 워크로드 문제를 해결하고 성능을 개선하는 데 사용됩니다.

구현 단계

  1. 워크로드에서 애플리케이션을 계측하여 트랜잭션 트레이스를 내보냅니다. 각 트랜잭션에 대한 고유 식별자를 생성하고 애플리케이션 간에 식별자를 전달하면 됩니다.

    1. AWS Distro for OpenTelemetry에서 자동 계측을 사용하여 애플리케이션 코드를 수정하지 않고 기존 애플리케이션에서 트레이스를 구현할 수 있습니다.

  2. 애플리케이션 토폴로지의 맵을 생성합니다. 이러한 맵을 사용하면 성능을 개선하고 인사이트를 얻고 문제 해결에 도움을 받을 수 있습니다.

    1. AWS X-Ray는 워크로드에서 애플리케이션의 맵을 생성할 수 있습니다.

구현 계획의 작업 수준: 중간. 트랜잭션 트레이스를 구현하려면 어느 정도의 개발 작업이 필요할 수 있습니다.

리소스

관련 모범 사례:

관련 문서:

관련 동영상:

관련 예시:

관련 서비스: