Escolha um serviço Kinesis para ingestão de streaming.
→Processamento controlado pelo consumidor em sub-segundos → Kinesis Data Streams. Entrega totalmente gerenciada para S3/Redshift/OpenSearch com conversão de formato opcional → Kinesis Data Firehose.
Por quê: O KDS retém registros (24h–365d) e suporta múltiplos consumidores. O Firehose não tem replay; troca replay por entrega zero-ops.
Referência↗
O stream atinge erros de ProvisionedThroughputExceeded durante o pico.
→Refragmentar (Reshard). Cada shard suporta ingestão de 1 MB/s ou 1.000 registros/s, saída de 2 MB/s. Use chaves de partição uniformes; habilite Enhanced Fan-Out para >2 MB/s por consumidor.
Por quê: Chaves de partição "quentes" concentram o tráfego em um shard. Chaves aleatórias ou baseadas em hash distribuem a carga.
Referência↗
A carga de trabalho de streaming é irregular e imprevisível; o resharding manual é uma dor operacional.
→Kinesis Data Streams no modo de capacidade sob demanda. Escala automaticamente para 200 MB/s por padrão; pague por volume de dados.
Referência↗
Múltiplos consumidores lendo o mesmo stream atingem o limite de leitura de 2 MB/s/shard.
→Enhanced Fan-Out. Cada consumidor obtém 2 MB/s/shard dedicados via SubscribeToShard HTTP/2 baseado em push.
Referência↗
Maximize a taxa de transferência de ingestão do aplicativo produtor.
→Kinesis Producer Library (KPL) com agregação + coleção. Agrupa múltiplos registros de usuário em um registro Kinesis de até 1 MB; reduz o custo de PUT.
Por quê: PutRecord de registro único é limitado por taxa e caro a 50k eventos/s. KPL agrega no lado do cliente.
Referência↗
Armazenar clickstream JSON no S3 como Parquet, particionado por tempo de evento.
→Firehose com conversão de formato de registro (JSON → Parquet) usando tabela do Glue Data Catalog + particionamento dinâmico no timestamp do evento.
Por quê: Parquet + particionamento reduz drasticamente o custo de varredura do Athena. O particionamento dinâmico evita uma etapa ETL separada.
Referência↗
Alguns registros falham na transformação ou entrega do Firehose; é preciso capturá-los para replay.
→Configure backup do S3 com `AllData` ou `FailedDataOnly`. Os registros com falha são enviados para o prefixo configurado com metadados de erro.
Referência↗
Garanta que não haja perda de dados no MSK se uma AZ de broker falhar.
→Fator de replicação ≥ 3 em 3 AZs e `min.insync.replicas=2` com `acks=all` do produtor. Habilite Multi-AZ via KRaft sem ZooKeeper ou posicionamento de broker em 3 AZs.
Referência↗
Realize streaming do MSK para S3, OpenSearch ou RDS sem gerenciar um cluster Kafka Connect.
→MSK Connect com conector gerenciado (Confluent S3 Sink, Debezium para CDC). Autoescala workers por WCU.
Referência↗
O tópico armazena a versão mais recente de um registro por chave; versões antigas podem ser descartadas.
→Defina a política do tópico `cleanup.policy=compact`. O Kafka retém o valor mais recente para cada chave; registros mais antigos com a mesma chave são elegíveis para compactação.
Referência↗
Transferência semanal recorrente de 10 TB de NFS on-premise para S3 via Direct Connect.
→AWS DataSync com agente on-premise + tarefa agendada. Verifica a integridade dos dados, suporta transferências incrementais, paralelo.
Por quê: O DataSync é mais rápido que o aws-cli sync e lida com limitação de largura de banda, novas tentativas e verificação nativamente.
Referência↗
Puxar dados de APIs SaaS (Salesforce, ServiceNow, Zendesk) para o S3 em um cronograma.
→AWS AppFlow. Conectores gerenciados, OAuth tratado, agendado ou acionado por evento, grava Parquet no S3.
Referência↗
Replicar alterações contínuas de um SQL Server on-premise para Aurora MySQL com tempo de inatividade mínimo.
→AWS DMS com carga completa + tarefa CDC. Use o Schema Conversion Tool (SCT) para conversão heterogênea de esquema/código antes do DMS.
Referência↗
Instância de replicação do DMS falha — a replicação é interrompida.
→Habilite Multi-AZ na instância de replicação. Standby síncrono em outra AZ; failover automático.
Referência↗
Precisa de análises quase em tempo real em dados OLTP Aurora sem pipeline ETL.
→Integração Aurora zero-ETL com Redshift. Replicação contínua de dados Aurora para Redshift; as consultas veem novos dados em segundos.
Por quê: Elimina pipelines DMS / Glue / CDC customizados para o caso de uso de OLTP para data warehouse.
Referência↗
Mover 100 TB de arquivo histórico de on-premise para S3; largura de banda limitada.
→AWS Snowball Edge Storage Optimized. Dispositivo físico enviado ao local; copiar dados; enviar de volta.
Referência↗
O JSON de origem tem arrays aninhados; a análise relacional downstream precisa de linhas achatadas.
→Transformação `Relationalize` do Glue PySpark (ou `explode()` em DataFrame) achata arrays aninhados em linhas/tabelas separadas.
Referência↗
O Glue Crawler infere tipos ambíguos (`choice<int,string>`) de dados CSV bagunçados.
→Aplique a transformação `ResolveChoice` — converta para tipo específico ou projete para struct. Ou corrija na origem, aplicando o esquema.
Referência↗
O job ETL do Glue é executado por hora em dados S3 crescentes; precisa processar apenas novos arquivos.
→Habilite os bookmarks de job do Glue. O Glue rastreia arquivos/partições processados e os ignora em novas execuções.
Por quê: Evita reprocessar todo o conjunto de dados. Necessário para pipelines ETL incrementais.
Referência↗
O job Spark do Glue falha com OutOfMemoryError no driver durante grandes agregações.
→Mude para workers G.2X ou G.4X (mais memória do driver) ou habilite `--enable-glue-datacatalog` para reduzir dados embaralhados.
Referência↗
Execute Spark Structured Streaming contínuo contra uma fonte Kinesis com infraestrutura gerenciada.
→Job ETL de streaming do AWS Glue. Spark Structured Streaming por trás dos panos; checkpointing para S3.
Referência↗
Um analista de negócios precisa limpar e transformar dados sem escrever código.
→AWS Glue DataBrew. Transformações baseadas em receita visual (mais de 250), profiling, linhagem. Saída para S3, Redshift, RDS.
Referência↗
Execute o job ETL do Glue somente depois que o Crawler atualizar com sucesso o Data Catalog.
→Fluxo de trabalho do Glue com gatilhos condicionais. Sucesso do Crawler → acionar job ETL. Falha → pular / alarme.
Referência↗
O Crawler infere todas as colunas CSV como `string` — precisa de tipos de data e número.
→Adicione um classificador Glue personalizado (padrão Grok ou dica de coluna) antes do crawling. Alternativamente, pré-escreva uma linha de cabeçalho com tipos explícitos.
Referência↗
Múltiplos produtores/consumidores no Kafka precisam de evolução de esquema sem quebrar uns aos outros.
→AWS Glue Schema Registry com regras de compatibilidade (BACKWARD/FORWARD/FULL). Produtores registram esquema; consumidores buscam + validam.
Referência↗
Escolha entre EMR e Glue para Spark ETL.
→Spark personalizado de longa duração com ajuste profundo, múltiplos frameworks (Hive, Presto, Flink) → EMR. ETL serverless pago por job com integração Glue Data Catalog → Glue. Spark irregular/imprevisível → EMR Serverless.
Referência↗
Jobs Spark/Hive intermitentes; quer zero operações de cluster e nenhum recurso de computação ocioso.
→EMR Serverless. Pools de capacidade pré-inicializados para inícios de baixa latência; escala por job; pague por vCPU-hora.
Referência↗
Misturar nós de core on-demand + nós de tarefa spot para EMR otimizado em custo.
→Instance Fleets com capacidade alvo por tipo. Frota de core on-demand para estabilidade HDFS; frota de tarefas spot com tipos de instância diversificados.
Referência↗
Padronizar no Kubernetes; quer que os jobs Spark do EMR compartilhem o cluster com outras cargas de trabalho.
→EMR on EKS. Spark é executado como pods no cluster EKS existente; compartilha infraestrutura e roles IAM via IRSA.
Referência↗
Streaming com estado com agregações em janelas e semântica de "exactly-once".
→Kinesis Data Analytics for Apache Flink. Runtime Flink gerenciado; checkpoints para S3; autoescala.
Referência↗
Transformação leve por registro em um stream Kinesis (<1 ms cada).
→Lambda com Event Source Mapping no KDS. Ajuste `BatchSize`, `MaximumBatchingWindowInSeconds` e `ParallelizationFactor`.
Por quê: Lambda é mais barato que KCL/Glue Streaming para trabalho pequeno por registro.
Referência↗
Um passo do Step Functions ocasionalmente falha devido a throttling transitório; retentar e depois alertar.
→Adicione o bloco `Retry` com `ErrorEquals: ["Lambda.ThrottlingException", "States.TaskFailed"]`, `IntervalSeconds`, `MaxAttempts`, `BackoffRate=2`. Além de `Catch` para um estado de notificação.
Referência↗
Processar 500.000 arquivos JSON em paralelo através de transformação Lambda.
→Estado de Map distribuído do Step Functions com `MaxConcurrency` e ItemReader do S3. Distribuição (Fan-out) em milhares de invocações Lambda paralelas.
Referência↗
DAG complexo com dependências entre serviços (Glue + Redshift COPY + Lambda + email) e requisitos de linhagem.
→Amazon MWAA (Managed Workflows for Apache Airflow). Operadores Airflow nativos para serviços AWS; sincronização de DAGs via Git.
Referência↗
Precisa reverter as alterações do DAG se um deploy causar falhas.
→Armazene DAGs em bucket S3 versionado + sincronize via versionamento S3. Ou mantenha o repositório DAG no Git com ambiente por branch + sincronização S3 via CI.
Referência↗