DEV Community

Barbara Gaspar
Barbara Gaspar

Posted on

AWS Cost Anomaly Detection

Debes tener instalado Terraform en tu máquina virtual, puedes hacerlo con el gestor de paquetes brew si no lo tienes instalado, hazlo con el siguiente comando.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Enter fullscreen mode Exit fullscreen mode

La salida del comando te indica los pasos que debes ejecutar.

echo >> /Users/barbaraguadalupegaspargaona/.zprofile
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/barbaraguadalupegaspargaona/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
Enter fullscreen mode Exit fullscreen mode

Ya que ejecutes esto, brew está disponible para utilizar e instalamos Terraform, siguiendo la página de instalación oficial mediante brew, con las siguientes líneas de código.

brew tap hashicorp/tap
brew install hashicorp/tap/terraform 
brew install hashicorp/tap/terraform #Para instalar la última versión
terraform -help #verificamos la instalación
Enter fullscreen mode Exit fullscreen mode

Ya con esto, tenemos instalado Terraform y podemos conectar con AWS para lanzar IaC.

Conectamos AWS

aws configure
Enter fullscreen mode Exit fullscreen mode

Image description

Crear el directorio

cd Documents #Selecciona la carpeta en la que quieres guardar 

mkdir terraform-cost-anomaly
cd terraform-cost-anomaly #navegar en el directorio
Enter fullscreen mode Exit fullscreen mode

Ahora creamos el código de Terraform

touch nano.tf
Enter fullscreen mode Exit fullscreen mode

Editamos el archivo main.tf con el código para configurar Cost Anomaly Detection de la siguiente manera:

terraform {
required_providers {
awscc = {
source = "hashicorp/awscc"
version = "~> 1.0"
}
provider "awscc" {
region = "us-east-1"
}
}
resource "awscc_ce_anomaly_monitor" "monitor" {
monitor_name = "MonitorDeAnomaliasDeCostos"
monitor_type = "DIMENSIONAL"
monitor_dimension = "SERVICE" # Definimos la dimensión aquí, en lugar de monitor_specification
resource "awscc_ce_anomaly_subscription" "subscription" {
monitor_arn_list = [awscc_ce_anomaly_monitor monitor.id] # Se usa "id' en lugar de 'arn'
subscription_name = "SubscripcionAnomaliasDeCostos"
threshold
= 50
frequency
= "DAILY"
subscribers = [ # Se cambió 'subscriber por 'subscribers'
{
address = "orgbgspr@gmail.com"
type
= "EMAIL"
 }
]
}
Enter fullscreen mode Exit fullscreen mode

Después del código, iniciamos terraform y aplicamos la configuración

terraform init 
terraform apply 
Enter fullscreen mode Exit fullscreen mode

Confirmamos la configuración y concluimos el ejercicio

Debemos tener un resultado como este

Image description

Image description

Y recibiremos un correo como este

Image description

Consideraciones generales

  • Hay un número específico de monitores para crear
  • Se pueden agregar más monitores por medio de una solicitud

Top comments (1)

Collapse
 
matijasos profile image
Matija Sosic

A great overview!