Amazon EKS および Kubernetes の Container Insights のクイックスタートセットアップ - Amazon CloudWatch

Amazon EKS および Kubernetes の Container Insights のクイックスタートセットアップ

重要

Amazon EKS クラスターに Container Insights をインストールする場合は、このセクションの手順を使用するのではなく Amazon CloudWatch Observability EKS アドオンを使用してインストールすることをお勧めします。また、高速コンピューティングネットワークを取得するには、Amazon CloudWatch Observability EKS アドオンを使用する必要があります。詳細と手順については、「Amazon CloudWatch Observability EKS アドオンのインストール」を参照してください。

Container Insights のセットアップを完了するには、このセクションのクイックスタート手順に従います。2023 年 11 月 6 日以降にこのセクションの手順を使用して Amazon EKS クラスターにインストールを行う場合は、Amazon EKS 向けにオブザーバビリティが強化された Container Insights をそのクラスターにインストールします。

重要

このセクションに記載されている手順を完了する前に、IAM アクセス許可を含む前提条件を確認しておく必要があります。詳細については、「CloudWatch での Container Insights の前提条件の検証」を参照してください。

または、代わりに「クラスターメトリクスを収集するよう CloudWatch エージェントを設定する」および「CloudWatch Logs にログを送信する」の 2 つのセクションの手順に従うことができます。これらのセクションでは、CloudWatch エージェントがどのように Amazon EKS および Kubernetes と動作するかについてより詳しく説明されていますが、追加のインストール手順を実行する必要があります。

Container Insights の元のバージョンでは、収集されたメトリクスおよび取り込まれたログはカスタムメトリクスとして課金されます。Amazon EKS 向けにオブザーバビリティが強化された Container Insights では、観察結果ごと Container Insights メトリクスおよびログに課金されます。保存されたメトリクスまたは取り込まれたログごとには課金されません。CloudWatch の料金の詳細については、Amazon CloudWatch の料金をご覧ください。

注記

Amazon は、Container Insights のデフォルトのログソリューションとして Fluent Bit の提供を開始しました。これにより、パフォーマンスの大幅な向上が見込めます。Fluentd の代わりに Fluent Bit を使用することをお勧めします。

CloudWatch エージェントオペレーターと Fluent Bit を使用したクイックスタート

Fluent Bit については、最適化されたバージョンと Fluentd に似た使用感を提供するバージョンの 2 つの設定があります。クイックスタート設定では、最適化されたバージョンが使用されます。Fluentd 互換の設定の詳細については、「CloudWatch Logs へログを送信する DaemonSet として Fluent Bit を設定する」を参照してください。

CloudWatch エージェントオペレーターは、Amazon EKS クラスターにインストールされる追加のコンテナです。OpenTelemetry Operator for Kubernetes をモデルにしています。オペレーターは、クラスター内の Kubernetes リソースのライフサイクルを管理します。CloudWatch エージェント、DCGM Exporter (NVIDIA)、および AWS Neuron Monitor を Amazon EKS クラスターにインストールして管理します。Fluent Bit および Windows 用 CloudWatch エージェントは、オペレーターが管理しなくても Amazon EKS クラスターに直接インストールされます。

安全性の高い多機能な証明機関を利用できるように、CloudWatch エージェントオペレーターには cert-manager が必要です。これは、Kubernetes で TLS 証明書を管理するのに広く採用されているソリューションです。cert-manager を使用すると、これらの証明書を取得、更新、管理、使用するプロセスを簡素化できます。これにより、証明書が有効で最新の状態であることが保証されます。有効期限前の設定しておいた時刻になると、証明書が更新されます。また、AWS Certificate Manager Private Certificate Authority などサポートされているさまざまな発行元から簡単に証明書を発行できます。

クイックスタートを使用して Container Insights をデプロイするには
  1. まだクラスターにインストールされていない場合は、cert-manager をインストールします。詳細については、cert-manager Installation を参照してください。

  2. 次のコマンドを入力して、カスタムリソース定義 (CRD) をインストールします。

    curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl apply --server-side -f -
  3. 次のコマンドを入力して、オペレーターをインストールします。my-cluster-name は Amazon EKS または Kubernetes クラスターの名前に置き換え、my-cluster-region はログが発行されるリージョンの名前に置き換えます。AWS アウトバウンドデータ転送コストを削減するために、クラスターがデプロイされているのと同じリージョンを使用することをお勧めします。

    ClusterName=my-cluster-name RegionName=my-cluster-region curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -

    例えば、MyCluster という名前のクラスターに Container Insights をデプロイし、ログとメトリクスを米国西部 (オレゴン) に発行するには、次のコマンドを入力します。

    ClusterName='MyCluster' RegionName='us-west-2' curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -

Container Insights からの移行

Amazon EKS クラスターで既に Container Insights を設定しており、Amazon EKS 向けにオブザーバビリティが強化された Container Insights に移行する場合は、「CloudWatch の Amazon EKS 向けにオブザーバビリティが強化された Container Insights へのアップグレード」を参照してください。

Container Insights の使用

クイックスタートセットアップの使用後に Container Insights を削除する場合は、次のコマンドを入力します。

ClusterName=my-cluster-name RegionName=my-cluster-region curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl delete -f - curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl delete -f -