Skip to content

Instantly share code, notes, and snippets.

View gabanox's full-sized avatar
🥷
Hiring AWS Instructors in Latam 🌎

Gabriel Ramirez gabanox

🥷
Hiring AWS Instructors in Latam 🌎
View GitHub Profile
@gabanox
gabanox / cinetime_s3_demo.py
Last active March 24, 2026 17:26
CineTime S3 Storage Classes Demo — AWS re/Start | Práctica manual de clases de almacenamiento sin Lifecycle Policies
#!/usr/bin/env python3
"""
╔══════════════════════════════════════════════════════════════════════╗
║ CineTime — Demo de Clases de Almacenamiento S3 ║
║ AWS re/Start | Práctica Manual de Storage Classes ║
╚══════════════════════════════════════════════════════════════════════╝
IMPORTANTE: Este script simula mover archivos entre clases de S3
SIN usar Lifecycle Policies automáticas.
Cada operación usa copy_object() para que veas exactamente
#!/bin/bash
# Script para crear o actualizar el stack de CloudFormation de forma parametrizada
STACK_NAME="student-stack"
TEMPLATE_FILE="infra.yml"
REGION="us-east-1"
PROFILE="default"
# Parámetros genéricos (modifica según tu entorno)
@gabanox
gabanox / generador_transacciones_tarjetas.py
Created October 1, 2025 16:29
Generador de Transacciones de Tarjetas de Crédito - Script Python para generar datos sintéticos con indicadores de fraude
"""
Generador de Transacciones de Tarjetas de Crédito
Genera datos sintéticos de transacciones para proyectos de machine learning
"""
import random
import pandas as pd
from datetime import datetime, timedelta
import json
@gabanox
gabanox / transacciones_tarjetas.csv
Created October 1, 2025 16:28
Generador de Transacciones de Tarjetas de Crédito - 1000 registros sintéticos con detección de fraude
We can make this file beautiful and searchable if this error is corrected: It looks like row 7 should actually have 15 columns, instead of 5 in line 6.
transaccion_id,cliente_id,fecha,hora,fecha_hora,tipo_tarjeta,numero_tarjeta,comercio,categoria,monto,ciudad,distancia_km,es_horario_inusual,estado,es_fraude
TXN_00000001,CLI_000191,2025-07-07,21:53:31,2025-07-07 21:53:31,American Express,37************3172,San Pablo,Farmacia,76.59,Ciudad de México,20.7,False,Aprobada,False
TXN_00000002,CLI_000125,2025-09-25,16:22:19,2025-09-25 16:22:19,Visa,4************7867,LinkedIn Learning,Educación,3303.68,Mérida,46.0,False,Aprobada,False
TXN_00000003,CLI_000101,2025-07-19,15:12:21,2025-07-19 15:12:21,American Express,37************2467,Telcel,Telecomunicaciones,374.24,Tijuana,7.3,False,Aprobada,False
TXN_00000004,CLI_000146,2025-08-05,14:53:06,2025-08-05 14:53:06,Visa,4************6322,Starbucks,Restaurante,1940.7,Mérida,8.38,False,Aprobada,False
TXN_00000005,CLI_000171,2025-09-16,02:02:04,2025-09-16 02:02:04,American Express,37************9097,Farmacia Guadalajara,Farmacia,180.01,Mérida,10.45,True,Aprobada,False
TXN_00000006,CLI_000072,2025-07-31,17:23:44,2025-07-31 17
@gabanox
gabanox / infra.yml
Last active October 15, 2025 01:39
AWSTemplateFormatVersion: '2010-09-09'
Description: |
Infraestructura mínima en AWS para instancia EC2 en VPC por defecto, siguiendo requerimientos del README.md.
Parameters:
LatestAmiId:
Type: String
Default: ami-039a65ec6bd28e541 # ID AMI más reciente
Description: AMI más reciente de Amazon Linux 2023.
VpcId:

Requerimientos de Diseño para la Infraestructura AWS

  1. Plantilla CloudFormation

    • El archivo de infraestructura debe llamarse infra.yml.
    • La plantilla debe ser clara, modular y seguir buenas prácticas de nomenclatura y organización de recursos.
  2. Red (VPC)

    • Utilizar la VPC por defecto de la cuenta, con el ID: vpc-086fe118b4ed5c6e4.
    • Todos los recursos deben estar asociados explícitamente a esta VPC.
#!/usr/bin/env bash
set -euo pipefail
# === Configuración de usuarios y grupos ===
declare -A OWNER_BY_GROUP=(
[Personnel]="emcbath"
[HR]="ctee"
[Finance]="dolberdi"
)
GROUPS=("Personnel" "HR" "Finance")
import redis
from redis.cluster import RedisCluster
import time
import random
from datetime import datetime
import uuid
from faker import Faker
# Configuración
REDIS_CONFIG_ENDPOINT = ''
import redis
import time
import random
from datetime import datetime, timedelta
import uuid
import threading
from faker import Faker
# Configurar Faker para generar datos falsos
fake = Faker()
import boto3
def publish_sqs_message():
client = boto3.client('sqs', region_name='us-east-1')
for i in range(100000000):
response = client.send_message(
QueueUrl='QueueURL',
MessageBody='Order # '+str(i)
)