기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS X-Ray 는 애플리케이션이 제공하는 요청에 대한 데이터를 수집하고, 해당 데이터를 보고, 필터링하고, 인사이트를 얻는 데 사용할 수 있는 도구를 제공하여 문제와 최적화 기회를 식별하는 서비스입니다. 애플리케이션에 대한 추적된 요청의 경우 요청 및 응답뿐만 아니라 애플리케이션이 다운스트림 AWS 리소스, 마이크로서비스, 데이터베이스 및 HTTP 웹 APIs.
X-Ray는 클라우드 애플리케이션을 구동하는 AWS 리소스의 추적 데이터를 사용하여 자세한 서비스 그래프를 생성합니다. 서비스 그래프는 프런트엔드 서비스가 요청을 처리하고 데이터를 유지하기 위해 호출하는 클라이언트, 프런트엔드 서비스 및 백엔드 서비스를 보여줍니다. 서비스 그래프를 사용하여 병목 현상, 지연 시간 급증 및 기타 문제를 식별하여 애플리케이션 성능을 개선합니다.
X-Ray에 대한 자세한 내용은 AWS X-Ray 개발자 안내서를 참조하세요.

추적을 위한 애플리케이션 계측
휴대용 원격 측정 사양인 OpenTelemetry
애플리케이션에서 사용하는 특정 ADOT SDK에 따라 ADOT는 자동 및 수동이라는 최대 두 가지 계측 접근 방식을 지원합니다. SDK를 사용한 계측에 대한 자세한 내용은 ADOT 설명서를
런타임 설정
다음은 추적을 위해 App Runner 서비스 애플리케이션을 계측하기 위한 일반적인 런타임 설정 지침입니다.
런타임에 대한 추적을 설정하려면
-
AWS Distro for OpenTelemetry
(ADOT)의 런타임에 제공된 지침에 따라 애플리케이션을 계측합니다. -
소스 코드 리포지토리를 사용하는 경우
apprunner.yaml
파일의build
섹션에, 컨테이너 이미지를 사용하는 경우 Dockerfile에 필요한OTEL
종속성을 설치합니다. -
소스 코드 리포지토리를 사용하는 경우
apprunner.yaml
파일에서, 컨테이너 이미지를 사용하는 경우 Dockerfile에서 환경 변수를 설정합니다.예 환경 변수
참고
다음 예제에서는
apprunner.yaml
파일에 추가할 중요한 환경 변수를 나열합니다. 컨테이너 이미지를 사용하는 경우 이러한 환경 변수를 Dockerfile에 추가합니다. 그러나 각 런타임에는 자체 ID가 있을 수 있으며 다음 목록에 환경 변수를 더 추가해야 할 수 있습니다. 런타임에 맞게 애플리케이션을 설정하는 방법에 대한 런타임별 지침 및 예제에 대한 자세한 내용은 시작 아래의 AWS Distro for OpenTelemetry를 참조하고 런타임으로 이동합니다. env: - name: OTEL_PROPAGATORS value: xray - name: OTEL_METRICS_EXPORTER value: none - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://localhost:4317 - name: OTEL_RESOURCE_ATTRIBUTES value: 'service.name=example_app'
참고
OTEL_METRICS_EXPORTER=none
는 App Runner Otel 수집기가 지표 로깅을 허용하지 않기 때문에 App Runner의 중요한 환경 변수입니다. 지표 추적만 허용합니다.
런타임 설정 예제
다음 예제에서는 ADOT Python SDK
먼저 다음 예제와 같이 몇 가지 종속성을 추가합니다.
예 requirements.txt
opentelemetry-distro[otlp]>=0.24b0 opentelemetry-sdk-extension-aws~=2.0 opentelemetry-propagator-aws-xray~=1.0
그런 다음 애플리케이션을 계측합니다. 이를 수행하는 방법은 소스 이미지 또는 소스 코드와 같은 서비스 소스에 따라 다릅니다.
서비스 소스가 이미지인 경우 컨테이너 이미지 빌드 및 이미지에서 애플리케이션 실행을 제어하는 Dockerfile을 직접 계측할 수 있습니다. 다음 예제는 Python 애플리케이션에 대해 구성된 Dockerfile을 보여줍니다. 계측 추가는 굵게 강조되어 있습니다.
예 Dockerfile
FROM public.ecr.aws/amazonlinux/amazonlinux:latest
RUN yum install python3.7 -y && curl -O https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && yum update -y
COPY . /app
WORKDIR /app
RUN pip3 install -r requirements.txt
RUN opentelemetry-bootstrap --action=install
ENV OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=urllib3
ENV OTEL_METRICS_EXPORTER=none
ENV OTEL_RESOURCE_ATTRIBUTES='service.name=example_app'
CMD OTEL_PROPAGATORS=xray OTEL_PYTHON_ID_GENERATOR=xray opentelemetry-instrument python3 app.py
EXPOSE 8080
App Runner 서비스 인스턴스 역할에 X-Ray 권한 추가
App Runner 서비스와 함께 X-Ray 추적을 사용하려면 서비스의 인스턴스에 X-Ray 서비스와 상호 작용할 수 있는 권한을 제공해야 합니다. 인스턴스 역할을 서비스와 연결하고 관리형 정책을 X-Ray 권한과 추가하면 됩니다. App Runner 인스턴스 역할에 대한 자세한 내용은 섹션을 참조하세요인스턴스 역할. 인스턴스 역할에 AWSXRayDaemonWriteAccess
관리형 정책을 추가하고 생성하는 동안 서비스에 할당합니다.
App Runner 서비스에 대한 X-Ray 추적 활성화
서비스를 생성하면 App Runner는 기본적으로 추적을 비활성화합니다. 관찰성 구성의 일환으로 서비스에 대해 X-Ray 추적을 활성화할 수 있습니다. 자세한 내용은 관찰성 관리 단원을 참조하십시오.
App Runner API 또는를 사용하는 경우 ObservabilityConfiguration 리소스 객체 내의 AWS CLI TraceConfiguration 객체에는 추적 설정이 포함됩니다. TraceConfiguration ObservabilityConfiguration 추적을 비활성화 상태로 유지하려면 TraceConfiguration
객체를 지정하지 마세요.
콘솔 및 API 사례 모두에서 이전 섹션에서 설명한 인스턴스 역할을 App Runner 서비스와 연결해야 합니다.
App Runner 서비스에 대한 X-Ray 추적 데이터 보기
App Runner 콘솔의 서비스 대시보드 페이지의 관찰성 탭에서 서비스 맵 보기를 선택하여 Amazon CloudWatch 콘솔로 이동합니다.

Amazon CloudWatch 콘솔을 사용하여 애플리케이션이 제공하는 요청에 대한 서비스 맵 및 추적을 볼 수 있습니다. 서비스 맵에는 요청 지연 시간 및 다른 애플리케이션 및 AWS 서비스와의 상호 작용과 같은 정보가 표시됩니다. 코드에 추가하는 사용자 지정 주석을 사용하면 추적을 쉽게 검색할 수 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 ServiceLens를 사용하여 애플리케이션 상태 모니터링을 참조하세요.