EC2 起動タイプの Amazon EKS クラスターまたは Kubernetes クラスターで AWS App Mesh サンプルワークロードを設定する - Amazon CloudWatch

EC2 起動タイプの Amazon EKS クラスターまたは Kubernetes クラスターで AWS App Mesh サンプルワークロードを設定する

EC2 起動タイプの Amazon EKS を実行しているクラスターまたは Kubernetes クラスターで App Mesh を設定する場合は、以下の手順を使用します。

IAM 許可を設定する

Amazon EKS または Kubernetes ノードグループの IAM ロールに AWSAppMeshFullAccess ポリシーを追加する必要があります。Amazon EKS の場合、このノードグループ名は eksctl-integ-test-eks-prometheus-NodeInstanceRole-ABCDEFHIJKL のようになります。Kubernetes の場合は、nodes.integ-test-kops-prometheus.k8s.local のようになることもあります。

App Mesh のインストール

App Mesh Kubernetes コントローラーをインストールするには、「App Mesh コントローラー」の手順に従います。

サンプルアプリケーションをインストールする

aws-app-mesh-examples」には、複数の Kubernetes App Mesh チュートリアルが含まれています。このチュートリアルでは、http ルートがヘッダーを使用して着信リクエストを照合する方法を示すサンプルカラーアプリケーションをインストールします。

App Mesh サンプルアプリケーションを使用して Container Insights をテストするには
  1. https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-http-headers」の手順に従ってアプリケーションをインストールします。

  2. curler ポッドを起動してトラフィックを生成します。

    kubectl -n default run -it curler --image=tutum/curl /bin/bash
  3. HTTP ヘッダーを変更し、異なるエンドポイントに対して curl を使用します。次のように curl コマンドを複数回実行します。

    curl -H "color_header: blue" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo; curl -H "color_header: red" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo; curl -H "color_header: yellow" front.howto-k8s-http-headers.svc.cluster.local:8080/; echo;
  4. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  5. クラスターが実行されている AWS リージョンで、ナビゲーションペインから [Metrics] (メトリクス) を選択します。このメトリクスは、[ContainerInsights/Prometheus] 名前空間にあります。

  6. CloudWatch Logs イベントを表示するには、ナビゲーションペインで [Log Groups (ロググループ)] を選択します。イベントは、ログストリーム /aws/containerinsights/your_cluster_name/prometheus のロググループ kubernetes-pod-appmesh-envoy にあります 。

App Mesh テスト環境の削除

App Mesh とサンプルアプリケーションの使用が終了したら、次のコマンドを使用して不要なリソースを削除します。サンプルアプリケーションを削除するには、次のコマンドを入力します。

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

App Mesh コントローラーを削除するには、次のコマンドを入力します。

helm delete appmesh-controller -n appmesh-system