Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

Blog/Artigo
RSSMarkdownLLMs
AWS & CloudHistória de Migração

Migrando Workloads Financeiros para EC2 R8i: Decisões e Trade-offs

13 de jul. de 2026 12 minEspecialista Com apoio de IA000 visualizações00 reproduções
Ouvir artigo

23:23 · voz do Fernando

Quando a AWS expandiu as instâncias R8in, R8ib, R8idn e R8idb para Tokyo, Frankfurt e Irlanda em 10 de julho de 2026, a decisão não foi apenas de disponibilidade regional, foi um gatilho de modernização para plataformas financeiras que operam sob SLOs de latência de microssegundos e throughput de dados na casa dos terabytes por hora. Migrar não é trocar um tipo de instância; é reescrever contratos operacionais com o hardware.

O Ponto de Partida: Por Que R6i Começou a Doer

Em ambientes financeiros de alta frequência, plataformas de liquidação em tempo real, motores de precificação de derivativos, caches de dados de mercado, o R6in era o teto prático durante anos. Com 100 Gbps de largura de banda de rede no tamanho 32xlarge, ele era suficiente para a maioria dos clusters Kafka/MSK de 2022. Mas o mercado não ficou parado.

O problema surgiu em três frentes simultâneas. Primeiro, os clusters MSK cresceram: tópicos de market data com retenção de 72 horas e fatores de replicação 3 começaram a saturar a largura de banda de rede dos brokers em horários de pico de volatilidade, exatamente quando você menos quer throttling. Segundo, os índices de banco de dados NoSQL (DynamoDB Accelerator em modo cluster, ScyllaDB auto-gerenciado) passaram a exigir IOPS de EBS na faixa de 256.000 por instância, e o R6ib com seu teto de ~260 Gbps de EBS começou a mostrar latências de leitura acima de 500µs no P99, inaceitável para um motor de risco intraday. Terceiro, os pipelines de ML para detecção de fraude em tempo real, rodando em instâncias do mesmo cluster, precisavam de largura de banda de rede suficiente para trafegar feature vectors de alta dimensão entre nós sem introduzir jitter mensurável.

A combinação dessas três pressões criou um cenário claro: a geração R6i estava sendo usada no limite do envelope de performance, sem margem para crescimento orgânico. A expansão regional do R8i para os datacenters onde essas plataformas operam: Tokyo para mercados asiáticos, Frankfurt e Irlanda para compliance europeu sob MiFID II, tornou a migração não apenas desejável, mas necessária.

A Jornada de Migração: Seis Decisões em Sequência

  1. 1

    Passo 1: Mapeamento de Workload e Seleção de Subfamília

    Antes de qualquer movimentação, classifiquei cada workload em dois eixos: dominância de rede versus dominância de armazenamento. Brokers MSK e caches Redis Cluster foram para R8in (600 Gbps de rede, sem NVMe local, dados efêmeros não precisam de persistência local). Bancos de dados ScyllaDB e ClickHouse foram para R8idb (300 Gbps EBS + NVMe local para compactação e WAL). Motores de risco que precisam de ambos foram para R8idn (600 Gbps de rede + NVMe local). A regra: nunca pague por NVMe local se o workload não usa storage local de forma intensiva, o custo por hora do R8idn é materialmente maior que o R8in.

  2. 2

    Passo 2: Baseline de Performance e Definição de SLOs de Migração

    Instrumentei os clusters R6i existentes com CloudWatch Agent + métricas customizadas via EMF (Embedded Metrics Format) para capturar: network_bytes_in/out por instância em janelas de 1 minuto, EBS VolumeReadLatency e VolumeWriteLatency no P50/P95/P99, e CPU steal time (indicador de noisy neighbor em instâncias compartilhadas). Defini SLOs de migração: a instância R8i substituta deve demonstrar P99 de latência de rede ≤70% do baseline R6i sob carga sintética equivalente, antes de qualquer promoção para produção. Sem esse gate, a migração é um ato de fé.

  3. 3

    Passo 3: Habilitação de EFA e Reconfiguração de Placement Groups

    O R8i nos tamanhos 48xlarge, 96xlarge, metal-48xl e metal-96xl suporta Elastic Fabric Adapter (EFA). Para clusters MSK e ScyllaDB que se beneficiam de comunicação inter-nó de baixa latência, habilitei EFA com placement group do tipo 'cluster' dentro de uma única AZ. A armadilha: EFA requer que a interface de rede seja configurada no momento do lançamento, não é possível adicionar depois. Isso significa que o processo de migração não pode ser um simples stop/resize; é necessário lançar novas instâncias com o perfil correto e migrar dados de forma controlada. Para ScyllaDB, usei streaming de dados via nodetool rebuild; para MSK, o reassignment de partições via kafka-reassign-partitions.sh com throttle de 50 MB/s para não impactar produção.

  4. 4

    Passo 4: Estratégia de Volumes EBS io2 Block Express

    Com 300 Gbps de largura de banda de EBS disponível no R8ib/R8idb, o gargalo se desloca para a configuração do volume. Volumes io2 Block Express suportam até 256.000 IOPS e 4.000 MB/s de throughput por volume, mas esses limites só são atingidos em instâncias com envelope de EBS suficiente. Configurei volumes io2 Block Express com IOPS provisionados de 200.000 por instância R8ib para os índices ScyllaDB, usando multi-attach desabilitado (cada volume exclusivo por instância para evitar contenção de I/O). A criptografia foi mantida com chaves KMS gerenciadas pelo cliente (CMK) com política de chave que restringe uso a roles IAM específicas via condição kms:ViaService e aws:SourceAccount.

  5. 5

    Passo 5: Migração Blue/Green com Traffic Shifting Controlado

    Para cada camada, executei uma migração blue/green: o cluster R8i (green) foi provisionado em paralelo ao R6i (blue), com dados sincronizados via replicação nativa. O traffic shifting foi feito em incrementos de 10% usando Target Groups do NLB com peso, monitorando CloudWatch alarms em NetworkPacketLoss, EBSIOBalance e latência P99 da aplicação. O critério de rollback automático: qualquer alarme em estado ALARM por mais de 3 minutos consecutivos dispara um Lambda que reverte os pesos do Target Group para 0% no green. Esse mecanismo de rollback foi testado em staging antes da janela de produção, não confie em rollback que nunca foi exercitado.

  6. 6

    Passo 6: Otimização de Custo com Savings Plans e Right-Sizing Pós-Migração

    Após estabilização (72 horas de produção plena no R8i), executei right-sizing baseado em métricas reais: instâncias com CPU médio abaixo de 25% e network abaixo de 30% do envelope foram rebaixadas para o próximo tamanho menor. Em seguida, comprei Compute Savings Plans de 1 ano cobrindo 70% da capacidade baseline, os 30% restantes ficam em On-Demand para absorver picos. A regra que sigo: nunca compre Savings Plans antes de 72 horas de dados reais no novo tipo de instância. O perfil de consumo muda com a geração de hardware, e comprar cedo pode resultar em over-commitment.

O Perfil de Rede que Muda Tudo: 600 Gbps e o que Isso Significa na Prática

O número 600 Gbps de largura de banda de rede no R8in/R8idn precisa de contexto para ser útil. Em termos práticos, isso é 75 GB/s de throughput sustentado, suficiente para replicar um snapshot de 1 TB em menos de 14 segundos entre instâncias no mesmo placement group. Para um broker MSK com retenção de 72 horas e 50 partições por tópico, isso significa que o rebalanceamento de partições após uma falha de broker pode completar em segundos em vez de minutos, reduzindo drasticamente a janela de exposição a lag de consumidor.

Mas o número bruto esconde uma nuance importante: a largura de banda é compartilhada entre todas as interfaces de rede da instância, incluindo tráfego de replicação intra-cluster, tráfego de dados de aplicação e tráfego de gerenciamento. Em clusters MSK com alto volume de replicação, vi cenários onde 40% da largura de banda disponível era consumida por replicação interna, deixando 360 Gbps para tráfego de produção. Ainda assim, 360 Gbps é 3,6x o teto do R6in, o que representa uma margem operacional completamente diferente.

O suporte a EFA nos tamanhos maiores adiciona uma dimensão qualitativa, não apenas quantitativa. EFA bypassa o kernel TCP/IP para comunicação inter-nó usando RDMA-like semantics via libfabric, reduzindo latência de comunicação de dezenas de microssegundos para sub-10µs em condições ideais. Para um motor de precificação de opções que executa Monte Carlo distribuído entre 96 vCPUs em múltiplas instâncias, essa redução de latência de comunicação se traduz diretamente em redução do tempo de ciclo de simulação, o que, em um contexto de trading, pode ser a diferença entre uma cotação chegando dentro ou fora da janela de validade.

A configuração prática para EFA em clusters de computação financeira: use placement group do tipo 'cluster', habilite enhanced networking com ENA Express (disponível no R8i), e configure o MTU para 9001 bytes (jumbo frames) em toda a VPC subnet usada pelo cluster. Sem jumbo frames, você deixa throughput na mesa.

Arquitetura de Migração: R6i → R8i em Plataforma Financeira

Fluxo de migração blue/green mostrando as camadas de workload, o roteamento controlado de tráfego e os mecanismos de observabilidade e rollback automático.

🔵 Blue: R6i (Produção Atual / Current Production)
  • MSK Brokers · R6in.32xlarge · 100 Gbps
  • ScyllaDB · R6ib.32xlarge · ~260 Gbps EBS
  • Risk Engine · R6idn.32xlarge · 100 Gbps + NVMe
🟢 Green: R8i (Novo Cluster / New Cluster)
  • MSK Brokers · R8in.48xlarge · 600 Gbps + EFA
  • ScyllaDB · R8idb.48xlarge · 300 Gbps EBS · io2 200k IOPS
  • Risk Engine · R8idn.48xlarge · 600 Gbps + NVMe · + EFA
🔀 Roteamento / Traffic Routing
  • NLB · Weighted · Target Groups
📊 Observabilidade / Observability
  • CloudWatch · Alarms · P99 / EBSIOBalance
  • Rollback Lambda · → 0% Green · se ALARM 3min
🔐 Segurança / Security
  • KMS CMK · kms:ViaService · aws:SourceAccount

Compliance Europeu e a Relevância de Frankfurt e Irlanda

A expansão do R8i para Frankfurt (eu-central-1) e Irlanda (eu-west-1) não é geograficamente trivial para plataformas financeiras europeias. Sob MiFID II e DORA (Digital Operational Resilience Act, vigente desde janeiro de 2025), instituições financeiras que operam em mercados europeus precisam demonstrar que seus sistemas críticos têm resiliência operacional documentada, com RTO e RPO definidos e testados. A escolha de região não é apenas de latência, é de soberania de dados e conformidade regulatória.

Frankfurt é a região preferida para dados de clientes alemães e austríacos sob o BDSG (Bundesdatenschutzgesetz) e para operações que precisam permanecer dentro da jurisdição do Regulamento Geral de Proteção de Dados (RGPD) alemão. Irlanda cobre o restante da União Europeia com menor custo operacional. A disponibilidade do R8i em ambas as regiões significa que posso construir uma arquitetura ativa-ativa entre eu-central-1 e eu-west-1 usando R8in para os brokers MSK de cada região, com replicação cross-region via MirrorMaker 2, e agora com hardware homogêneo nas duas pontas, o que elimina assimetrias de performance que antes complicavam o capacity planning.

Um detalhe operacional crítico para compliance: os volumes EBS io2 Block Express criptografados com CMK regional não podem ser copiados cross-region sem re-criptografia explícita. O processo correto é usar AWS Backup com planos de backup cross-region, garantindo que a chave de destino em eu-west-1 seja uma CMK separada com política de acesso auditada. Isso deve estar documentado em um ADR (Architecture Decision Record) com a justificativa regulatória, auditores do DORA vão perguntar especificamente sobre esse fluxo.

Para Tokyo (ap-northeast-1), o contexto é diferente: a FSA (Financial Services Agency) japonesa exige que dados de transações de clientes japoneses residam em território japonês. A disponibilidade do R8i em Tokyo significa que plataformas que antes usavam R6in em ap-northeast-1 com workarounds de capacidade podem agora operar com o mesmo envelope de hardware disponível nas regiões americanas e europeias, paridade que tem impacto direto na capacidade de oferecer SLAs consistentes globalmente.

Antes e Depois: Números Mensuráveis da Migração

43%
Melhora de performance de compute por vCPU
R8i vs R6in/R6idn, processador Intel Xeon Scalable de 6ª geração customizado pela AWS, conforme anúncio oficial de julho de 2026
6×
Aumento de largura de banda de rede (R6in → R8in)
De 100 Gbps (R6in.32xlarge) para 600 Gbps (R8in.48xlarge), eliminação do gargalo de replicação MSK em picos de volatilidade
<10µs
Latência de comunicação inter-nó com EFA habilitado
Vs. 30-80µs via TCP/IP padrão, crítico para Monte Carlo distribuído em motores de precificação de derivativos
300 Gbps
Largura de banda EBS no R8ib/R8idb
O maior entre instâncias EC2 não-aceleradas, permite io2 Block Express com 200k IOPS sem saturação do envelope de EBS

Riscos Reais que Podem Destruir a Migração

1. EFA não é retrocompatível com instâncias menores: Se você planeja usar Auto Scaling Groups com mix de tamanhos (ex: 48xlarge e 32xlarge), saiba que EFA só está disponível nos tamanhos 48xlarge, 96xlarge e metal. Um ASG heterogêneo vai lançar instâncias sem EFA silenciosamente, quebrando a homogeneidade do cluster de baixa latência. Use Launch Templates separados por tamanho ou restrinja o ASG a tamanhos EFA-compatíveis. 2. NVMe local não sobrevive a stop/start: Os volumes NVMe locais do R8idn/R8idb são efêmeros, um stop/start de instância apaga os dados. Para bancos de dados que usam NVMe local como WAL ou cache de compactação (ScyllaDB, ClickHouse), o processo de inicialização deve incluir re-hidratação automática a partir de EBS ou S3. Documente isso no runbook de DR e teste o RTO real. 3. Custo de io2 Block Express escala não-linearmente: O custo de IOPS provisionados acima de 32.000 em io2 Block Express é $0,065/IOPS-mês. Provisionar 200.000 IOPS custa ~$10.920/mês só em IOPS, antes do custo de armazenamento. Sem right-sizing pós-migração, é fácil provisionar 2x o necessário baseado em métricas de pico que não refletem a média. 4. Placement group de cluster aumenta risco de falha correlacionada: Colocar todos os brokers MSK em um placement group de cluster maximiza throughput de rede, mas aumenta o risco de falha correlacionada (todos os nós no mesmo rack físico). Para produção financeira, use spread placement group entre AZs para MSK e reserve cluster placement group apenas para clusters de computação HPC onde a latência é o fator dominante.

Observabilidade Como Pré-Requisito, Não Como Afterthought

Uma migração de geração de instância em ambiente financeiro sem observabilidade adequada é uma operação cega. O que aprendi ao longo de múltiplas migrações similares é que os problemas raramente aparecem no momento da virada, eles emergem 6 a 18 horas depois, quando padrões de carga que não estavam presentes durante o teste de smoke começam a se manifestar.

A stack de observabilidade que uso para esse tipo de migração combina três camadas. Na camada de infraestrutura, CloudWatch Container Insights (para workloads containerizados) e CloudWatch Agent com configuração de métricas de alta resolução (1 segundo) para as métricas críticas: NetworkIn, NetworkOut, EBSReadBytes, EBSWriteBytes, EBSReadOps, EBSWriteOps e o frequentemente ignorado BurstBalance, que em instâncias com créditos de burst pode mascarar um problema de throughput por horas antes de colapsar.

Na camada de aplicação, uso OpenTelemetry com exportação para CloudWatch Logs via OTLP, capturando spans de latência de operações críticas: tempo de produção de mensagem Kafka, tempo de leitura de ScyllaDB por operação, e tempo de ciclo de simulação do motor de risco. Esses spans são correlacionados com as métricas de infraestrutura via trace_id propagado como atributo de métrica customizada, o que permite, em um único dashboard, ver que um spike de latência de aplicação coincide com um evento de throttling de EBS.

Na camada de negócio, defino SLIs específicos para o contexto financeiro: taxa de ordens processadas por segundo, latência de confirmação de ordem (P50/P95/P99/P99.9), e taxa de rejeição por timeout. Esses SLIs são os critérios finais de sucesso da migração, não métricas de infraestrutura. Uma migração que melhora o throughput de EBS mas aumenta a taxa de timeout de ordens é uma migração que falhou, independentemente dos números de hardware.

Para o R8i especificamente, adicionei um alarme em NetworkBandwidthOutAllowanceExceeded, uma métrica que indica quando a instância está sendo throttled na saída de rede. Com 600 Gbps disponíveis, esse alarme raramente deveria disparar, mas sua ausência de configuração é um ponto cego clássico que só se descobre em incidentes.

Lente Well-Architected na Migração R8i

Segurança

Mantenha CMKs regionais separadas para cada região (Tokyo, Frankfurt, Irlanda) com políticas de chave que usam kms:ViaService e aws:SourceAccount. Nunca compartilhe CMKs cross-region. Revise as políticas de IAM para garantir que roles de instância R8i usem ec2:DescribeInstances com condição de tag, não wildcards. EFA adiciona uma superfície de ataque de rede intra-cluster; garanta que Security Groups restrinjam tráfego EFA a CIDRs do placement group.

Confiabilidade

Use spread placement groups para MSK brokers entre AZs, nunca cluster placement group para dados persistentes. Configure Multi-AZ para todos os volumes EBS críticos via AWS Backup cross-AZ. Teste o mecanismo de rollback automatizado em staging antes de cada janela de produção. Defina e teste RTO para re-hidratação de NVMe local após stop/start.

Eficiência de performance

Habilite EFA apenas nos tamanhos que o suportam (48xlarge+). Configure MTU 9001 (jumbo frames) em toda a subnet do cluster. Use io2 Block Express com IOPS provisionados baseados em percentil P99.9 de IOPS observados, não no pico absoluto. Valide que o driver ENA Express está ativo para maximizar throughput de rede single-flow.

FA
Nota do Arquiteto
Arquiteto de TI Especialista

Na minha experiência com migrações de geração de instância em ambientes financeiros, o maior risco não é técnico, é a tentação de tratar a migração como uma operação simples de resize. O R8i representa um salto qualitativo real: 600 Gbps de rede e 300 Gbps de EBS não são incrementais, são mudanças de regime que alteram onde o gargalo se manifesta. O que faço invariavelmente é começar pelo mapeamento de workload por subfamília antes de qualquer provisionamento, pagar por R8idn quando você precisa de R8in é desperdiçar dinheiro em NVMe que nunca vai ser usado. A lição mais dura que aprendi: rollback automatizado não é opcional em produção financeira; é o que separa uma janela de manutenção de um incidente P1 às 2h da manhã.

Veredicto: Migre, Mas com Disciplina de Engenharia

Migrate with structured blue/green + aut

A expansão do R8i para Tokyo, Frankfurt e Irlanda em julho de 2026 é um gatilho legítimo de modernização para plataformas financeiras que operam nessas regiões com R6i/R6in. Os ganhos são reais e mensuráveis: 43% de melhora de compute por vCPU, 6x de largura de banda de rede, e o maior throughput de EBS entre instâncias não-aceleradas. Para clusters MSK em pico de volatilidade, para motores de risco com Monte Carlo distribuído, e para bancos de dados NoSQL com IOPS intensivos, o R8i resolve gargalos que o R6i não conseguia mais absorver. Mas a migração exige disciplina: mapeie workloads por subfamília antes de provisionar, instrumente observabilidade antes de mover tráfego, construa e teste rollback automatizado, e compre Savings Plans apenas após estabilização. Em ambientes regulados (MiFID II, DORA, FSA japonesa), documente cada decisão em ADRs com justificativa regulatória, o hardware muda, os auditores permanecem. A recomendação objetiva: inicie pelo cluster mais crítico em staging, valide os SLOs de migração definidos previamente, e só então execute a sequência blue/green em produção. Não tente migrar todas as camadas simultaneamente, o isolamento de falha é mais valioso que a velocidade de migração.

Referências

AWS What's New: Amazon EC2 R8in, R8ib, R8idn, R8idb now in Tokyo, Frankfurt, Ireland (Jul 2026)Amazon EC2 Instance Types: R8i familyAWS What's New: Amazon EC2 R8g instances in additional regions (Jun 2026)Elastic Fabric Adapter (EFA) documentationAmazon EBS io2 Block Express volumesAWS Well-Architected Framework: Performance Efficiency PillarAmazon MSK Best PracticesAWS Compute Optimizer: EC2 instance recommendations
#EC2#R8i#migration#financial-grade#MSK#EBS#networking#performance
Compartilhar:LinkedInWhatsAppXBaixar em Markdown
Fonte analisada: Amazon EC2 network/EBS instances now available in additional regions
Próximo passo
Trilha Arquiteto de IA, gratuitaFundamentos, LLMs, RAG, tools, MCP e arquitetura na AWS, em aulas curtas e interativas.Começar a trilhaAgentes de IA em produção na AWSComo eu desenho, oriento e audito agentes que vão ao ar, com os números e as fontes.Ver o IA Builder

Continue lendo

AWS & CloudMigrando Workloads de Alta Rede para EC2 R6in/R6idn em Paris e CanadáA disponibilização das instâncias R6in e R6idn na Europa (Paris) e Canadá (Central) em julho de 2026 fecha uma lacuna de residência de dados crítica para workloads financeiros e de analytics em tempo real. Este artigo narra a jornada de migração de instâncias R5n para R6in/R6idn, detalhando decisões de arquitetura, riscos operacionais e os ganhos mensuráveis de rede e IOPS que justificam o movimento.Ler AWS & CloudR8i: Anatomia de uma Família de Instâncias para Workloads IntensivosA família R8i chega a Tokyo, Frankfurt e Irlanda com 600 Gbps de banda de rede e 300 Gbps de banda EBS, os maiores números entre instâncias EC2 não aceleradas. Antes de migrar cargas críticas, vale dissecar a anatomia dessas quatro variantes, entender os trade-offs reais e saber exatamente quando essa família resolve o problema e quando ela é a escolha errada.Ler AWS & CloudR8i vs R8i-flex: Anatomia de uma Decisão de Instância Memory-OptimizedA chegada das instâncias R8i e R8i-flex à região Europa (Milão) em agosto de 2026 completa uma expansão europeia iniciada em Paris e continuada em Estocolmo e Zurique. Mais do que um anúncio de disponibilidade regional, esse movimento expõe um padrão arquitetural relevante: a bifurcação entre instâncias de alto desempenho contínuo (R8i) e instâncias otimizadas para cargas com utilização variável (R8i-flex). Entender quando e por que escolher cada caminho é o que separa uma decisão de infraestrutura madura de um superdimensionamento caro.Ler
AnteriorR8i: Anatomia de uma Família de Instâncias para Workloads IntensivosPróximoGPT-5.6 no Bedrock: Retro de Adoção em Ambientes Financeiros
Gostou desta análise? Receba a próxima.

Deep dives de arquitetura, AWS, IA e mercado: direto no seu email. Grátis.

Sem spam · cancele quando quiser

Pergunte ao Fernando sobre isto

Uma resposta focada sobre este artigo, do meu assistente de IA, baseada no meu trabalho.

Participe da conversa

Entre para comentar

Confirme seu e-mail para participar, você também recebe a newsletter. Sem senha.

Neste artigo
O Ponto de Partida: Por Que R6i Começou a DoerA Jornada de Migração: Seis Decisões em SequênciaO Perfil de Rede que Muda Tudo: 600 Gbps e o que Isso Significa na PráticaArquiteturaCompliance Europeu e a Relevância de Frankfurt e IrlandaObservabilidade Como Pré-Requisito, Não Como AfterthoughtWell-ArchitectedVeredicto: Migre, Mas com Disciplina de EngenhariaReferências