

# Fargate 시작 유형의 Amazon EKS 클러스터에서 AWS App Mesh 샘플 워크로드 설정
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-Fargate"></a>

Fargate 시작 유형의 Amazon EKS를 실행하는 클러스터에서 App Mesh를 설정할 경우 다음 지침을 따르세요.

## IAM 권한 구성
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh--fargate-iam"></a>

IAM 권한을 설정하려면 다음 명령을 입력합니다. *MyCluster*를 클러스터 이름으로 바꿉니다.

```
eksctl create iamserviceaccount --cluster MyCluster \
 --namespace howto-k8s-fargate \
 --name appmesh-pod \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshFullAccess \
 --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess \
 --override-existing-serviceaccounts \
 --approve
```

## App Mesh 설치
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-fargate-install"></a>

App Mesh Kubernetes 컨트롤러를 설치하려면 [App Mesh 컨트롤러](https://github.com/aws/eks-charts/tree/master/stable/appmesh-controller#app-mesh-controller)의 지침을 따르세요. Fargate 시작 유형의 Amazon EKS에 대한 지침을 따라야 합니다.

## 샘플 애플리케이션 설치
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-fargate-application"></a>

[aws-app-mesh-examples](https://github.com/aws/aws-app-mesh-examples)에는 여러 Kubernetes App Mesh 시연이 포함되어 있습니다. 이 튜토리얼에서는 Fargate 시작 유형의 Amazon EKS 클러스터에서 작동하는 샘플 컬러 애플리케이션을 설치합니다.

**샘플 App Mesh 애플리케이션을 사용하여 Container Insights를 테스트하려면**

1. 다음 지침에 따라 애플리케이션을 설치합니다. [https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-fargate](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-fargate) 

   해당 지침에서는 올바른 Fargate 프로파일을 사용하여 새 클러스터를 생성한다고 가정합니다. 이미 설정한 Amazon EKS 클러스터를 사용하려는 경우 다음 명령을 사용하여 해당 클러스터를 이 데모에 맞게 설정할 수 있습니다. *MyCluster*를 클러스터 이름으로 바꿉니다.

   ```
   eksctl create iamserviceaccount --cluster MyCluster \
    --namespace howto-k8s-fargate \
    --name appmesh-pod \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapDiscoverInstanceAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSXRayDaemonWriteAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchLogsFullAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSAppMeshFullAccess \
    --attach-policy-arn arn:aws:iam::aws:policy/AWSCloudMapFullAccess \
    --override-existing-serviceaccounts \
    --approve
   ```

   ```
   eksctl create fargateprofile --cluster MyCluster \
   --namespace howto-k8s-fargate --name howto-k8s-fargate
   ```

1. 다음과 같이 프런트 애플리케이션 배포를 포트 포워딩합니다.

   ```
   kubectl -n howto-k8s-fargate port-forward deployment/front 8080:8080
   ```

1. 다음과 같이 프런트 앱을 curl합니다.

   ```
   while true; do  curl -s http://localhost:8080/color; sleep 0.1; echo ; done
   ```

1. [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)에서 CloudWatch 콘솔을 엽니다.

1. 클러스터가 실행되고 있는 AWS 리전에서 왼쪽 탐색 창의 [**지표(Metrics)**]를 선택합니다. 지표는 **ContainerInsights/Prometheus** 네임스페이스에 있습니다.

1. CloudWatch Logs 이벤트를 보려면 탐색 창에서 [**로그 그룹(Log groups)**]을 선택합니다. 이벤트는 로그 그룹 ` /aws/containerinsights/your_cluster_name/prometheus `의 로그 스트림 `kubernetes-pod-appmesh-envoy`에 있습니다.

## App Mesh 테스트 환경 삭제
<a name="ContainerInsights-Prometheus-Sample-Workloads-appmesh-fargate-delete"></a>

App Mesh 및 샘플 애플리케이션의 사용을 마쳤으면 다음 명령을 사용하여 불필요한 리소스를 삭제합니다. 다음 명령을 입력하여 샘플 애플리케이션을 삭제합니다.

```
cd aws-app-mesh-examples/walkthroughs/howto-k8s-fargate/
kubectl delete -f _output/manifest.yaml
```

다음 명령을 입력하여 App Mesh 컨트롤러를 삭제합니다.

```
helm delete appmesh-controller -n appmesh-system
```