Cloud Run 문제 해결 소개

이 페이지에서는 Cloud Run 오류의 일반적인 문제 해결 전략을 설명합니다. Personalized Service Health는 프로젝트에 영향을 미치는 Google Cloud 서비스 중단을 식별하기 위해 기본 Google Cloud 인프라에서 발생한 모든 Cloud Run 이슈를 게시합니다. Personalized Service Health 이벤트에 알림을 설정하는 것도 고려해 보세요. 모든 Google Cloud 서비스에 영향을 미치는 이슈에 대한 자세한 내용은 Google Cloud Service Health 대시보드를 참고하세요.

Cloud Run 리소스와 관련된 문제를 해결하려면 Cloud Run 문제 해결 가이드의 다음 섹션을 참조하세요.

Cloud Run 문제 해결 전략

다음 섹션에서는 일반적인 문제 해결 전략을 적용하여 오류를 해결하는 방법을 설명합니다. 문제 해결 가이드의 단계를 따르고도 오류가 계속 발생하면 다음 단계를 참조하세요.

Cloud Logging을 사용하여 유효한 로그 출력

디버깅을 위한 유효한 로그가 있으면 Cloud Run 리소스를 더 쉽게 해결할 수 있습니다. 컨테이너 로그와 요청 로그를 연결하는 방식으로 로그를 작성해야 합니다.

상관관계가 지정된 로그를 사용하면 추가 분석이 필요한 요청을 식별하고, 요청 트레이스를 찾고, 문제의 근본 원인을 분석할 수 있습니다. 로그 작성에 관한 자세한 내용은 컨테이너 로그 작성을 참조하세요.

로그 탐색기를 사용하여 인스턴스 조사

Cloud Run의 각 요청 로그에는 요청을 처리하는 인스턴스를 식별하는 instanceId 필드가 포함됩니다. 지정하는 동시 실행 값에 따라 단일 인스턴스가 여러 요청을 동시에 처리할 수 있습니다.

한 번에 로그를 내보내는 인스턴스가 여러 개 있는 경우 인스턴스를 필터링하여 인스턴스 비정상 종료로 이어지는 순차적 요청을 식별해야 합니다.

인스턴스를 필터링하면 콜드 스타트 또는 지연 시간 증가와 관련된 특정 성능 문제를 디버그할 수 있습니다. 이러한 문제는 후속 동시 요청에서 값이 재사용될 때 전역 범위에서 선언된 변수에 바인딩될 수도 있습니다. 인스턴스에 대해 단일 연결 풀 전역 객체를 만든 다음 여러 요청 내에서 이를 사용하는 경우를 예로 들 수 있습니다.

로그 탐색기에서 특정 인스턴스를 필터링하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

  2. 페이지 상단에서 기존 Google Cloud 프로젝트를 선택하거나 새 프로젝트를 만듭니다.

  3. 서비스에 리소스 Cloud Run 버전을 또는 작업에 Cloud Run 작업을 선택합니다.

  4. 로그 항목을 펼쳐 특정 인스턴스를 기준으로 필터링합니다.

  5. 인스턴스 ID 값을 클릭하고 일치하는 항목 표시를 선택합니다.

예기치 않은 요청 지연 시간 해결

지연 시간 문제가 발생하면 다음 단계를 따르세요.

  1. 지연 시간이 Cloud Run 리소스의 모든 요청에 영향을 미치는지 아니면 일부 요청에만 영향을 미치는지 확인합니다. Cloud Run은 Cloud Monitoring과 자동으로 통합되므로 설정이나 구성이 필요하지 않습니다.

    개별 요청 지연 시간 측정항목을 확인하려면 다음 단계를 따르세요.

    1. Google Cloud 콘솔에서 Cloud Run 페이지로 이동합니다.

      Cloud Run으로 이동

    2. 목록에서 서비스 또는 작업을 선택합니다.

    3. 측정항목 탭을 클릭하여 요청 지연 시간 대시보드를 표시합니다.

    Cloud Monitoring에서 지연 시간 측정항목을 보려면 측정항목 목록에서 Cloud Run 버전 > Request_latencies > 요청 지연 시간을 선택합니다.

    사용 가능한 모든 Cloud Run 측정항목 및 보다 자세한 세부정보의 목록은 Cloud Monitoring의 Google Cloud 측정항목을 참고하세요.

  2. 지연 시간이 긴 요청을 식별하여 지연 시간의 원인을 파악합니다. Cloud Trace 또는 Cloud Logging을 사용하여 특정 요청에 걸린 시간을 파악할 수 있습니다.

    Cloud Logging을 사용하여 지연 시간이 긴 요청을 식별하려면 traceSampled=true 필터를 적용하여 Cloud Logging의 로그를 Cloud Trace의 trace와 연결합니다. 자세한 내용은 Cloud Logging과 통합을 참조하세요.

    때때로 서비스에 대한 요청과 같은 종속 항목으로 인해 지연 문제가 발생할 수 있습니다. 이러한 요청을 식별하려면 해당 요청을 대상으로 하는 명시적인 로깅이 있어야 합니다. 이러한 로그를 출력하지 않으면 Cloud Run 서비스에서 발생하는 지연 문제로 보일 수 있습니다.

    또한 선택한 기간 컨텍스트에서 지연 시간 급증을 평가하는 것이 좋습니다. 이러한 급증의 중요성은 상대적입니다. 짧은 기간의 대규모 급증이 더 긴 기간에서는 무시할 만할 수 있고 그 반대의 경우도 마찬가지입니다. 따라서 기간은 지연 시간 데이터의 해석에 큰 영향을 미칩니다.

  3. 최소 인스턴스 수를 늘려 수신 요청의 지연 시간을 줄이고 콜드 스타트를 방지해 보세요. 소스 코드를 수정하고 확장 설정을 조정하여 지원 서비스에 대한 연결 수를 제한하는 것도 고려해야 합니다.

    자세한 내용은 성능 최적화를 참조하세요.

Gemini 어시스턴스를 이용한 문제 해결

Gemini Cloud Assist 채팅을 사용하여 로그를 분석하고 오류를 해결할 수 있습니다. Gemini 어시스턴스를 이용하면 도구의 로그 분석 기능을 활용하여 오류를 신속하게 파악하고 해결할 수 있으므로 소중한 시간과 노력을 절약할 수 있습니다.

Google Cloud 콘솔에서 Gemini Cloud Assist를 사용하려면 다음 단계를 따르세요.

  1. Gemini Cloud Assist가 Google Cloud 사용자 계정과 프로젝트에 설정되어 있는지 확인합니다.
  2. Google Cloud 프로젝트에서 Cloud Run 개발 환경을 설정하고 적절한 배포 권한이 있는지 확인합니다.

  3. Google Cloud 콘솔에서 Cloud Run 페이지로 이동합니다.

    Cloud Run으로 이동

  4. 콘솔 툴바에서 Google Cloud 프로젝트를 선택합니다. Gemini Cloud Assist 액세스 권한을 부여받은 후 제출한 프로젝트 ID와 연결된 프로젝트를 사용합니다.

  5. spark Gemini AI 채팅 열기 또는 닫기를 클릭합니다.

    Gemini 패널이 열립니다.

  6. 필요한 경우 약관에 동의한다면 동의를 클릭합니다.

  7. 특정 애플리케이션에 관한 질문인 경우 질문하기 전에 리소스가 표시된 페이지로 이동하여 컨텍스트를 제공하세요. Gemini는 대답을 생성할 때 현재 콘솔 페이지와 프로젝트에 관한 정보를 포함합니다.

  8. Gemini 패널에 프롬프트를 입력합니다.

    다음 표에는 Cloud Run에서 Gemini Cloud Assist를 사용하는 프롬프트의 예가 나와 있습니다.

    프롬프트 대답 유형
    "Cloud Run 컨테이너 로그에 표시되는 이 오류 메시지를 설명해 줘." 프롬프트에 구체적인 오류 메시지가 없으면 출력에서 일반적인 Cloud Run 컨테이너 로그 오류 메시지에 대한 문제 해결 안내를 제공합니다.
    "Cloud Run 서비스의 로그에 표시되는 이 오류 메시지를 설명해 줘."

    HTTP 429 The request was aborted because there was no available instance. The Cloud Run service might have reached its maximum container instance limit or the service was otherwise not able to scale to incoming requests. This might be caused by a sudden increase in traffic, a long container startup time or a long request processing time."
    Cloud Run 오류 메시지 및 오류 해결 방법 설명
    "Cloud Run 서비스를 배포할 때 다음 오류 메시지를 어떻게 해결해야 해?"

    HTTP 404: Not found
    오류의 일반적인 원인과 오류를 해결하는 방법
    "Cloud Run 서비스가 계속 비정상 종료되고 있어. 문제의 원인이 뭐야?" 원인 조사 접근 방식 및 문제 해결 방법
    "로그에 표시된 5XX 오류가 Google 인프라 서비스 중단으로 인한 것인지 확인하려면 어떻게 해야 해?" 5XX 오류의 원인을 확인하는 단계
    "com.google.apps.framework.request.BadRequestException Project PROJECT has serving status SYSTEM_DISABLED and cannot be modified 오류의 원인을 어떻게 파악해?" Google Cloud 프로젝트가 시스템 수준에서 관리적으로 중지된 것으로 보입니다. 원인을 추가로 조사하는 단계를 제공합니다.
    "ingress=internal을 설정했는데 브라우저에서 Cloud Run 서비스에 액세스할 수 있는 이유가 뭐야?" ingress 설정을 internal로 구성한 경우 예상되는 동작에 대한 설명. 브라우저에서 액세스가 작동하는 것처럼 보이는 다른 시나리오도 포함됩니다.

자세한 내용은 다음 리소스를 참조하세요.

다음 단계

Cloud Run 문서에서 문제의 해결 방법을 찾을 수 없는 경우 다음 단계를 따르세요.