

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

# 로깅
<a name="envoy-logs"></a>

**중요**  
지원 종료 알림: 2026년 9월 30일에 AWS 는에 대한 지원을 중단합니다 AWS App Mesh. 2026년 9월 30일 이후에는 AWS App Mesh 콘솔 또는 AWS App Mesh 리소스에 더 이상 액세스할 수 없습니다. 자세한 내용은이 블로그 게시물 [Migrating from to Amazon ECS Service Connect를 참조 AWS App Mesh 하세요](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect).

가상 노드와 가상 게이트웨이를 생성할 때 Envoy 액세스 로그를 구성할 수 있습니다. 이 로그는 콘솔에서는 가상 노드의 **로깅** 섹션에 있으며 가상 게이트웨이가 워크플로를 생성하거나 편집합니다.

![\[Logging configuration interface showing HTTP access logs path field with example path.\]](http://docs.aws.amazon.com/ko_kr/app-mesh/latest/userguide/images/logging.png)


위 이미지는 Envoy 액세스 로그에 대한 `/dev/stdout`의 로깅 경로를 보여 줍니다.

`format`의 경우 두 가지 가능한 형식 `json` 또는 `text` 중 **하나**와 패턴을 지정합니다. `json`에서는 키 페어를 가져와 JSON 구조체로 변환한 후 Envoy에 전달합니다.**

다음 코드 블록에서는 AWS CLI에서 사용할 수 있는 JSON 표현을 보여 줍니다.

```
      "logging": { 
         "accessLog": { 
            "file": { 
               "path": "/dev/stdout",
                "format" : { 
                    // Exactly one of json or text should be specified
                    "json": [ // json will be implemented with key pairs
                        {
                            "key": "string",
                            "value": "string"
                        }
                    ]
                    "text": "string" //e.g. "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%\n"
                }
            }
         }
      }
```

**중요**  
입력 패턴이 Envoy에 유효한지 확인하십시오. 유효하지 않으면 Envoy가 업데이트를 거부하고 최신 변경 내용을 `error state`에 저장합니다.

`/dev/stdout`에 Envoy 액세스 로그를 보내면 해당 로그가 Envoy 컨테이너 로그와 혼합됩니다. `awslogs`와 같은 표준 Docker 로그 드라이버를 사용하여 CloudWatch Logs와 같은 로그 스토리지 및 처리 서비스로 내보낼 수 있습니다. 자세한 내용은 Amazon ECS 개발자 안내서의 [awslogs 로그 드라이버 사용](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html)을 참조하세요. Envoy 액세스 로그만 내보내고 다른 Envoy 컨테이너 로그는 무시하려면 `ENVOY_LOG_LEVEL`을 `off`로 설정하면 됩니다. 형식 문자열 `%REQ_WITHOUT_QUERY(X?Y):Z%`를 포함하여 쿼리 문자열 없이 요청을 기록할 수 있습니다. 예제는 [`ReqWithoutQuery` 포맷터](https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/formatter/req_without_query/v3/req_without_query.proto)를 참조하세요. 자세한 내용은 Envoy 설명서의 [액세스 로깅](https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/access_log.html)을 참조하세요.

**Kubernetes에서 액세스 로그 활성화**  
[Kubernetes용 App Mesh 컨트롤러](https://docs.aws.amazon.com/app-mesh/latest/userguide/mesh-k8s-integration.html)를 사용하는 경우 다음 예제와 같이 가상 노드 사양에 로깅 구성을 추가하여 액세스 로깅으로 가상 노드를 구성할 수 있습니다.

```
---
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualNode
metadata:
  name: virtual-node-name
  namespace: namespace
spec:
  listeners:
    - portMapping:
        port: 9080
        protocol: http
  serviceDiscovery:
    dns:
      hostName: hostname
  logging:
    accessLog:
      file:
        path: "/dev/stdout"
```

클러스터는 이러한 로그를 수집하려면 Fluentd와 같은 로그 전달자가 있어야 합니다. 자세한 내용은 [Fluentd를 DaemonSet으로 설정하여 CloudWatch Logs에 로그 전송](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-logs.html)을 참조하세요.

또한 Envoy는 필터의 다양한 디버깅 로그를 `stdout`에 기록합니다. 이러한 로그는 Envoy와 App Mesh의 통신 및 서비스 간 트래픽 모두에 대한 인사이트를 얻는 데 유용합니다. `ENVOY_LOG_LEVEL` 환경 변수를 사용하여 특정 로깅 수준을 구성할 수 있습니다. 예를 들어, 다음 텍스트는 Envoy가 특정 HTTP 요청과 일치시킨 클러스터를 보여 주는 예제 디버그 로그에서 가져온 것입니다.

```
[debug][router] [source/common/router/router.cc:434] [C4][S17419808847192030829] cluster 'cds_ingress_howto-http2-mesh_color_client_http_8080' match for URL '/ping'
```

## Firelens 및 Cloudwatch
<a name="firelens-cloudwatch-logging"></a>

[Firelens](https://aws.amazon.com/about-aws/whats-new/2019/11/aws-launches-firelens-log-router-for-amazon-ecs-and-aws-fargate/#:~:text=FireLens%20is%20a%20container%20log,for%20log%20analytics%20and%20storage.&text=This%20means%20you%20can%20use,your%20own%20Fluentd%20output%20plugin.)는 Amazon ECS 및에 대한 로그를 수집하는 데 사용할 수 있는 컨테이너 로그 라우터입니다 AWS Fargate. [AWS 샘플 리포지토리](https://github.com/aws-samples/amazon-ecs-firelens-examples)에서 Firelens를 사용하는 예제를 찾을 수 있습니다.

CloudWatch를 사용하여 지표 및 로깅 정보를 수집할 수 있습니다. App Mesh 설명서의 [지표 내보내기](https://docs.aws.amazon.com/app-mesh/latest/userguide/metrics.html#cloudwatch) 섹션에서 CloudWatch에 대한 자세한 내용을 확인할 수 있습니다.