

# Implementación de Información de contenedores mejorada (versión clásica) con CloudFormation o Helm
<a name="container-insights-eks-classic-iac"></a>

Puede implementar Información de contenedores mejorada (versión clásica) como infraestructura como código mediante plantillas de CloudFormation o gráficos de Helm. Este enfoque instala el complemento `amazon-cloudwatch-observability` con una versión anterior a la versión 6.2.0 para habilitar la canalización de métricas clásicas. Elija este enfoque si administra clústeres a través de canalizaciones de IaC y desea implementaciones repetibles y controladas por versiones.

**Recomendación**  
Para las nuevas implementaciones, le recomendamos [Información de contenedores de OTel (recomendado)](container-insights-eks-otel.md), que utiliza la versión 6.2.0 o posterior del complemento junto con la canalización basada en OTel.

## Requisitos previos
<a name="container-insights-eks-classic-iac-prereqs"></a>

Antes de implementar Información de contenedores mejorada (versión clásica) con CloudFormation o Helm, asegúrese de satisfacer los siguientes requisitos.
+ Un clúster de Amazon EKS existente que ejecuta la versión 1.25 de Kubernetes o una posterior
+ AWS CLI versión 2.12.0 o posterior
+ `kubectl` configurado para comunicarse con el clúster de destino
+ Permisos de IAM para la creación de pilas de CloudFormation (para el método CloudFormation)
+ Versión 3.8 o posterior de Helm (para el método de Helm)
+ Acceso de salida a Internet desde el clúster a los puntos de conexión de CloudWatch

## Deploy with CloudFormation
<a name="container-insights-eks-classic-iac-cloudformation"></a>

Utilice una plantilla de CloudFormation para implementar el complemento de observabilidad de CloudWatch con la configuración clásica. Esta plantilla utiliza el recurso `AWS::EKS::Addon` para instalar el complemento con una versión anterior a la versión 6.2.0.

### CloudFormationPlantilla de
<a name="container-insights-eks-classic-iac-cfn-template"></a>

La siguiente plantilla crea los recursos que necesita para activar Información de contenedores mejorada (versión clásica) en el clúster de Amazon EKS.

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Deploy Enhanced Container Insights (Classic) on an EKS cluster

Parameters:
  ClusterName:
    Type: String
    Description: The name of your EKS cluster

Resources:
  CloudWatchAgentRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: EKS-CloudWatch-Agent-Role
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: pods.eks.amazonaws.com
            Action:
              - sts:AssumeRole
              - sts:TagSession
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

  PodIdentityAssociation:
    Type: AWS::EKS::PodIdentityAssociation
    Properties:
      ClusterName: !Ref ClusterName
      Namespace: amazon-cloudwatch
      ServiceAccount: cloudwatch-agent
      RoleArn: !GetAtt CloudWatchAgentRole.Arn

  CloudWatchObservabilityAddon:
    Type: AWS::EKS::Addon
    DependsOn: PodIdentityAssociation
    Properties:
      ClusterName: !Ref ClusterName
      AddonName: amazon-cloudwatch-observability
      AddonVersion: v5.4.0-eksbuild.1
      ServiceAccountRoleArn: !GetAtt CloudWatchAgentRole.Arn
      ResolveConflicts: OVERWRITE
```

Esta plantilla crea los siguientes recursos:
+ Un rol de IAM con la política administrada `CloudWatchAgentServerPolicy` adjunta
+ Una asociación de Pod Identity de EKS que asigna el rol a la cuenta de servicio del agente de CloudWatch
+ El complemento de EKS `amazon-cloudwatch-observability` con una versión clásica (anterior a la versión 6.2.0)

### Para implementar la pila de CloudFormation
<a name="container-insights-eks-classic-iac-cfn-deploy"></a>

Use la AWS CLI para crear la pila de CloudFormation a partir de la plantilla.

**Para implementar la pila**

1. Guarde la plantilla anterior en un archivo llamado `classic-container-insights.yaml`.

1. Ejecute el siguiente comando. Reemplace {{cluster-name}} por el nombre del clúster de Amazon EKS.

   ```
   aws cloudformation create-stack \
     --stack-name classic-container-insights \
     --template-body file://classic-container-insights.yaml \
     --parameters ParameterKey=ClusterName,ParameterValue={{cluster-name}} \
     --capabilities CAPABILITY_NAMED_IAM
   ```

1. Espere a que se complete la creación de la pila.

   ```
   aws cloudformation wait stack-create-complete \
     --stack-name classic-container-insights
   ```

1. Compruebe que el estado de la pila sea `CREATE_COMPLETE`.

   ```
   aws cloudformation describe-stacks \
     --stack-name classic-container-insights \
     --query "Stacks[0].StackStatus" \
     --output text
   ```

## Implementación con Helm
<a name="container-insights-eks-classic-iac-helm"></a>

Use el gráfico de Helm para implementar Información de contenedores mejorada (versión clásica) si administra las cargas de trabajo de Kubernetes con Helm. El gráfico instala el operador de observabilidad de CloudWatch con la canalización de métricas clásicas.

**nota**  
Cuando utilice Helm, debe crear el rol de IAM y la asociación de Pod Identity por separado. El gráfico de Helm solo instala los recursos de Kubernetes.

### Paso 1: Crear el rol de IAM
<a name="container-insights-eks-classic-iac-helm-iam"></a>

Cree un rol de IAM para el agente de CloudWatch antes de instalar el gráfico de Helm.

**Creación del rol de IAM y de la asociación de Pod Identity**

1. Ejecute el siguiente comando para crear el rol con una política de confianza para Pod Identity de EKS.

   ```
   aws iam create-role \
     --role-name EKS-CloudWatch-Agent-Role \
     --assume-role-policy-document '{
       "Version": "2012-10-17",
       "Statement": [{
         "Effect": "Allow",
         "Principal": { "Service": "pods.eks.amazonaws.com" },
         "Action": ["sts:AssumeRole", "sts:TagSession"]
       }]
     }'
   ```

1. Asocie la política administrada por `CloudWatchAgentServerPolicy` al rol.

   ```
   aws iam attach-role-policy \
     --role-name EKS-CloudWatch-Agent-Role \
     --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
   ```

1. Cree la asociación de Pod Identity. Sustituya {{cluster-name}} por el nombre del clúster de Amazon EKS y {{account-id}} por el ID de cuenta de AWS.

   ```
   aws eks create-pod-identity-association \
     --cluster-name {{cluster-name}} \
     --namespace amazon-cloudwatch \
     --service-account cloudwatch-agent \
     --role-arn arn:aws:iam::{{account-id}}:role/EKS-CloudWatch-Agent-Role
   ```

### Paso 2: instalación del gráfico de Helm
<a name="container-insights-eks-classic-iac-helm-install"></a>

Instale el gráfico de Helm de observabilidad de CloudWatch con una versión clásica (anterior a la versión 6.2.0).

**Instalación del gráfico de Helm**

1. Ejecute el siguiente comando. Sustituya {{cluster-name}} por el nombre del clúster de Amazon EKS y {{region}} por la región de AWS.

   ```
   helm install amazon-cloudwatch-observability \
     oci://public.ecr.aws/cloudwatch-agent/amazon-cloudwatch-observability-helm-chart \
     --namespace amazon-cloudwatch \
     --create-namespace \
     --set clusterName={{cluster-name}} \
     --set region={{region}} \
     --version 5.4.0
   ```

1. Compruebe que la versión de Helm se haya implementado correctamente.

   ```
   helm list -n amazon-cloudwatch
   ```

   El estado debe ser `deployed`.

## Verifique la implementación
<a name="container-insights-eks-classic-iac-verify"></a>

Una vez finalizada la creación de la pila de CloudFormation o la instalación de Helm, compruebe que el complemento se esté ejecutando y enviando datos a CloudWatch.

**Verificación de la implementación**

1. Confirme que los pods de agentes de CloudWatch estén en ejecución.

   ```
   kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent
   ```

   Todos los pods deben mostrar el estado `Running`.

1. Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, elija **Metrics** (Métricas) y, a continuación, **All metrics** (Todas las métricas).

1. Compruebe que las métricas aparezcan en el espacio de nombres `ContainerInsights` del clúster.

Las métricas suelen aparecer en CloudWatch entre 3 y 5 minutos después de que se complete la implementación.

## Siguientes pasos
<a name="container-insights-eks-classic-iac-next"></a>

Tras implementar Información de contenedores mejorada (versión clásica), puede explorar los siguientes temas.
+ Para obtener información sobre la configuración basada en la consola, consulte [Activación de Información de contenedores mejorada (versión clásica) desde la consola](container-insights-eks-classic-console.md).
+ Para obtener información sobre la configuración basada en la AWS CLI, consulte [Guía de configuración (AWS CLI)](container-insights-eks-classic-setup.md).
+ Para obtener información sobre las métricas que recopila Información de contenedores mejorada (versión clásica), consulte [Referencia de métricas de Información de contenedores mejorada (versión clásica)](container-insights-eks-classic-metrics.md).
+ Para migrar a Información de contenedores de OTel, consulte [Migración de Información de contenedores mejorada (versión clásica) a Información de contenedores de OTel](container-insights-eks-migrate-from-classic.md).
+ Para obtener más información sobre Información de contenedores de OTel, consulte [Información de contenedores de OTel (recomendado)](container-insights-eks-otel.md).