

# Implante o Enhanced Container Insights (Classic) com CloudFormation ou Helm
<a name="container-insights-eks-classic-iac"></a>

Você pode implantar o Enhanced Container Insights (Classic) como infraestrutura como código usando modelos CloudFormation ou charts do Helm. Essa abordagem instala o complemento `amazon-cloudwatch-observability` com uma versão anterior à v6.2.0 para ativar o pipeline de métrica Classic. Escolha essa abordagem se você gerencia clusters por meio de pipelines de IaC e deseja implantações reproduzíveis e controladas por versão.

**Recomendação**  
Para novas implantações, recomendamos [OTel Container Insights (recomendado)](container-insights-eks-otel.md), que usa a versão 6.2.0 ou posterior do complemento com o pipeline baseado em OTel.

## Pré-requisitos
<a name="container-insights-eks-classic-iac-prereqs"></a>

Antes de você implantar o Enhanced Container Insights (Classic) com CloudFormation ou Helm, verifique se atende aos seguintes requisitos.
+ Um cluster existente do Amazon EKS executando o Kubernetes versão 1.25 ou posterior
+ AWS CLI versão 2.12.0 ou posterior
+ `kubectl` configurado para comunicar-se com o cluster de destino
+ Permissões do IAM para criação de pilhas de CloudFormation (para o método CloudFormation)
+ Helm v3.8 ou posterior (para o método Helm)
+ Acesso à Internet de saída do cluster para os endpoints do CloudWatch

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

Use um modelo CloudFormation para implantar o complemento de observabilidade CloudWatch Observability com a configuração Classic. Esse modelo usa o recurso `AWS::EKS::Addon` para instalar o complemento com uma versão anterior à v6.2.0.

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

O modelo a seguir cria os recursos necessários para ativar o Enhanced Container Insights (Classic) no seu cluster 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
```

Este modelo cria os seguintes recursos:
+ Um perfil do IAM com a política gerenciada `CloudWatchAgentServerPolicy` anexada
+ Uma associação da Identidade de Pods EKS que mapeia a função para a conta de serviço do atendente do CloudWatch
+ O complemento `amazon-cloudwatch-observability` EKS com uma versão clássica (anterior à v6.2.0)

### Para implantar a pilha do CloudFormation
<a name="container-insights-eks-classic-iac-cfn-deploy"></a>

Use AWS CLI para criar a pilha do CloudFormation a partir do modelo.

**Para implantar a pilha**

1. Salve o modelo anterior em um arquivo chamado `classic-container-insights.yaml`.

1. Execute o comando a seguir. Substitua {{cluster-name}} pelo nome do cluster do 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. Aguarde a conclusão da criação da pilha.

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

1. Verifique se o status da pilha é `CREATE_COMPLETE`.

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

## Implantar com Helm
<a name="container-insights-eks-classic-iac-helm"></a>

Use o chart do Helm para implantar o Enhanced Container Insights (Classic) se você gerencia workloads do Kubernetes com o Helm. O gráfico instala o operador de observabilidade CloudWatch Observability com o pipeline de métrica Classic.

**nota**  
Ao usar o Helm, você deve criar o perfil do IAM e a associação da Identidade de Pods separadamente. O chart do Helm instala somente os recursos do Kubernetes.

### Etapa 1: Criar o perfil do IAM
<a name="container-insights-eks-classic-iac-helm-iam"></a>

Crie um perfil do IAM para o atendente do CloudWatch antes de instalar o chart do Helm.

**Para criar o perfil do IAM e a associação da Identidade de Pods**

1. Execute o seguinte comando para criar a função com uma política de confiança para a Identidade de Pods 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. Anexe a política gerenciada `CloudWatchAgentServerPolicy` à função.

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

1. Crie a associação de Identidade de Pods. Substitua {{cluster-name}} pelo nome do seu cluster do Amazon EKS e {{account-id}} pelo ID da sua conta da 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
   ```

### Etapa 2: instale o chart do Helm
<a name="container-insights-eks-classic-iac-helm-install"></a>

Instale o chart do CloudWatch Observability Helm com uma versão Classic (anterior à v6.2.0).

**Para instalar o chart do Helm**

1. Execute o comando a seguir. Substitua {{cluster-name}} pelo nome do seu cluster do Amazon EKS e {{region}} pela sua Região da 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. Verifique se a versão do Helm foi implantada com sucesso.

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

   O status deve exibir `deployed`.

## Verificar a implantação
<a name="container-insights-eks-classic-iac-verify"></a>

Após a conclusão da criação da pilha do CloudFormation ou da instalação do Helm, verifique se o complemento está em execução e enviando dados para o CloudWatch.

**Como verificar a implantação**

1. Confirme se os pods de atendente do CloudWatch estão em execução.

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

   Todos os pods devem mostrar o status `Running`.

1. Abra o console do CloudWatch, em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. No painel de navegação, escolha **Metrics** (Métricas) e, em seguida, **All metrics** (Todas as métricas).

1. Verifique se as métricas aparecem no namespace `ContainerInsights` do seu cluster.

As métricas geralmente aparecem no CloudWatch dentro de 3 a 5 minutos após a conclusão da implantação.

## Próximas etapas
<a name="container-insights-eks-classic-iac-next"></a>

Depois de implantar o Enhanced Container Insights (Classic), você pode explorar os tópicos a seguir.
+ Para configuração baseada em console, consulte [Ative o Enhanced Container Insights (Classic) a partir do console](container-insights-eks-classic-console.md).
+ Para uma configuração baseada na AWS CLI, consulte [Guia de instalação (AWS CLI)](container-insights-eks-classic-setup.md).
+ Para obter informações sobre as métricas que o Enhanced Container Insights (Classic) coleta, consulte [Referência métrica do Enhanced Container Insights (Classic)](container-insights-eks-classic-metrics.md).
+ Para migrar para OTel Container Insights, consulte [Migre do Enhanced Container Insights (Classic) para o OTel Container Insights](container-insights-eks-migrate-from-classic.md).
+ Para obter mais informações sobre o OTel Container Insights, consulte [OTel Container Insights (recomendado)](container-insights-eks-otel.md).