

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

# Envoy 지표를 사용하여 애플리케이션 모니터링
<a name="envoy-metrics"></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는 지표를 다음과 같은 주요 범주로 분류합니다.
+ **다운스트림** - 프록시로 들어오는 연결 및 요청과 관련된 지표입니다.
+ **업스트림** - 프록시에 의한 발신 연결 및 요청과 관련된 지표입니다.
+ **서버** - Envoy의 내부 상태를 설명하는 지표입니다. 여기에는 가동 시간 또는 할당된 메모리와 같은 지표가 포함됩니다.

App Mesh에서 프록시는 업스트림 및 다운스트림 트래픽을 가로챕니다. 예를 들어 Envoy는 클라이언트에서 받은 요청과 서비스 컨테이너의 요청을 다운스트림 트래픽으로 분류합니다. 이러한 다양한 유형의 업스트림 트래픽과 다운스트림 트래픽을 구분하기 위해 App Mesh는 서비스와 관련된 트래픽 방향에 따라 Envoy 지표를 추가적으로 분류합니다.
+ **수신** - 서비스 컨테이너로 흐르는 연결 및 요청과 관련된 지표 및 리소스입니다.
+ **송신** - 서비스 컨테이너에서, 궁극적으로는 Amazon ECS 태스크 또는 Kubernetes 포드에서 나가는 연결 및 요청과 관련된 지표 및 리소스입니다.

다음 그림은 프록시와 서비스 컨테이너 간의 통신을 보여 줍니다.

![\[Diagram showing proxy and service containers within an Amazon ECS task or Kubernetes Pod with ingress and egress flow.\]](http://docs.aws.amazon.com/ko_kr/app-mesh/latest/userguide/images/task-proxy-container.png)


**리소스 이름 지정 규칙**

Envoy가 메시를 보는 방식과 해당 리소스가 App Mesh에서 정의한 리소스에 다시 매핑되는 방식을 이해하는 데 유용합니다. App Mesh가 구성하는 기본 Envoy 리소스는 다음과 같습니다.
+ **리스너** - 프록시가 다운스트림 연결을 수신하는 주소 및 포트입니다. 이전 그림에서 App Mesh는 Amazon ECS 태스크 또는 Kubernetes 포드로 들어오는 트래픽에 대한 수신 리스너와 서비스 컨테이너에서 나가는 트래픽에 대한 송신 리스너를 생성합니다.
+ **클러스터** - 프록시가 연결하고 트래픽을 라우팅하는 업스트림 엔드포인트의 명명된 그룹입니다. App Mesh에서 서비스 컨테이너는 서비스가 연결할 수 있는 다른 모든 가상 노드뿐만 아니라 클러스터로 표시됩니다.
+ **경로** - 메시에서 정의한 경로에 해당합니다. 여기에는 프록시가 요청과 일치시키는 조건과 요청이 전송되는 대상 클러스터가 포함됩니다.
+ **엔드포인트 및 클러스터 로드 할당** - 업스트림 클러스터의 IP 주소입니다. 가상 노드의 서비스 검색 메커니즘으로 AWS Cloud Map 를 사용하는 경우 App Mesh는 검색된 서비스 인스턴스를 엔드포인트 리소스로서 프록시에 전송합니다.
+ **보안 암호** - 여기에는 암호화 키와 TLS 인증서가 포함되지만 이에 국한되지는 않습니다. 를 클라이언트 및 서버 인증서의 소스 AWS Certificate Manager 로 사용하는 경우 App Mesh는 퍼블릭 및 프라이빗 인증서를 프록시에 보안 암호 리소스로 전송합니다.

App Mesh는 일관된 Envoy 리소스 이름 지정 체계를 사용하므로 메시와 다시 연관시키는 데 사용할 수 있습니다.

리스너 및 클러스터의 이름 지정 체계를 이해하는 것은 App Mesh의 Envoy 지표를 이해하는 데 중요합니다.

**리스너 이름**

리스너 이름은 다음 형식을 사용하여 지정됩니다.

```
lds_<traffic direction>_<listener IP address>_<listening port>
```

일반적으로 Envoy에 구성된 다음과 같은 리스너를 볼 수 있습니다.
+ `lds_ingress_0.0.0.0_15000`
+ `lds_egress_0.0.0.0_15001`

Kubernetes CNI 플러그인 또는 IP 테이블 규칙을 사용하면 Amazon ECS 태스크 또는 Kubernetes 포드의 트래픽이 포트 `15000` 및 `15001`로 전달됩니다. App Mesh는 수신 및 송신(발신) 트래픽을 수락하도록 이 두 리스너로 Envoy를 구성합니다. 가상 노드에 리스너가 구성되어 있지 않으면 수신 리스너가 보이지 않을 것입니다.

**클러스터 이름**

대부분의 클러스터는 다음 형식을 사용합니다.

```
cds_<traffic direction>_<mesh name>_<virtual node name>_<protocol>_<port>
```

서비스가 통신하는 가상 노드에는 자체 클러스터가 있습니다. 앞서 언급했듯이 App Mesh는 Envoy 옆에서 실행되는 서비스를 위한 클러스터를 생성하여 프록시가 수신 트래픽을 해당 서비스로 전송할 수 있도록 합니다.

예를 들어 포트 `8080`에서 http 트래픽을 수신하는 `my-virtual-node`라는 가상 노드가 있고 해당 가상 노드가 이름이 `my-mesh`인 메시에 있는 경우 App Mesh는 이름이 `cds_ingress_my-mesh_my-virtual-node_http_8080`인 클러스터를 생성합니다. 이 클러스터는 `my-virtual-node`의 서비스 컨테이너로 들어오는 트래픽의 대상 역할을 합니다.

App Mesh는 다음과 같은 유형의 특수 클러스터를 추가로 생성할 수도 있습니다. 이러한 다른 클러스터가 메시에서 명시적으로 정의한 리소스와 반드시 일치하는 것은 아닙니다.
+ 다른 AWS 서비스에 도달하는 데 사용되는 클러스터입니다. 이 유형을 사용하면 기본적으로 메시가 대부분의 AWS 서비스에 도달할 수 있습니다`cds_egress_<mesh name>_amazonaws`.
+ 가상 게이트웨이의 라우팅을 수행하는 데 사용되는 클러스터. 다음은 무시해도 됩니다.
  + 단일 리스너의 경우: `cds_ingress_<mesh name>_<virtual gateway name>_self_redirect_<protocol>_<port>`
  + 여러 리스너의 경우: `cds_ingress_<mesh name>_<virtual gateway name>_self_redirect_<ingress_listener_port>_<protocol>_<port>`
+ Envoy의 보안 암호 검색 서비스를 사용하여 보안 암호를 검색할 때 정의할 수 있는 엔드포인트가 되는 클러스터(예: TLS): `static_cluster_sds_unix_socket`.

## 예제 애플리케이션 지표
<a name="envoy-metrics-examples"></a>

Envoy에서 사용할 수 있는 메트릭을 설명하기 위해 다음 샘플 애플리케이션에는 세 개의 가상 노드가 있습니다. 메시의 가상 서비스, 가상 라우터 및 경로는 Envoy의 지표에 반영되지 않으므로 무시해도 됩니다. 이 예제에서는 모든 서비스가 포트 8080에서 http 트래픽을 수신합니다.

![\[Diagram showing Envoy proxies in product-details, cart, and website services of an online store mesh.\]](http://docs.aws.amazon.com/ko_kr/app-mesh/latest/userguide/images/envoy-metric-example1.png)


메시에서 실행되는 Envoy 프록시 컨테이너에 환경 변수 `ENABLE_ENVOY_STATS_TAGS=1`을 추가하는 것이 좋습니다. 그러면 프록시에서 내보내는 모든 지표에 다음과 같은 지표 측정기준이 추가됩니다.
+ `appmesh.mesh`
+ `appmesh.virtual_node`
+ `appmesh.virtual_gateway`

이러한 태그는 메시, 가상 노드 또는 가상 게이트웨이의 이름으로 설정되므로 메시의 리소스 이름을 사용하여 지표를 필터링할 수 있습니다.

**리소스 이름**

웹 사이트 가상 노드의 프록시에는 다음과 같은 리소스가 있습니다.
+ 수신 및 송신 트래픽용 리스너 2개:
  + `lds_ingress_0.0.0.0_15000`
  + `lds_egress_0.0.0.0_15001`
+ 두 개의 가상 노드 백엔드를 나타내는 송신 클러스터 2개:
  + `cds_egress_online-store_product-details_http_8080`
  + `cds_egress_online-store_cart_http_8080`
+ 웹 사이트 서비스 컨테이너의 수신 클러스터:
  + `cds_ingress_online-store_website_http_8080`

**예제 리스너 지표**
+ `listener.0.0.0.0_15000.downstream_cx_active` - Envoy에 대한 활성 수신 네트워크 연결 수
+ `listener.0.0.0.0_15001.downstream_cx_active` - Envoy에 대한 활성 송신 네트워크 연결 수 애플리케이션에서 외부 서비스에 연결하는 경우도 이 수에 포함됩니다.
+ `listener.0.0.0.0_15000.downstream_cx_total` - Envoy에 대한 총 수신 네트워크 연결 수
+ `listener.0.0.0.0_15001.downstream_cx_total` - Envoy에 대한 총 송신 네트워크 연결 수

전체 리스너 지표 세트는 Envoy 설명서의 [통계](https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/stats)를 참조하세요.

**예제 클러스터 지표**
+ `cluster_manager.active_clusters` - Envoy가 하나 이상의 연결을 설정한 클러스터의 총 수
+ `cluster_manager.warming_clusters` - Envoy가 아직 연결하지 않은 클러스터의 총 수

다음 클러스터 지표는 `cluster.<cluster name>.<metric name>` 형식을 사용합니다. 이러한 지표 이름은 애플리케이션 예제에 고유하며 웹 사이트 Envoy 컨테이너에서 내보내집니다.
+ `cluster.cds_egress_online-store_product-details_http_8080.upstream_cx_total` - 웹 사이트와 제품 세부 정보 간의 총 연결 수
+ `cluster.cds_egress_online-store_product-details_http_8080.upstream_cx_connect_fail` - 웹 사이트와 제품 세부 정보 간의 실패한 총 연결 수
+ `cluster.cds_egress_online-store_product-details_http_8080.health_check.failure` - 웹 사이트와 제품 세부 정보 간의 실패한 총 상태 확인 수
+ `cluster.cds_egress_online-store_product-details_http_8080.upstream_rq_total` - 웹 사이트와 제품 세부 정보 간에 수행된 총 요청 수
+ `cluster.cds_egress_online-store_product-details_http_8080.upstream_rq_time` - 웹 사이트와 제품 세부 정보 간에 수행된 요청별 소요 시간
+ `cluster.cds_egress_online-store_product-details_http_8080.upstream_rq_2xx` - 웹 사이트와 제품 세부 정보에서 받은 HTTP 2xx 응답 수.

전체 HTTP 지표 세트는 Envoy 설명서의 [통계](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_conn_man/stats)를 참조하세요.

**관리 서버 지표**

또한 Envoy는 Envoy의 관리 서버 역할을 하는 App Mesh 제어 영역에 대한 연결과 관련된 지표를 내보냅니다. 프록시가 제어 영역에서 장기간 비동기화될 때 알림을 받으려면 이러한 지표 중 일부를 모니터링하는 것이 좋습니다. 제어 영역에 대한 연결이 끊어지거나 업데이트가 실패하면 프록시가 App Mesh에서 App Mesh API를 통한 메시 변경을 비롯한 새 구성을 수신하지 못합니다.
+ `control_plane.connected_state` - 프록시가 App Mesh에 연결된 경우 이 지표는 1로 설정되고, 그렇지 않으면 0으로 설정됩니다.
+ `*.update_rejected` - Envoy에서 거부한 구성 업데이트의 총 수. 이것은 일반적으로 사용자 구성 오류로 인한 것입니다. 예를 들어 Envoy에서 읽을 수 없는 파일에서 TLS 인증서를 읽도록 App Mesh를 구성하면 해당 인증서의 경로가 포함된 업데이트가 거부됩니다.
  + 리스너 업데이트가 거부된 경우 통계는 `listener_manager.lds.update_rejected`가 됩니다.
  + 클러스터 업데이트가 거부된 경우 통계는 `cluster_manager.cds.update_rejected`가 됩니다.
+ `*.update_success` - App Mesh에서 프록시에 대해 성공적으로 수행한 구성 업데이트 수. 여기에는 새 Envoy 컨테이너가 시작될 때 전송되는 초기 구성 페이로드가 포함됩니다.
  + 리스너 업데이트가 성공한 경우 통계는 `listener_manager.lds.update_success`가 됩니다.
  + 클러스터 업데이트가 성공한 경우 통계는 `cluster_manager.cds.update_success`가 됩니다.

관리 서버 메트릭 세트는 Envoy 설명서의 [관리 서버](https://www.envoyproxy.io/docs/envoy/latest/configuration/overview/mgmt_server)를 참조하세요.

# 지표 내보내기
<a name="metrics"></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는 자체 운영과 인바운드 및 아웃바운드 트래픽의 다양한 측정기준에 대한 많은 통계를 내보냅니다. Envoy 통계에 대한 자세한 내용은 Envoy 설명서의 [통계](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/statistics)를 참조하세요. 이러한 지표는 일반적으로 `9901`인 프록시의 관리 포트에 있는 `/stats` 엔드포인트를 통해 사용할 수 있습니다.

단일 리스터를 사용하는지 또는 여러 리스너를 사용하는지에 따라 `stat` 접두사가 달라집니다. 다음은 차이점을 보여 주는 몇 가지 예입니다.

**주의**  
단일 리스너를 다중 리스너 기능으로 업데이트하면 다음 표에 나와 있는 업데이트된 통계 접두사로 인해 주요 변경 사항이 발생할 수 있습니다.  
 Envoy 이미지 `1.22.2.1-prod` 이상을 사용하는 것이 좋습니다. 이렇게 하면 Prometheus 엔드포인트에서 유사한 메트릭 이름을 볼 수 있습니다.


| 단일 리스너(SL)/“ingress” 리스너 접두사가 붙은 기존 통계 | 다중 리스터(ML)/"ingress.<protocol>.<port>" 리스너 접두사가 붙은 새 통계 | 
| --- | --- | 
|  `http.*ingress*.rds.rds_ingress_http_5555.version_text`  |  `http.*ingress.http.5555*.rds.rds_ingress_http_5555.version_text` `http.*ingress.http.6666*.rds.rds_ingress_http_6666.version_text`  | 
|  `listener.0.0.0.0_15000.http.*ingress*.downstream_rq_2xx`  |  `listener.0.0.0.0_15000.http.*ingress.http.5555*.downstream_rq_2xx` `listener.0.0.0.0_15000.http.*ingress.http.6666*.downstream_rq_2xx`  | 
|  `http.*ingress*.downstream_cx_length_ms`  |  `http.*ingress.http.5555*.downstream_cx_length_ms` `http.*ingress.http.6666*.downstream_cx_length_ms`  | 

통계 엔드포인트에 대한 자세한 내용은 Envoy 설명서의 [통계 엔드포인트](https://www.envoyproxy.io/docs/envoy/latest/operations/admin#get--stats)를 참조하세요. 관리 인터페이스에 대한 자세한 내용은 [Envoy 프록시 관리 인터페이스 활성화](troubleshooting-best-practices.md#ts-bp-enable-proxy-admin-interface) 섹션을 참조하세요.

## Amazon EKS를 포함하는 App Mesh용 Prometheus
<a name="prometheus"></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).

Prometheus는 오픈 소스 모니터링 및 알림 도구 키트입니다. 해당 기능 중 하나는 다른 시스템에서 사용할 수 있는 지표를 내보내는 형식을 지정하는 것입니다. Prometheus에 대한 자세한 내용은 Prometheus 설명서의 [개요](https://prometheus.io/docs/introduction/overview/)를 참조하세요. Envoy는 파라미터 `/stats?format=prometheus`를 전달하여 통계 엔드포인트를 통해 지표를 내보낼 수 있습니다.

Envoy 이미지 빌드 v1.22.2.1-prod를 사용하는 고객의 경우 수신 리스너별 통계를 나타내는 두 가지 추가 측정기준이 있습니다.
+ `appmesh.listener_protocol`
+ `appmesh.listener_port`

아래는 Prometheus의 기존 통계와 새 통계를 비교한 것입니다.
+ “수신” 리스너 접두사가 붙은 기존 통계

  ```
  envoy_http_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",envoy_http_conn_manager_prefix="ingress"} 931433
  ```
+ "ingress.<protocol>.<port>" \$1 Appmesh Envoy Image v1.22.2.1-prod 이상이 있는 새 통계

  ```
  envoy_http_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",appmesh_listener_protocol="http",appmesh_listener_port="5555",envoy_http_conn_manager_prefix="ingress"} 20
  ```
+ "ingress.<protocol>.<port>" \$1 사용자 지정 Envoy Imagebuild가 있는 새 통계

  ```
  envoy_http_http_5555_downstream_rq_xx{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_node="foodteller-vn",envoy_response_code_class="2",envoy_http_conn_manager_prefix="ingress"} 15983
  ```

여러 리스너의 경우 `cds_ingress_<mesh name>_<virtual gateway name>_self_redirect_<ingress_listener_port>_<protocol>_<port>` 특수 클러스터는 리스너별로 다릅니다.
+ “수신” 리스너 접두사가 붙은 기존 통계

  ```
  envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",Mesh="multiple-listeners-mesh",VirtualGateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_http_15001"} 0
  ```
+ "ingress.<protocol>.<port>"가 있는 새 통계

  ```
  envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_1111_http_15001"} 0
  envoy_cluster_assignment_stale{appmesh_mesh="multiple-listeners-mesh",appmesh_virtual_gateway="tellergateway-vg",envoy_cluster_name="cds_ingress_multiple-listeners-mesh_tellergateway-vg_self_redirect_2222_http_15001"} 0
  ```

### Prometheus 설치
<a name="installing-prometheus"></a>

1. Helm에 EKS 리포지토리를 추가합니다.

   ```
   helm repo add eks https://aws.github.io/eks-charts
   ```

1. App Mesh Prometheus 설치

   ```
   helm upgrade -i appmesh-prometheus eks/appmesh-prometheus \
   --namespace appmesh-system
   ```

### Prometheus 예제
<a name="prometheus-sample"></a>

다음은 Prometheus용 `PersistentVolumeClaim` 영구 스토리지를 생성하는 예제입니다.

```
helm upgrade -i appmesh-prometheus eks/appmesh-prometheus \
--namespace appmesh-system \
--set retention=12h \
--set persistentVolumeClaim.claimName=prometheus
```

### Prometheus 사용 방법 살펴보기
<a name="prometheus-walkthrough"></a>
+ [EKS를 사용한 App Mesh - 관찰성: Prometheus](https://github.com/aws/aws-app-mesh-examples/blob/main/walkthroughs/eks/o11y-prometheus.md)

### Prometheus 및 Amazon EKS를 포함하는 Prometheus에 대해 자세히 알아보려면 다음을 참조하세요.
<a name="prometheus-eks"></a>
+ [Prometheus 설명서](https://prometheus.io/docs/introduction/overview/)
+ **EKS -** [Prometheus의 제어 영역 지표](https://docs.aws.amazon.com/eks/latest/userguide/prometheus.html)

## App Mesh용 CloudWatch
<a name="cloudwatch"></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 통계를 Amazon EKS에서 CloudWatch로 내보내기**  
클러스터에 CloudWatch Agent를 설치하고 프록시에서 지표의 하위 세트를 수집하도록 구성할 수 있습니다. Amazon EKS 클러스터가 아직 없는 경우 GitHub에서 [살펴보기: Amazon EKS를 포함하는 App Mesh](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/eks)의 단계에 따라 클러스터를 생성할 수 있습니다. 동일한 안내를 따라 클러스터에 샘플 애플리케이션을 설치할 수 있습니다.

클러스터에 대해 적절한 IAM 권한을 설정하고 에이전트를 설치하려면 [Prometheus 지표 수집과 함께 CloudWatch Agent 설치](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights-Prometheus-Setup.html)의 단계를 따르세요. 기본 설치에는 Envoy 통계의 유용한 하위 세트를 가져오는 Prometheus 수집 구성이 포함되어 있습니다. 자세한 내용은 [App Mesh용 Prometheus 지표](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights-Prometheus-metrics.html#ContainerInsights-Prometheus-metrics-appmesh)를 참조하세요.

에이전트가 수집하는 지표를 표시하도록 구성된 App Mesh 사용자 지정 CloudWatch 대시보드를 생성하려면 [Prometheus 지표 보기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights-Prometheus-viewmetrics.html) 자습서의 단계를 따르세요. 트래픽이 App Mesh 애플리케이션으로 유입되면 그래프가 해당 지표로 채워지기 시작합니다.

### CloudWatch의 지표 필터링
<a name="filtering-metrics"></a>

App Mesh [지표 확장](https://docs.aws.amazon.com/app-mesh/latest/userguide/metrics.html#metrics-extension)은 메시에서 정의한 리소스의 동작에 대한 인사이트를 제공하는 유용한 지표의 하위 세트를 제공합니다. CloudWatch 에이전트는 Prometheus 지표 수집을 지원하므로, Envoy에서 가져와서 CloudWatch로 전송할 지표를 선택하는 수집 구성을 제공할 수 있습니다.

Prometheus를 사용하여 지표를 스크랩하는 예제는 [지표 확장](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-metrics-extension-ecs) 안내에서 확인할 수 있습니다.

### CloudWatch 예제
<a name="cloudwatch-sample"></a>

[AWS 샘플 리포지토리](https://github.com/aws-samples/aws-app-mesh-cloudwatch-agent)에서 CloudWatch의 샘플 구성을 찾을 수 있습니다.

### CloudWatch 사용 방법 살펴보기
<a name="cloudwatch-walkthrough"></a>
+ [App Mesh 워크샵](https://www.appmeshworkshop.com/introduction/)의 [모니터링 및 로깅 기능 추가](https://www.appmeshworkshop.com/monitoring/)
+ [EKS를 사용한 App Mesh - 관찰성: CloudWatch](https://github.com/aws/aws-app-mesh-examples/blob/main/walkthroughs/eks/o11y-cloudwatch.md)
+ [ECS의 App Mesh 지표 확장 사용](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-metrics-extension-ecs)

## App Mesh의 지표 확장
<a name="metrics-extension"></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는 수백 개의 지표를 몇 가지 다른 측정기준으로 세분화하여 생성합니다. 지표가 App Mesh와 연관되는 방식은 간단하지 않습니다. 가상 서비스의 경우 어떤 가상 서비스가 특정 가상 노드나 가상 게이트웨이와 통신하고 있는지 확인할 수 있는 메커니즘이 없습니다.

App Mesh 지표 확장은 메시에서 실행되는 Envoy 프록시를 개선합니다. 이러한 개선을 통해 프록시는 사용자가 정의한 리소스를 인식하는 추가 지표를 내보낼 수 있습니다. 이 소규모 추가 지표 세트는 App Mesh에서 정의한 리소스의 동작에 대한 더 나은 인사이트를 얻는 데 도움이 됩니다.

App Mesh 지표 확장을 활성화하려면 환경 변수 `APPMESH_METRIC_EXTENSION_VERSION`을 `1`로 설정합니다.

```
APPMESH_METRIC_EXTENSION_VERSION=1
```

Envoy 구성 변수에 대한 자세한 내용은 [Envoy 구성 변수](envoy-config.md) 섹션을 참조하세요.

### 인바운드 트래픽 관련 지표
<a name="inbound-metrics"></a>
+ `ActiveConnectionCount`
  + `envoy.appmesh.ActiveConnectionCount` - 활성 TCP 연결의 수.
  + *측정기준* - Mesh, VirtualNode, VirtualGateway
+ **`NewConnectionCount`**
  + `envoy.appmesh.NewConnectionCount` - 총 TCP 연결 수.
  + *측정기준* - Mesh, VirtualNode, VirtualGateway
+ **`ProcessedBytes`**
  + `envoy.appmesh.ProcessedBytes` - 다운스트림 클라이언트에서 전송 및 수신한 총 TCP 바이트 수.
  + *측정기준* - Mesh, VirtualNode, VirtualGateway
+ **`RequestCount`**
  + `envoy.appmesh.RequestCount` - 처리된 HTTP 요청 수.
  + *측정기준* - Mesh, VirtualNode, VirtualGateway
+ **`GrpcRequestCount`**
  + `envoy.appmesh.GrpcRequestCount` - 처리된 gPRC 요청 수.
  + *측정기준* - Mesh, VirtualNode, VirtualGateway

### 아웃바운드 트래픽과 관련된 지표
<a name="outbound-metrics"></a>

가상 노드 또는 가상 게이트웨이 중에서 아웃바운드 지표를 가져온 소스에 따라 다양한 측정기준이 표시됩니다.
+ `TargetProcessedBytes`
  + `envoy.appmesh.TargetProcessedBytes` - Envoy의 대상 업스트림에서 전송 및 수신된 총 TCP 바이트 수입니다.
  + 

    *측정기준*:
    + 가상 노드 측정기준 - Mesh, VirtualNode, TargetVirtualService, TargetVirtualNode
    + 가상 게이트웨이 측정기준 - Mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode
+ **`HTTPCode_Target_2XX_Count`**
  + `envoy.appmesh.HTTPCode_Target_2XX_Count` - Envoy의 대상 업스트림에 대한 HTTP 요청 중에서 2xx HTTP 응답을 받은 요청 수입니다.
  + 

    *측정기준*:
    + 가상 노드 측정기준 - Mesh, VirtualNode, TargetVirtualService, TargetVirtualNode
    + 가상 게이트웨이 측정기준 - Mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode
+ **`HTTPCode_Target_3XX_Count`**
  + `envoy.appmesh.HTTPCode_Target_3XX_Count` - Envoy의 대상 업스트림에 대한 HTTP 요청 중에서 3xx HTTP 응답을 받은 요청 수입니다.
  + 

    *측정기준*:
    + 가상 노드 측정기준 - Mesh, VirtualNode, TargetVirtualService, TargetVirtualNode
    + 가상 게이트웨이 측정기준 - Mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode
+ **`HTTPCode_Target_4XX_Count`**
  + `envoy.appmesh.HTTPCode_Target_4XX_Count` - Envoy의 대상 업스트림에 대한 HTTP 요청 중에서 4xx HTTP 응답을 받은 요청 수입니다.
  + 

    *측정기준*:
    + 가상 노드 측정기준 - Mesh, VirtualNode, TargetVirtualService, TargetVirtualNode
    + 가상 게이트웨이 측정기준 - Mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode
+ **`HTTPCode_Target_5XX_Count`**
  + `envoy.appmesh.HTTPCode_Target_5XX_Count` - Envoy의 대상 업스트림에 대한 HTTP 요청 중에서 5xx HTTP 응답을 받은 요청 수입니다.
  + 

    *측정기준*:
    + 가상 노드 측정기준 - Mesh, VirtualNode, TargetVirtualService, TargetVirtualNode
    + 가상 게이트웨이 측정기준 - Mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode
+ **`RequestCountPerTarget`**
  + `envoy.appmesh.RequestCountPerTarget` - Envoy의 대상 업스트림으로 전송된 요청 수입니다.
  + 

    *측정기준*:
    + 가상 노드 측정기준 - Mesh, VirtualNode, TargetVirtualService, TargetVirtualNode
    + 가상 게이트웨이 측정기준 - Mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode
+ **`TargetResponseTime`**
  + `envoy.appmesh.TargetResponseTime` - Envoy의 대상 업스트림에 요청을 보낸 시점부터 전체 응답을 받을 때까지 소요된 시간입니다.
  + 

    *측정기준*:
    + 가상 노드 측정기준 - Mesh, VirtualNode, TargetVirtualService, TargetVirtualNode
    + 가상 게이트웨이 측정기준 - Mesh, VirtualGateway, TargetVirtualService, TargetVirtualNode

## App Mesh용 Datadog
<a name="datadog"></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).

Datadog은 클라우드 애플리케이션의 엔드투엔드 모니터링, 지표 및 로깅을 위한 모니터링 및 보안 애플리케이션입니다. Datadog을 사용하면 인프라, 애플리케이션 및 타사 애플리케이션을 완벽하게 관찰할 수 있습니다.

### Datadog 설치
<a name="installing-datadog"></a>
+ EKS - EKS로 Datadog을 설정하려면 [Datadog 설명서](https://docs.datadoghq.com/integrations/amazon_app_mesh/?tab=eks)의 다음 단계를 따르세요.
+ ECS EC2 - ECS EC2로 Datadog을 설정하려면 [Datadog 설명서](https://docs.datadoghq.com/integrations/amazon_app_mesh/?tab=ecsec2)의 다음 단계를 따르세요.

### Datadog에 대해 자세히 알아보려면 다음을 참조하세요.
<a name="datadog-learn-more"></a>
+ [Datadog 설명서](https://docs.datadoghq.com/)