인프라 진단 및 검사

가이드 주제:

인프라 진단

이 페이지에서는 집계 서비스 인프라의 문제를 해결하고 검증하는 방법을 안내합니다. 단계에 따라 문제를 파악하고 해결하세요.

Terraform 문제 해결

HashiCorp에서 만든 코드형 인프라 (IaC) 플랫폼인 Terraform은 선택한 퍼블릭 클라우드에 집계 서비스를 배포하기 위한 기본 드라이버입니다. Terraform이 설치되어 있지 않으면 로컬에서 CLI를 가져오는 방법에 관한 HashiCorp 문서를 확인하세요.

필요에 따라 Terraform 버전을 전환해야 하는 경우 tfenv를 설치하는 것도 고려해 볼 수 있습니다.

집계 서비스 문제의 해결 방법을 찾을 수 없는 경우 GitHub 문제를 제출하거나 기술 지원 양식을 제출하여 알려주세요.

Terraform을 수동으로 전환하려면 다음 단계를 따르세요.

rm -rf $(which terraform)
wget https://releases.hashicorp.com/terraform/1.2.3/terraform_1.2.3_linux_amd64.zip 
unzip terraform_1.2.3_linux_amd64.zip
mv terraform /usr/local/bin/terraform
terraform --version

Terraform 오류가 명확하지 않은 경우 TRACE 수준에서 Terraform 로깅을 사용 설정하여 출력을 볼 수 있습니다.

Google Cloud

Google Cloud용 Terraform 제공업체는 HashiCorp와 Google에서 공동으로 개발했습니다. 추가 질문이 있거나 문제 해결에 관한 조언이 필요한 경우 Cloud Terraform 지원팀에 문의하거나 Hashicorp Discuss 포털의 Google 섹션으로 이동하세요.

Amazon Web Services

디버깅 문서는 AWS 사이트에서 확인할 수 있습니다. HashiCorp 토론 포털의 AWS 섹션도 확인하세요.

Terraform에 관한 추가 질문은 HashiCorp 커뮤니티 포털을 참고하세요. 일반적인 Terraform 문제 해결 도움말은 디버깅 문서를 참고하세요.

이러한 디렉터리를 수정할 때는 주의해야 합니다. 디렉터리를 삭제하면 Terraform에서 더 이상 상태를 인식하지 못하게 됩니다. 모든 리소스를 다시 프로비저닝하려고 시도하며 이름이 정확히 같은 리소스가 있으면 오류가 발생합니다. 문제가 계속되면 기술 지원 양식을 통해 문의해 주세요.

이러한 디렉터리를 수정할 때는 주의해야 합니다. 디렉터리를 삭제하면 Terraform에서 더 이상 상태를 인식하지 못하게 됩니다. 모든 리소스를 다시 프로비저닝하려고 시도하며 이름이 정확히 같은 리소스가 있으면 오류가 발생합니다. 문제가 계속되면 기술 지원 양식을 통해 문의해 주세요.

Cloud 설정 확인

선택한 퍼블릭 클라우드의 집계 서비스 인프라가 올바르게 배포되었는지 확인합니다. 이를 위해 샘플 디버그 보고서를 사용하고 디버그 모드에서 작업을 실행합니다. 집계 서비스가 API 요청을 수신하고 응답할 수 있으면 서비스가 실행 중임을 알 수 있습니다. 아직 설정하지 않았다면 Postman 또는 cURL을 사용하여 집계 서비스에 대한 API 호출을 설정하는 것이 좋습니다. 일반 집계 작업 중에는 디버그 모드를 사용 중지하고 false로 설정해야 합니다.

다음 단계 외에도 집계 서비스 인프라를 추가로 검증하려면 퍼블릭 클라우드에서 프로비저닝되는 모든 클라우드 구성요소를 조사하세요.

단계

  1. 샘플 디버그 보고서를 생성하고 도메인 파일을 출력하려면 Codelab의 관련 단계를 따르세요.

  2. 강조 표시된 자리표시자를 바꿔 이 본문을 사용하여 createJob 요청을 실행합니다.

    {
      "job_request_id": "<job_request_id>",
      "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
      "input_data_bucket_name": "<input_bucket_name>",
      "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
      "output_data_bucket_name": "<output_bucket_name>",
      "job_parameters": {
        "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
        "output_domain_bucket_name": "<output_domain_bucket_name>",
        "attribution_report_to": "<reporting_origin_domain>",
        "report_error_threshold_percentage": "10", // example value
        "debug_run": "true" // optional, but should be false by default
      }
    }
    
  3. getJob 요청을 실행하여 응답을 확인합니다. 다음과 같은 응답이 표시되면 집계 서비스가 올바르게 배포되었음을 의미합니다.

    {
        "job_status": "FINISHED",
        "request_received_at": <utc_timestamp>,
        "request_updated_at": <utc_timestamp>,
        "job_request_id": "<job_request_id>",
        "input_data_blob_prefix": "<report_folder>/<input_report_prefix>.avro",
        "input_data_bucket_name": "<input_bucket_name>",
        "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
        "output_data_bucket_name": "<output_bucket_name>",
        "postback_url": "",
        "result_info": {
            "return_code": "<return_code_and_message>",
            "return_message": "Aggregation job successfully processed",
            "error_summary": {
                "error_counts": [],
                "error_messages": []
            },
            "finished_at": <utc_timestamp>
        },
        "job_parameters": {
            "debug_run": "true", // optional, but should be false by default
            "output_domain_bucket_name": "<output_domain_bucket_name>",
            "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
            "attribution_report_to": "<reporting_origin_domain>"
        },
        "request_processing_started_at": <utc_timestamp>
    }
    

job_status: FINISHED와 함께 응답을 받지 못한 경우 선택한 퍼블릭 클라우드의 Compute Engine 또는 EC2 리소스로 이동하여 추가 정보를 수집합니다. 집계 서비스 인스턴스를 검사하고 로그를 검사한 후 TEE container launcher initiatingTEE container launcher exiting 사이에 표시되는 정보를 기록하여 Google 기술 지원팀에 제공합니다.

Google Cloud

  1. Google Cloud: Compute Engine으로 이동합니다.
  2. VM 인스턴스를 클릭하고 집계 서비스 인스턴스를 선택합니다.
  3. 세부정보 > 로그 > 로깅을 클릭하거나 로그 탐색기를 검색합니다.

Amazon Web Services

  1. Amazon Web Services: EC2 Enclave로 이동합니다.
  2. EC2 인스턴스를 클릭하고 집계 서비스 인스턴스를 선택합니다.
  3. 작업 > 모니터링 및 문제 해결 > 시스템 로그 가져오기를 클릭합니다.

GitHub의 공개 안내에서 오류 알림과 일치하는 항목이 있는지 검사합니다.

참고: 현재 버전의 집계 서비스를 업그레이드한 경우 올바른 인스턴스 이미지가 최종 컴퓨팅 서비스 인스턴스에 반영되기까지 전체 프로비저닝 프로세스가 최대 몇 시간 정도 걸릴 수 있습니다. 그렇지 않은 경우 Google에 문의해 주세요.

다음 단계

집계 서비스 문제의 해결 방법을 찾을 수 없는 경우 GitHub 문제를 제출하거나 기술 지원 양식을 제출하여 Google에 알려주세요.