Enhanced Container Insights (Classic) から OTel Container Insights に移行する
Enhanced Container Insights (Classic) と OTel Container Insights はどちらも同じ amazon-cloudwatch-observability Amazon EKS アドオンを使用します。移行は、15~30 分で完了できるインプレースのアドオンバージョン更新です。
警告
Classic メトリクス名で設定された CloudWatch アラームは、OTel メトリクスと自動的には連携しません。PromQL ベースのアラームルールを使用してアラームを再作成する必要があります。
前提条件
移行を開始する前に、以下の要件を満たしていることを確認します。
-
Kubernetes バージョン 1.28 を搭載の Amazon EKS クラスター
-
amazon-cloudwatch-observabilityアドオンがインストールされ、ACTIVEステータスになっている -
AWS CLI バージョン 2.15.0 以降
-
kubectlがターゲットクラスターと通信できるように設定されていること -
CloudWatchAgentServerPolicy管理ポリシーがアタッチされた IAM ロール
重要な変更
移行を開始する前に、次の破壊的変更について確認します。
削除された機能
OTel Container Insights では、次の機能は利用できません。
-
StatsD カスタムメトリクス — 代わりに OTel StatsD レシーバーを使用します。
-
collectd plugin — OTel ネイティブの計測に移行します。
デフォルトの変更
次の表に、Classic と OTel Container Insights の間で変化するデフォルト値を示します。
| 設定 | Classic のデフォルト | OTel CI のデフォルト |
|---|---|---|
| 収集間隔 | 60 秒 | 60 秒 |
| オブザーバビリティの強化 | 有効 | 有効 |
| エージェント CPU リクエスト | 200m | 100m |
| エージェントメモリリクエスト | 200Mi | 128Mi |
移行手順
この移行では、段階的なアプローチを使用してモニタリングのギャップを最小限に抑えます。Classic メトリクスストリームと OTel メトリクスストリームの両方を並行して実行し、データを検証してから Classic ストリームを無効にします。
フェーズ 1: 現在の状態を確認する (Classic のみ)
変更する前に、現在のアドオンの状態を確認し、ロールバックに備えてバージョンを記録します。
現在のアドオン設定を確認するには
-
現在のアドオンのステータスを確認するには、次のコマンドを実行します。
aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability -
statusフィールドがACTIVEであることを確認します。 -
addonVersionの値を記録します。ロールバックする必要がある場合は、この値が必要です。
フェーズ 2: デュアル発行を有効にする (Classic + OTel)
Enhanced Container Insights (Classic) とともに OTel Container Insights を有効にします。これにより、両方のメトリクスストリームが同時に発行されるため、データの同等性を検証できます。
重要
このフェーズでは、両方のメトリクスストリームに料金が発生します。コストを最小限に抑えるため、デュアル発行の時間枠はできるだけ短くすることをお勧めします。
デュアル発行を有効にするには
-
次のコマンドを実行して、両方のストリームを有効にしてアドオンを更新します。
aws eks update-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --addon-versionlatest-version\ --configuration-values '{"containerInsights":{"enabled":true},"otelContainerInsights":{"enabled":true}}' \ --resolve-conflicts OVERWRITE -
アドオンのステータスが
ACTIVEに戻るまで待ちます。aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" -
PromQL で既知のメトリクスをクエリして、OTel メトリクスが CloudWatch に表示されることを確認します。
フェーズ 3: アラームを再作成し、ダッシュボードを更新する
既存の Classic アラームとダッシュボードの OTel 置換を構築します。このフェーズでは、セーフティネットとして Classic アラームをアクティブに保ちます。
OTel メトリクスのアラームを再作成するには
-
Classic Container Insights メトリクス名を参照するすべての CloudWatch アラームを特定します。
-
OTel メトリクス名を参照する PromQL ベースのメトリクスの数式を使用して、同等のアラームを作成します。
-
新しいアラームが
OK状態になり、同等のしきい値評価が生成されていることを確認します。 -
CloudWatch ダッシュボードを更新して、OTel メトリクスに基づくウィジェットを既存の Classic ウィジェットとともに含めます。
フェーズ 4: Classic を無効にする (OTel のみに切り替える)
OTel メトリクス、アラーム、ダッシュボードが正しく動作することを検証したら、Classic ストリームを無効にします。
Classic を無効にして OTel のみを保持するには
-
次のコマンドを実行して、 Classic メトリクスの発行を無効にします。
aws eks update-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --configuration-values '{"containerInsights":{"enabled":false},"otelContainerInsights":{"enabled":true}}' \ --resolve-conflicts OVERWRITE -
アドオンのステータスが
ACTIVEに戻るまで待ちます。 -
フェーズ 3 で置き換えた Classic アラームを削除します。
検証
移行が完了したら、オブザーバビリティスタックが正しく動作していることを確認します。
-
Query Studio でメトリクスを確認 — PromQL クエリを使用して、メトリクスが OTel パイプラインから流れていることを確認します。
-
ベースライン値と比較 — メトリクス値が、フェーズ 2 で記録した Classic メトリクスと矛盾がないことを確認します。
-
Container Insights ダッシュボードを確認 — Container Insights コンソールにクラスターのデータが表示されていることを確認します。
-
ログ配信を確認 — コンテナログが CloudWatch Logs に引き続き表示されることを確認します。
-
アラームを確認 —
INSUFFICIENT_DATA状態になっているアラームがないことを確認します。
ロールバック
移行後に問題が発生した場合は、以前の Classic 設定を復元できます。
Enhanced Container Insights (Classic) にロールバックするには
-
フェーズ 1 で記録した以前のアドオンバージョンを特定します。
-
次のコマンドを実行して、アドオンをダウングレードします。
aws eks update-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --addon-versionprevious-version\ --resolve-conflicts OVERWRITE -
アドオンのステータスが
ACTIVEに戻るまで待ちます。aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" -
以前のバージョンで使用したカスタム設定値を再適用します。