쿠키 기본 설정 선택

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

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

X-Ray로 App Runner 애플리케이션 추적

포커스 모드
X-Ray로 App Runner 애플리케이션 추적 - AWS App Runner

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

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

AWS X-Ray 는 애플리케이션이 제공하는 요청에 대한 데이터를 수집하고, 해당 데이터를 보고, 필터링하고, 인사이트를 얻는 데 사용할 수 있는 도구를 제공하여 문제와 최적화 기회를 식별하는 서비스입니다. 애플리케이션에 대한 추적된 요청의 경우 요청 및 응답뿐만 아니라 애플리케이션이 다운스트림 AWS 리소스, 마이크로서비스, 데이터베이스 및 HTTP 웹 APIs.

X-Ray는 클라우드 애플리케이션을 구동하는 AWS 리소스의 추적 데이터를 사용하여 자세한 서비스 그래프를 생성합니다. 서비스 그래프는 프런트엔드 서비스가 요청을 처리하고 데이터를 유지하기 위해 호출하는 클라이언트, 프런트엔드 서비스 및 백엔드 서비스를 보여줍니다. 서비스 그래프를 사용하여 병목 현상, 지연 시간 급증 및 기타 문제를 식별하여 애플리케이션 성능을 개선합니다.

X-Ray에 대한 자세한 내용은 AWS X-Ray 개발자 안내서를 참조하세요.

App Runner 서비스에 대한 X-Ray 서비스 맵의 예

추적을 위한 애플리케이션 계측

휴대용 원격 측정 사양인 OpenTelemetry를 사용하여 App Runner 서비스 애플리케이션을 추적하도록 계측합니다. 현재 App Runner는 AWS 서비스를 사용하여 원격 AWS 측정 정보를 수집하고 제공하는 OpenTelemetry 구현인 Distro for OpenTelemetryOpenTelemetry(ADOT)를 지원합니다. X-Ray는 추적 구성 요소를 구현합니다.

애플리케이션에서 사용하는 특정 ADOT SDK에 따라 ADOT는 자동수동이라는 최대 두 가지 계측 접근 방식을 지원합니다. SDK를 사용한 계측에 대한 자세한 내용은 ADOT 설명서를 참조하고 탐색 창에서 SDK를 선택합니다.

런타임 설정

다음은 추적을 위해 App Runner 서비스 애플리케이션을 계측하기 위한 일반적인 런타임 설정 지침입니다.

런타임에 대한 추적을 설정하려면
  1. AWS Distro for OpenTelemetry(ADOT)의 런타임에 제공된 지침에 따라 애플리케이션을 계측합니다.

  2. 소스 코드 리포지토리를 사용하는 경우 apprunner.yaml 파일의 build 섹션에, 컨테이너 이미지를 사용하는 경우 Dockerfile에 필요한 OTEL 종속성을 설치합니다.

  3. 소스 코드 리포지토리를 사용하는 경우 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를 사용하여 애플리케이션을 자동 계측하는 방법을 보여줍니다. SDK는 Python 코드의 한 줄을 추가하지 않고 애플리케이션의 Python 프레임워크에서 사용하는 값을 설명하는 원격 측정 데이터로 스팬을 자동으로 생성합니다. 두 소스 파일에서 몇 줄만 추가하거나 수정해야 합니다.

먼저 다음 예제와 같이 몇 가지 종속성을 추가합니다.

예 requirements.txt
opentelemetry-distro[otlp]>=0.24b0 opentelemetry-sdk-extension-aws~=2.0 opentelemetry-propagator-aws-xray~=1.0

그런 다음 애플리케이션을 계측합니다. 이를 수행하는 방법은 소스 이미지 또는 소스 코드와 같은 서비스 소스에 따라 다릅니다.

Source image

서비스 소스가 이미지인 경우 컨테이너 이미지 빌드 및 이미지에서 애플리케이션 실행을 제어하는 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
Source code repository

서비스 소스가 애플리케이션 소스가 포함된 리포지토리인 경우 App Runner 구성 파일 설정을 사용하여 이미지를 간접적으로 계측합니다. 이러한 설정은 App Runner가 생성하여 애플리케이션용 이미지를 빌드하는 데 사용하는 Dockerfile을 제어합니다. 다음 예제는 Python 애플리케이션에 대해 구성된 App Runner 구성 파일을 보여줍니다. 계측 추가는 굵게 강조되어 있습니다.

예 apprunner.yaml
version: 1.0 runtime: python3 build: commands: build: - pip install -r requirements.txt - opentelemetry-bootstrap --action=install run: command: opentelemetry-instrument python app.py network: port: 8080 env: - name: OTEL_PROPAGATORS value: xray - name: OTEL_METRICS_EXPORTER value: none - name: OTEL_PYTHON_ID_GENERATOR value: xray - name: OTEL_PYTHON_DISABLED_INSTRUMENTATIONS value: urllib3 - name: OTEL_RESOURCE_ATTRIBUTES value: 'service.name=example_app'

서비스 소스가 이미지인 경우 컨테이너 이미지 빌드 및 이미지에서 애플리케이션 실행을 제어하는 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 콘솔로 이동합니다.

관찰성 탭을 보여주는 App Runner 서비스 대시보드 페이지

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

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