Migre da AWS para a Azion

Uma migração de plataforma geralmente começa muito antes de o primeiro arquivo de configuração ser alterado. Começa quando uma equipe percebe que seu ambiente atual não oferece mais o mesmo nível de clareza, velocidade ou controle que antes.

Para equipes que usam AWS, esse momento costuma vir depois de anos de complexidade acumulada: distribuições CloudFront com comportamentos de cache em camadas, funções Lambda com dependências de runtime, buckets S3 com políticas de acesso em evolução, tabelas DynamoDB com capacidade provisionada, zonas Route 53 com health checks, regras WAF com grupos de regras gerenciadas e alarmes CloudWatch com métricas customizadas. Cada serviço funciona, mas em conjunto eles criam overhead operacional que desacelera o desenvolvimento.

Para equipes que usam Amazon CloudFront, AWS Lambda, Amazon S3, Amazon DynamoDB, Amazon Route 53, AWS WAF, AWS Shield, Amazon CloudWatch ou outros serviços AWS, a Azion oferece recursos equivalentes por meio de Applications, Functions, Object Storage, KV Store, Edge DNS, Web Application Firewall, DDoS Protection, Real-Time Metrics e Real-Time Events.

O motivo mais forte para migrar não é simplesmente substituir um fornecedor por outro. É consolidar compute, storage, banco de dados, entrega, segurança e observabilidade em uma plataforma unificada projetada para aplicações distribuídas globalmente.

Como Funciona a Migração da AWS para a Azion

Migrações de plataforma tradicionais frequentemente exigem reescrever a lógica da aplicação, reconfigurar a infraestrutura do zero e gerenciar múltiplos serviços desconectados. Essa abordagem cria risco operacional, estende prazos e fragmenta o conhecimento da equipe entre diferentes padrões de configuração.

A abordagem de migração da Azion preserva a lógica da sua aplicação enquanto faz a transição para uma plataforma unificada:

  1. Caminho de migração incremental. Comece com um único projeto, valide cada camada independentemente e expanda com confiança. Não é necessário migrar tudo de uma vez.

  2. Lógica de aplicação preservada. Functions, políticas de cache, configurações de origem e serviços de dados mapeiam diretamente para equivalentes na Azion com mudanças mínimas de código, principalmente atualizações de sintaxe para acesso a ambiente e imports de serviços.

  3. Modelo de plataforma unificado. Em vez de gerenciar compute, storage, bancos de dados, segurança e observabilidade como camadas desconectadas, a Azion reúne esses recursos com APIs consistentes e padrões de configuração.

Mapeamento de Recursos

As tabelas a seguir fornecem um mapeamento abrangente dos produtos AWS para seus equivalentes na Azion. Um traço (-) indica que a Azion atualmente não oferece um equivalente direto.

Produto AWSDescriçãoEquivalente Azion
Amazon CloudFrontCDN da AWS para entregar conteúdo estático, conteúdo dinâmico, APIs, aplicações e vídeo globalmente.Applications
CloudFront DistributionsRecurso principal de entrega do CloudFront para domínios, origens, comportamento de cache, certificados, segurança e configurações de entrega no edge.Applications
CloudFront Alternate Domain NamesConfigura domínios customizados para distribuições CloudFront.Workloads
CloudFront Cache BehaviorsComportamento de entrega baseado em caminho, política de cache, política de requisição à origem, métodos permitidos e associações de edge function.Rules Engine para Applications
CloudFront Cache PoliciesControla cache keys, TTLs, cabeçalhos, cookies, query strings e compressão.Cache
CloudFront Origin Request PoliciesControla quais valores da requisição o CloudFront encaminha para a origem.Rules Engine
CloudFront Response Headers PoliciesAdiciona ou modifica cabeçalhos de resposta, como cabeçalhos de segurança e CORS.Rules Engine para Applications
CloudFront Origin ShieldCamada adicional de cache centralizado para reduzir carga na origem e melhorar cache hit ratio.Tiered Cache
CloudFront InvalidationRemove conteúdo dos caches de edge do CloudFront antes da expiração.Real-Time Purge
CloudFront FunctionsExecução leve de JavaScript no edge para redirects, rewrites, cabeçalhos e normalização de cache key.Functions para Applications
Lambda@EdgeFunções Node.js ou Python acionadas por eventos do CloudFront para customizar a entrega.Functions para Applications
Lambda@Edge for security logicUsa funções acionadas pelo CloudFront para validação de requisições, autenticação ou lógica de bloqueio.Functions para Firewall
CloudFront Device DetectionDetecta tipo de dispositivo e encaminha metadados de dispositivo para a origem.Device Groups
AWS Elemental MediaLiveCodificação de vídeo ao vivo em tempo real.Live Ingest
AWS Elemental MediaPackageEmpacota e origina streams de vídeo ao vivo para HLS, DASH e formatos relacionados.Live Ingest + Applications
CloudFront for live streamingEntrega vídeo ao vivo globalmente usando CloudFront com AWS Media Services.Applications + Live Ingest
AWS LambdaCompute serverless de uso geral para execução de código orientada a eventos.Functions para Applications
Amazon API GatewayCria e gerencia APIs REST, HTTP e WebSocket com integrações de backend.Applications + Functions
API Gateway request validation / throttlingAplica controles, throttling e regras de validação a requisições de API.Rules Engine + Firewall
AWS Amplify HostingCI/CD baseado em Git e hospedagem para aplicações web estáticas e server-side rendered.Applications + Azion CLI
AWS App RunnerFaz deploy de código fonte ou imagens de container para aplicações web gerenciadas.Applications + Orchestrator
Amazon BedrockAcesso a foundation models e desenvolvimento de aplicações de IA generativa.AI Inference
Amazon Bedrock model inferenceInvoca foundation models para texto, imagem, embedding e casos de uso de IA generativa.AI Inference
Amazon Bedrock Fine-TuningCustomiza foundation models com fine-tuning para casos de uso específicos.LoRA Fine-Tune
Amazon Bedrock Custom Model ImportImporta foundation models customizados para o Bedrock.AI Inference + LoRA Fine-Tune
Amazon SageMaker AI Real-Time InferenceFaz deploy de modelos de ML em endpoints gerenciados de inferência em tempo real.AI Inference
Amazon S3Armazenamento de objetos para dados não estruturados, assets estáticos, backups, arquivos e sites.Object Storage
Amazon S3 Static Website HostingHospeda sites estáticos a partir de buckets S3.Object Storage + Applications
S3 Object LambdaTransforma objetos S3 com Lambda antes de retorná-los ao solicitante.Object Storage + Functions
S3 Object Lambda for image transformationRedimensiona, aplica marca d’água, redige ou transforma conteúdo recuperado do S3.Image Processor + Functions
Amazon Aurora DSQLBanco de dados SQL relacional distribuído e serverless para workloads transacionais.SQL Database
Amazon DynamoDBBanco de dados serverless key-value e de documentos.KV Store
DynamoDB Global TablesReplicação multi-Region para dados NoSQL distribuídos globalmente.KV Store
AWS WAFWeb application firewall para proteger aplicações e APIs.WAF / Firewall
AWS Managed Rules for AWS WAFGrupos de regras gerenciadas para vulnerabilidades comuns e tráfego indesejado.WAF Rule Sets
AWS WAF custom rulesCria condições de correspondência e ações customizadas para requisições web.Rules Engine para Firewall
AWS WAF Bot ControlDetecção e mitigação gerenciadas de bots.Bot Manager
AWS WAF Rate-Based RulesLimita taxas de requisições com base em IP, cabeçalhos, URI, método ou outras chaves.Rules Engine + Network Shield
AWS WAF IP SetsListas reutilizáveis de IP/CIDR para regras de allow ou block.Network Lists
AWS Shield StandardProteção DDoS padrão para recursos AWS.DDoS Protection
AWS Shield AdvancedProteção DDoS avançada com visibilidade e opções adicionais de mitigação.DDoS Protection
AWS Network FirewallFirewall de rede VPC gerenciado.Network Shield
Elastic Load BalancingDistribui tráfego entre múltiplos destinos e zonas de disponibilidade.Load Balancer
Application Load BalancerLoad balancing HTTP/HTTPS de camada 7 com roteamento em nível de aplicação.Load Balancer
Network Load BalancerLoad balancing TCP/UDP/TLS de camada 4.Load Balancer
AWS Global AcceleratorIPs Anycast globais e roteamento otimizado na rede global da AWS.Applications + Load Balancer
Amazon Route 53DNS autoritativo, registro de domínio, políticas de roteamento e health checks.Edge DNS
AWS Certificate ManagerProvisiona, importa, gerencia, faz deploy e renova certificados SSL/TLS.Certificate Manager
Amazon CloudWatch MetricsColeta, consulta, visualiza e cria alarmes para métricas de serviço e aplicação.Real-Time Metrics
Amazon CloudWatch LogsColeta, monitora, consulta e analisa logs.Real-Time Events
Amazon Data FirehoseEntrega dados de streaming para destinos como S3, Redshift, OpenSearch e endpoints HTTP.Data Stream
CloudWatch RUMMonitoramento de usuário real para performance de aplicações browser e mobile.Edge Pulse
AWS Management ConsoleInterface web para acessar e gerenciar serviços AWS.Azion Console
AWS APIsInterface programática para operações de serviços AWS.Azion API
AWS CLIInterface de linha de comando para gerenciar serviços AWS.Azion CLI
AWS SDKsSDKs específicos por linguagem para criar integrações com serviços AWS.SDK
AWS CloudFormationServiço de Infrastructure as Code para modelar e provisionar recursos AWS.Terraform Provider
Lambda runtime environmentCamada de runtime usada por funções Lambda.Azion Runtime

Estratégia de Migração

A migração é organizada em torno das quatro categorias de produtos da Azion, permitindo que as equipes planejem e executem cada camada independentemente:

  • Build: faça deploy de aplicações, configure builds e variáveis de ambiente, migre funções Lambda, comportamentos CloudFront, roteamento, cabeçalhos, load balancing, cache, otimização de imagens e workloads de IA.
  • Secure: migre domínios customizados, DNS Route 53, certificados SSL/TLS, regras WAF, proteção DDoS, gerenciamento de bots e rate limiting.
  • Store: migre objetos S3, tabelas DynamoDB e bancos Aurora para Object Storage, KV Store e SQL Database.
  • Observe: migre métricas, logs e alarmes CloudWatch para a stack de observabilidade em tempo real da Azion.

Build

A categoria Build cobre deployment de aplicações, compute, roteamento e configuração. Comece aqui para trazer sua aplicação para a Azion e estabelecer a fundação para o resto da migração.

1. Configuração do Projeto na Azion

O primeiro passo traz sua aplicação para a Azion de uma forma familiar para equipes que fazem deploy de projetos web modernos na AWS. Se você usou AWS CloudFormation, SAM ou CDK, já entende o padrão: definir infraestrutura como código, configurar build, fazer deploy do output e validar a URL gerada.

Diferenças Principais

AspectoAWSAzion
Arquivo de configtemplate.yaml (SAM) / cdk.json (CDK)azion.config.js (JavaScript)
Detecção de frameworkConfiguração manual20+ frameworks com auto-detecção
Cold startsComuns (Lambda regional)Minimizados (nós distribuídos)
ConformidadeSOC 2, ISO 27001, HIPAAPCI DSS 4.0.1 Level 1, SOC 2 Type II

Conecte Seu Repositório

  1. Abra o Azion Console.
  2. Clique em + Create > Import from GitHub.
  3. Autorize o GitHub App da Azion.
  4. Selecione o repositório que deseja migrar.

Configure Seu Build

A Azion detecta automaticamente seu framework e configura as definições de build. Sobrescreva o preset detectado em azion.config.js:

import { defineConfig } from 'azion'
export default defineConfig({
name: 'my-project',
preset: 'nextjs', // Sobrescreva a auto-detecção se necessário
})

Faça Deploy e Verifique

Faça deploy pelo Azion Console ou CLI. Sua URL temporária da Azion segue este padrão:

https://xxxxxxxxxx.map.azionedge.net/

Valide o deployment:

Terminal window
curl https://xxxxxxxxxx.map.azionedge.net/

Documentação de referência

2. Convertendo Configuração de Build

Uma migração pode parecer bem-sucedida quando o build passa, mas falhar depois quando o comportamento de runtime difere. Revise cuidadosamente a configuração de build e deployment em vez de tratá-la como uma substituição mecânica de comandos.

Referência Rápida de CLI

TarefaAWS CLIAzion CLI
Instalarpip install awsclicurl -fsSL https://cli.azion.app/install.sh | bash
Loginaws configureazion login
Dev localsam local start-apiazion dev
Deploysam deploy --guided ou cdk deployazion deploy
Ver logsaws logs tail /aws/lambda/my-functionazion logs

Comparação de Configuração de Build

AspectoAWS SAM/CDKAzion
Infrastructure as CodeTemplates YAML/TypeScriptConfiguração JavaScript
Testes locaisEmulador SAM localServidor dev integrado
DeploymentStacks CloudFormationDeployment direto
RollbackStack rollbackHistórico de versões

Documentação de referência

3. Migrando Variáveis de Ambiente

Variáveis de ambiente contêm API keys, credenciais de banco de dados, secrets de autenticação, endpoints de serviços, feature flags e configuração específica de ambiente. Migrá-las incorretamente causa falhas de runtime mesmo quando o deployment é bem-sucedido.

Diferenças Principais

AspectoAWSAzion
Acessoprocess.env.VARIABLEAzion.env.get('VARIABLE')
Gerenciamento de secretsAWS Secrets Manager / Systems Manager Parameter StoreVariáveis em Functions Instances
Estágios de ambienteNome do estágio no ARN da funçãoContexto de ambiente na configuração

Avalie Suas Variáveis

Antes de mudar o código, identifique todas as variáveis em:

  • AWS Lambda: variáveis de ambiente na configuração da função
  • AWS Secrets Manager: valores de secret e políticas de rotação
  • Systems Manager Parameter Store: parâmetros e caminhos
  • Elastic Beanstalk: propriedades de ambiente
  • Configurações de ambiente CI/CD (CodePipeline, CodeBuild)
  • Configuração de runtime no código fonte

Crie Variáveis na Azion

  1. Acesse o Azion Console.
  2. Navegue para Build > Variables.
  3. Clique em Add Variable.
  4. Insira o nome e valor da variável.
  5. Clique em Save.

Atualize Seu Código

// Antes: AWS Lambda / Node.js
const apiKey = process.env.API_KEY;
const dbHost = process.env.DB_HOST;
// Antes: AWS com Secrets Manager (async)
const { SecretsManager } = require('@aws-sdk/client-secrets-manager');
const client = new SecretsManager();
const secret = await client.getSecretValue({ SecretId: 'my-secret' });
const secretValue = JSON.parse(secret.SecretString);
// Depois: Azion
const apiKey = Azion.env.get('API_KEY');
const dbHost = Azion.env.get('DB_HOST');

Documentação de referência

4. Migrando CloudFront para Applications

Distribuições CloudFront entregam conteúdo a partir de edge locations com cache e configuração de origem. Azion Applications oferecem recursos semelhantes com Rules Engine integrado para manipulação de requisições e respostas.

Diferenças Principais

AspectoAWS CloudFrontAzion Applications
Configuração da distribuiçãoXML/JSON em CloudFormationConfiguração JavaScript ou Console
OrigensS3, ALB, origens customizadasConnectors (HTTP, Object Storage)
ComportamentosCache behaviors com caminhosRules Engine com critérios
Certificados SSLACM (somente us-east-1)Digital Certificates
Lambda@EdgeEdge functions (4 triggers)Functions (fases de requisição/resposta)

Passos de Configuração

  1. Acesse o Azion Console.
  2. Navegue para Build > Applications.
  3. Clique em Add Application.
  4. Configure suas Main Settings:
    • Nomeie sua aplicação
    • Defina o tipo de origem (HTTP, Object Storage)
    • Configure o endereço da origem
  5. Configure Cache Settings para TTL.
  6. Configure Rules Engine para roteamento baseado em caminho.
  7. Adicione Custom Domains quando estiver pronto.

Migração de Configuração de Distribuição

// Configuração de distribuição CloudFront (CloudFormation YAML convertido para Azion JS)
import { defineConfig } from 'azion'
export default defineConfig({
name: 'my-distribution',
applications: [{
name: 'main-app',
origins: [{
name: 's3-origin',
type: 'object_storage',
addresses: [{
address: 'my-bucket.azionedge.net',
weight: 1
}]
}],
cache: {
ttl: 86400,
staleWhileRevalidate: 300
},
rules: {
request: [{
name: 'API Routes',
criteria: [{
variable: 'uri',
operator: 'starts_with',
argument: '/api/'
}],
behavior: {
bypassCache: true,
runFunction: 'api-handler'
}
}]
}
}]
})

Origin Request vs Viewer Request

No CloudFront, funções Lambda@Edge são acionadas em pontos diferentes. A Azion mapeia isso para fases do Rules Engine:

Trigger CloudFrontEquivalente Azion
Viewer RequestRules Engine > Request Phase
Origin RequestRules Engine > Request Phase (após verificação de cache)
Origin ResponseRules Engine > Response Phase
Viewer ResponseRules Engine > Response Phase

Documentação de referência

5. Migrando API Gateway para Applications + Functions

API Gateway oferece gerenciamento de APIs REST e HTTP com authorizers, throttling e gerenciamento de stages. Azion Applications combinadas com Functions entregam recursos semelhantes com execução distribuída.

Diferenças Principais

AspectoAWS API GatewayAzion Applications + Functions
Tipos de APIREST API, HTTP APIFunctions com roteamento
AuthorizersLambda, Cognito, JWTFunctions com lógica customizada
StagesVariáveis de stage e deploymentsConfiguração de ambiente
ThrottlingUsage plans + rate limitingRegras de Rate Limit
Domínios customizadosMapeamentos de domínioDomínios de Application

Passos de Configuração

  1. Acesse o Azion Console.
  2. Navegue para Build > Functions.
  3. Crie Functions para cada endpoint de API.
  4. Navegue para Build > Applications.
  5. Crie uma Application para sua API.
  6. Configure Rules Engine para rotear caminhos para Functions.
  7. Configure regras de rate limiting.
  8. Adicione autenticação via Functions.

Migração de API Gateway Authorizer

// Antes: AWS Lambda Authorizer
exports.handler = async (event) => {
const token = event.authorizationToken;
try {
const decoded = jwt.verify(token, process.env.JWT_SECRET);
return {
principalId: decoded.sub,
policyDocument: {
Version: '2012-10-17',
Statement: [{
Action: 'execute-api:Invoke',
Effect: 'Allow',
Resource: event.methodArn
}]
}
};
} catch (err) {
throw new Error('Unauthorized');
}
};
// Depois: Azion Function para autorização
export default {
async fetch(request) {
const authHeader = request.headers.get('Authorization');
if (!authHeader) {
return new Response('Unauthorized', { status: 401 });
}
const token = authHeader.replace('Bearer ', '');
try {
const secret = Azion.env.get('JWT_SECRET');
const decoded = await verifyJWT(token, secret);
// Armazene informações do usuário em metadados da requisição para funções downstream
request.metadata['user_id'] = decoded.sub;
return request; // Continue para o próximo handler
} catch (err) {
return new Response('Unauthorized', { status: 401 });
}
}
};

Exemplo de Migração de Rotas

// Rotas API Gateway → Azion Rules Engine
// Antes: caminhos de recursos do API Gateway
// GET /users/{id}
// POST /users
// PUT /users/{id}
// DELETE /users/{id}
// Depois: configuração do Azion Rules Engine
import { defineConfig } from 'azion'
export default defineConfig({
applications: [{
name: 'api-app',
rules: {
request: [
{
name: 'GET /users/:id',
criteria: [
{ variable: 'uri', operator: 'matches_regex', argument: '^/users/([0-9]+)$' },
{ variable: 'request_method', operator: 'equals', argument: 'GET' }
],
behavior: { runFunction: 'get-user' }
},
{
name: 'POST /users',
criteria: [
{ variable: 'uri', operator: 'equals', argument: '/users' },
{ variable: 'request_method', operator: 'equals', argument: 'POST' }
],
behavior: { runFunction: 'create-user' }
}
]
}
}]
})

Documentação de referência

6. Migrando Lambda para Functions

Functions são o motor computacional de aplicações distribuídas modernas. Frequentemente contêm a lógica mais crítica do negócio: autenticação, personalização, orquestração de API e integrações com sistemas de terceiros.

Diferenças Principais

AspectoAWS LambdaAzion Functions
Assinatura da funçãoexports.handler = async (event) => {}export default { async fetch(request) {} }
RuntimeNode.js, Python, Java, Go, .NET, RubyJavaScript (V8 isolates)
Memória128 MB - 10.240 MB512 MB (padrão)
Timeout1 s - 15 minConfigurável por execução
Cold startsComuns (regional, VPC-cold)Minimizados (nós distribuídos)
Fontes de eventoSQS, SNS, Kinesis, DynamoDB, API GatewayRequisições HTTP, triggers agendados

Atualize Assinatura da Função

// Antes: AWS Lambda
exports.handler = async (event) => {
const body = JSON.parse(event.body);
const pathParams = event.pathParameters;
const queryParams = event.queryStringParameters;
// Processe a requisição
return {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ message: 'Hello', data: body })
};
};
// Depois: Azion Functions
export default {
async fetch(request) {
const body = await request.json();
const url = new URL(request.url);
const queryParams = Object.fromEntries(url.searchParams);
// Processe a requisição
return new Response(JSON.stringify({ message: 'Hello', data: body }), {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
}
};

Migração de Contexto de Evento

// Antes: contexto de evento AWS Lambda
exports.handler = async (event, context) => {
const requestId = context.awsRequestId;
const functionName = context.functionName;
const remainingTime = context.getRemainingTimeInMillis();
// Metadados de requisição do API Gateway
const sourceIp = event.requestContext.identity.sourceIp;
const userAgent = event.requestContext.identity.userAgent;
const country = event.headers['CloudFront-Viewer-Country'];
return { statusCode: 200, body: 'OK' };
};
// Depois: Azion Functions
export default {
async fetch(request, env, ctx) {
// Metadados da requisição
const requestId = request.headers.get('x-request-id');
const userAgent = request.headers.get('user-agent');
const country = request.metadata['geoip_country_code'];
const city = request.metadata['geoip_city'];
// Metadados geo disponíveis diretamente
const region = request.metadata['geoip_region'];
return new Response('OK', { status: 200 });
}
};

Migração de Variáveis de Ambiente

// Antes: AWS Lambda
const dbUrl = process.env.DATABASE_URL;
const apiKey = process.env.API_KEY;
// Depois: Azion Functions
const dbUrl = Azion.env.get('DATABASE_URL');
const apiKey = Azion.env.get('API_KEY');

Comparação de Cold Start

AWS Lambda cold starts variam significativamente com runtime, alocação de memória e configuração de VPC. Azion Functions minimizam cold starts por meio de distribuição em nós:

CenárioCold Start AWS LambdaCold Start Azion Functions
Node.js (sem VPC)100-300msMínimo
Node.js (com VPC)500ms-2sN/A (sem conceito de VPC)
Java/Spring1-5sN/A
Python100-500msN/A

Documentação de referência

7. Migrando Load Balancing (ALB/NLB para Load Balancer)

Load balancing distribui tráfego entre múltiplas origens para alta disponibilidade e performance. O Azion Load Balancer fornece health checks, políticas de steering e failover de origem na infraestrutura distribuída.

Diferenças Principais

AspectoAWS ALB/NLBAzion Load Balancer
Health checksHTTP, HTTPS, TCPHTTP, HTTPS, TCP
Políticas de steeringRound-robin, Least connections, IP hashRound-robin, Least connections, Geo
FailoverFailover de target groupFailover em nível de origem
Afinidade de sessãoCookie, IP hashCookie, IP hash
TargetsEC2, Lambda, endereços IPConnectors (origens)
ProtocoloCamada 4 (NLB), Camada 7 (ALB)Camada 7 (HTTP/HTTPS)

Passos de Configuração

  1. Acesse o Azion Console.
  2. Vá para Products menu > Connectors.
  3. Crie um Connector para cada servidor de origem.
  4. Configure health checks para cada origem.
  5. Na sua Application, configure origens com definições de load balancing.
  6. Defina pesos de origem para distribuição ponderada.
  7. Habilite afinidade de sessão se necessário.

Configuração do Módulo Load Balancer

// Configurações de load balancer dentro dos módulos de endereço do Connector
{
"weight": 3, // Peso relativo para distribuição ponderada
"method": "round_robin", // Opções: "round_robin", "least_conn", "ip_hash"
"max_retries": 3, // Máximo de tentativas em caso de falha
"connection_timeout": 10, // Timeout de conexão em segundos
"read_write_timeout": 30 // Timeout de leitura/escrita em segundos
}

Migração de Target Group ALB

Config AWS ALBEquivalente Azion
Target GroupConnector
Health Check PathCaminho de health check do Connector
Health Check IntervalIntervalo de health check do Connector
Healthy ThresholdLimite de sucesso do health check
Unhealthy ThresholdLimite de falha do health check

Documentação de referência

8. Migrando Configuração de Cache

A configuração de cache determina como o conteúdo é armazenado e servido a partir de localizações de nós. O Azion Cache fornece controle granular com suporte a Tiered Cache para melhorar hit ratios.

Diferenças Principais

AspectoAWS CloudFront CacheAzion Cache
Níveis de cacheRegional edge caches + Edge locationsTiered Cache + Cache + Browser Cache
Cache keyPolítica de cache + política de requisição à origemCustomizável via Rules Engine
PurgeInvalidations (baseadas em caminho)Purge por URL, Cache Key, Wildcard
Conteúdo staleOrigin shield, stale-while-revalidateStale-while-revalidate
Limites de TTLPadrão 24h, máximo 1 anoConfiguração por regra

CloudFront Cache Policies para Azion Cache Settings

CloudFront Cache PolicyEquivalente Azion
CachingOptimizedDefault Cache Settings com TTL alto
CachingDisabledComportamento Bypass Cache no Rules Engine
Elemental-MediaPackageCache Settings customizadas para streaming
Política customizadaCache Settings + Rules Engine

Passos de Configuração

  1. Acesse o Azion Console.
  2. Edite sua Application.
  3. Navegue para Cache Settings.
  4. Configure TTL de cache padrão.
  5. Habilite Tiered Cache para melhorar hit ratio.
  6. Adicione regras de cache customizadas via Rules Engine.

Customização de Cache Key

No CloudFront, cache keys são definidas por políticas de cache. Na Azion, use Advanced Cache Key em Cache Settings:

Exemplo: Variar cache por query strings

// Em Cache Settings
{
"name": "api-cache",
"cache_key": {
"query_string": {
"include_all": false,
"include": ["version", "lang"]
}
}
}

CloudFront Invalidation para Azion Purge

Terminal window
# Antes: invalidation do AWS CloudFront
aws cloudfront create-invalidation --distribution-id E123456789ABCD --paths "/images/*" "/css/*"
# Depois: purge de cache na Azion
curl -X POST 'https://api.azion.com/v4/workspace/purge/wildcard' --header 'Authorization: Token YOUR_TOKEN' --header 'Content-Type: application/json' --data '{
"items": [
"https://example.com/images/*",
"https://example.com/css/*"
],
"layer": "cache"
}'

Documentação de referência

9. Migrando Otimização de Imagens

A otimização de imagens reduz tamanhos de arquivos mantendo a qualidade visual. O Azion Image Processor transforma, otimiza e entrega imagens a partir de localizações distribuídas com seleção automática de formato.

Diferenças Principais

AspectoAWS CloudFront + Lambda@EdgeAzion Image Processor
StorageOrigem S3Integração com Object Storage
TransformaçõesLambda@Edge customizadoTransformações integradas
Formato de URLImplementação customizadaParâmetro de query ?ims=<OPTIONS>
Suporte de formatoImplementação customizadaWebP, AVIF, JPEG, PNG
URLs assinadasCloudFront signed URLsSecure Token

Comparação de Formato de URL

# AWS CloudFront (requer Lambda@Edge ou origem customizada)
# Geralmente usa estrutura de URL customizada:
https://d12345.cloudfront.net/images/photo.jpg?w=400&q=80
# Azion Image Processor
https://example.com/images/photo.jpg?ims=400x400

Parâmetros de Transformação

O Azion Image Processor usa o parâmetro de query ims para transformações:

SintaxeDescriçãoExemplo
?ims=WxHRedimensiona para largura x altura?ims=400x300
?ims=WxRedimensiona para largura (altura automática)?ims=400x
?ims=xHRedimensiona para altura (largura automática)?ims=x300
?ims=WxH:fillCrop para dimensões exatas?ims=400x300:fill
?ims=WxH:fitAjusta dentro das dimensões?ims=400x300:fit

Passos de Configuração

  1. Acesse o Azion Console.
  2. Edite sua Application.
  3. Navegue para configurações de Image Processor.
  4. Habilite Image Processor.
  5. Configure qualidade padrão e configurações de formato.
  6. Configure Object Storage como fonte de imagens (opcional).

Documentação de referência

10. Migrando Workloads de IA (Bedrock para AI Inference)

Inferência de IA habilita recursos alimentados por IA com baixa latência em aplicações. O Azion AI Inference fornece inferência com suporte a GPU para modelos de texto e visuais na infraestrutura distribuída.

Diferenças Principais

AspectoAWS BedrockAzion AI Inference
Acesso a modelosFoundation models gerenciadosDeployment de modelos customizados
API de inferênciaBedrock Runtime APIREST API + Functions
Tipos de modelosClaude, Llama, Titan, Stable DiffusionModelos customizados, LLMs
Suporte a GPUInfraestrutura gerenciadaInstâncias de GPU dedicadas
PreçoPor token / por imagemPor inferência

Passos de Configuração

  1. Acesse o Azion Console.
  2. Vá para AI Inference (via Marketplace ou Functions).
  3. Faça deploy de um modelo ou use templates prontos.
  4. Configure o endpoint de inferência.
  5. Integre com sua aplicação via Functions.

Exemplo de Migração de Bedrock para Azion

// Antes: AWS Bedrock
import { BedrockRuntime } from '@aws-sdk/client-bedrock-runtime';
const client = new BedrockRuntime({ region: 'us-east-1' });
const response = await client.invokeModel({
modelId: 'anthropic.claude-3-sonnet-20240229-v1:0',
contentType: 'application/json',
accept: 'application/json',
body: JSON.stringify({
anthropic_version: 'bedrock-2023-05-31',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello, world!' }]
})
});
// Depois: Azion AI Inference
export default {
async fetch(request) {
const response = await fetch('https://ai-inference.azion.com/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${Azion.env.get('AI_API_KEY')}`
},
body: JSON.stringify({
model: 'claude-3-sonnet',
messages: [{ role: 'user', content: 'Hello, world!' }],
max_tokens: 1024
})
});
return response;
}
};

Documentação de referência

11. Migrando Orquestração (Step Functions, EventBridge)

AWS Step Functions e EventBridge oferecem orquestração de workflows e roteamento de eventos. A Azion alcança padrões semelhantes por meio de encadeamento de Functions e Data Streaming para arquiteturas orientadas a eventos.

Diferenças Principais

AspectoAWS Step FunctionsEncadeamento de Azion Functions
Definição de workflowASL (Amazon States Language)JavaScript/TypeScript
Gerenciamento de estadoState machine integradoImplementação customizada
Tratamento de erroRetry, catch, fallbackTry/catch em Functions
VisualizaçãoWorkflow StudioBaseada em código
AspectoAWS EventBridgeAzion Data Streaming
Roteamento de eventosRules e targetsData Streaming + Functions
Padrões de eventoPattern matchingLógica customizada em Functions
Targets100+ serviços AWSEndpoints HTTP, Functions

Step Functions para Encadeamento de Functions

// Antes: AWS Step Functions (ASL)
{
"Comment": "Order processing workflow",
"StartAt": "ValidateOrder",
"States": {
"ValidateOrder": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123456789:function:validate-order",
"Next": "ProcessPayment"
},
"ProcessPayment": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123456789:function:process-payment",
"Catch": [{
"ErrorEquals": ["PaymentFailed"],
"Next": "NotifyFailure"
}],
"Next": "FulfillOrder"
},
"FulfillOrder": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123456789:function:fulfill-order",
"End": true
},
"NotifyFailure": {
"Type": "Task",
"Resource": "arn:aws:lambda:us-east-1:123456789:function:notify-failure",
"End": true
}
}
}
// Depois: Azion Functions (padrão orquestrador)
export default {
async fetch(request) {
const order = await request.json();
try {
// Etapa 1: Validar
const validated = await validateOrder(order);
// Etapa 2: Processar pagamento
const payment = await processPayment(validated);
// Etapa 3: Realizar fulfillment do pedido
const fulfillment = await fulfillOrder(payment);
return new Response(JSON.stringify(fulfillment), {
headers: { 'Content-Type': 'application/json' }
});
} catch (error) {
// Tratamento de erro
await notifyFailure({ order, error: error.message });
return new Response(JSON.stringify({ error: error.message }), {
status: 500,
headers: { 'Content-Type': 'application/json' }
});
}
}
};

EventBridge para Data Streaming

// Antes: regra AWS EventBridge
{
"source": ["com.mycompany.orders"],
"detail-type": ["OrderCreated"],
"detail": {
"amount": [{ "numeric": [">", 100] }]
}
}
// Target: função Lambda para processamento
// Depois: Azion Data Streaming + Functions
// Configure Data Streaming para enviar eventos ao endpoint da sua Function
// Então processe na Function:
export default {
async fetch(request) {
const events = await request.json();
for (const event of events) {
if (event.source === 'com.mycompany.orders' &&
event.type === 'OrderCreated' &&
event.data.amount > 100) {
// Processe pedido de alto valor
await processHighValueOrder(event.data);
}
}
return new Response('OK');
}
};

Documentação de referência

Secure

A categoria Secure cobre domínios, DNS, certificados, regras de firewall e proteção contra tráfego malicioso. Planeje essas migrações como cutovers controlados, já que afetam como os usuários acessam sua aplicação e como ela é protegida em produção.

1. Migrando Domínios Customizados

A migração de domínios customizados é uma das partes mais sensíveis de qualquer transição de plataforma. Afeta usuários, SEO, confiança na marca e disponibilidade de produção. Planeje a migração de domínio como um cutover controlado, não uma mudança de DNS de última hora.

Estratégias de Migração

EstratégiaMelhor ParaControle de DNS
CNAMEMigração rápida de subdomínioMantenha Route 53 como provedor de DNS
NameserverControle total de DNS e domínios apexTransfira DNS para a Azion

Crie o Certificado

Crie seu certificado SSL/TLS antes de apontar seu domínio para a Azion. Isso garante que os usuários possam acessar a aplicação de forma segura via HTTPS quando o domínio começar a resolver para a nova infraestrutura.

A Azion fornece certificados Let’s Encrypt gratuitos com renovação automática.

Configure o Domínio

Crie um workload no Azion Console e associe seu domínio customizado. Veja a documentação de Workloads.

Aponte o Domínio para a Azion

Atualize sua hosted zone do Route 53 para apontar o subdomínio para a Azion:

www CNAME xxxxxxxxxx.map.azionedge.net

Isso mantém Route 53 como seu provedor de DNS enquanto roteia o tráfego através da Azion.

Verifique Propagação

Terminal window
dig www.yourdomain.com CNAME +short

Documentação de referência

2. Migrando DNS para Edge DNS

A configuração de DNS é fundamental para a entrega de aplicações. Migrar de Route 53 para Edge DNS requer planejamento cuidadoso para evitar tempo de inatividade durante a troca de nameservers.

Diferenças Principais

AspectoRoute 53Azion Edge DNS
NameserversAtribuídos por hosted zonens1.aziondns.net, ns2.aziondns.com, ns3.aziondns.org
Tipos de registroA, AAAA, CNAME, MX, TXT, SRV, NS, SOA, PTR, CAAA, AAAA, CNAME, MX, TXT, SRV, NS, CAA, PTR
Políticas de roteamentoSimple, Weighted, Latency, Failover, GeolocationRound-robin, Geo
Health checksRoute 53 health checksConnector health checks
DNSSECSuportadoSuportado
APIREST APIREST API v4
AnycastGlobal AnycastGlobal Anycast

Passos de Migração

  1. Acesse o Azion Console.
  2. Vá para Products menu > Edge DNS.
  3. Clique em + Zone para criar uma nova zona DNS.
  4. Insira o nome do seu domínio.
  5. Adicione registros DNS correspondentes à sua configuração Route 53.
  6. Anote os nameservers Azion atribuídos à sua zona.
  7. Atualize os nameservers no seu registrador de domínios (não no Route 53).

Mapeamento de Tipos de Registro

Registro Route 53Azion Edge DNSNotas
AAMapeamento direto de IP
AAAAAAAAEndereço IPv6
CNAMECNAMEAlias para outro domínio
MXMXMail exchange (incluir prioridade)
TXTTXTRegistros de texto (SPF, DKIM)
SRVSRVRegistros de serviço
CAACAACertificate Authority Authorization
NSNSDelegação de nameserver
PTRPTRReverse DNS lookup

Migração de Política de Roteamento

Política Route 53Equivalente AzionImplementação
SimpleRegistro padrãoRegistro único com um ou mais valores
WeightedNão suportado diretamenteUse Functions para lógica customizada
LatencyNão suportado diretamenteApplications lida com roteamento
FailoverNão suportado diretamenteConfigure via Rules Engine
GeolocationRoteamento GeoDisponível em Edge DNS

Configuração de DNSSEC

Para habilitar DNSSEC:

  1. Navegue para sua zona no Edge DNS.
  2. Vá para a aba DNSSEC.
  3. Habilite DNSSEC.
  4. Copie o registro DS para seu registrador de domínios.
Terminal window
# Verifique DNSSEC
dig example.com DNSSEC +dnssec

Verifique Propagação

Terminal window
# Verifique propagação de nameserver
dig example.com NS +short
# Verifique registro específico
dig www.example.com A +short
# Verifique de servidor DNS específico
dig @ns1.aziondns.net example.com A
# Compare registros Route 53 e Azion
dig @ns-1234.awsdns-12.com example.com A
dig @ns1.aziondns.net example.com A

Documentação de referência

3. Migrando SSL/TLS para Certificate Manager

Certificados SSL/TLS garantem comunicação segura entre clientes e sua aplicação. A Azion fornece provisionamento automático de certificados e suporta certificados customizados do AWS Certificate Manager (ACM).

Diferenças Principais

ÁreaAWS Certificate ManagerAzion Certificate Manager
Tipos de certificadoPúblico, privado, importadoLet’s Encrypt, Custom, Azion SAN
ValidaçãoDNS, emailDNS-01, HTTP-01
RenovaçãoAutomáticaAutomática (Let’s Encrypt)
EscopoRegional (us-east-1 para CloudFront)Rede global
mTLSSuportado (Private CA)Suportado (Trusted CA)
CustoGratuito para recursos AWSGratuito (Let’s Encrypt)

Provisionamento Automático de Certificado

A Azion provisiona automaticamente certificados Let’s Encrypt para domínios customizados:

  1. Acesse o Azion Console.
  2. Crie ou edite um Workload.
  3. Adicione seu domínio customizado.
  4. A Azion provisiona automaticamente um certificado Let’s Encrypt.
  5. Verifique a propriedade do domínio (se necessário).
  6. Aguarde ativação do certificado (tipicamente 5-15 minutos).

Upload de Certificado Customizado

Para organizações com certificados existentes do ACM ou CAs externas:

  1. Exporte seu certificado do ACM (se aplicável).
  2. Vá para Products menu > Certificate Manager.
  3. Clique em + Certificate.
  4. Selecione Custom Certificate.
  5. Faça upload do seu certificado (formato PEM).
  6. Faça upload da sua chave privada.
  7. Faça upload da cadeia CA intermediária (se aplicável).
  8. Associe o certificado ao seu workload.

Configuração de mTLS

Para autenticação mutual TLS:

  1. Navegue para Certificate Manager.
  2. Faça upload do seu certificado CA como Trusted CA.
  3. Configure seu workload para requerer certificados de cliente.
  4. Veja o guia de configuração mTLS para passos detalhados.

Documentação de referência

4. Migrando WAF para Web Application Firewall

Web Application Firewall protege aplicações contra tráfego malicioso, injeção SQL, cross-site scripting (XSS) e outros ataques de camada de aplicação. Migrar regras AWS WAF requer mapeamento cuidadoso da lógica das regras e compreensão das diferenças na construção de regras.

Diferenças Principais

AspectoAWS WAFAzion WAF
Linguagem de regrasRegras baseadas em JSONCritérios do Rules Engine
Regras gerenciadasAWS Managed Rules, regras de MarketplaceRulesets gerenciados pela Azion
Regras customizadasWeb ACL com regrasRules Engine para Firewall
Cobertura OWASPCore rule set via regras gerenciadasCobertura OWASP Top 10
EscopoRegional ou CloudFrontRede global
Opções de modoCount, BlockLearning, Blocking

Passos de Migração

  1. Acesse o Azion Console.
  2. Vá para Products menu > Firewall.
  3. Selecione ou crie uma instância de Firewall.
  4. Navegue para a aba WAF.
  5. Habilite os rulesets gerenciados desejados (SQL Injection, XSS etc.).
  6. Configure o nível de sensibilidade por ruleset.
  7. Crie regras customizadas na aba Rules Engine.
  8. Associe o Firewall à sua aplicação.

Exemplo de Migração de Regra

Converta uma regra AWS WAF para Azion Rules Engine:

Regra JSON AWS WAF:

{
"Name": "BlockAdminAccess",
"Priority": 1,
"Statement": {
"AndStatement": {
"Statements": [
{
"ByteMatchStatement": {
"SearchString": "/admin",
"FieldToMatch": { "UriPath": {} },
"PositionalConstraint": "CONTAINS"
}
},
{
"NotStatement": {
"Statement": {
"IPSetReferenceStatement": { "IPSet": "allowed-ips" }
}
}
}
]
}
},
"Action": { "Block": {} }
}

Critérios Azion:

Variable: ${uri}
Operator: matches
Argument: /admin
AND
Variable: ${remote_addr}
Operator: does not match
Argument: 10.0.0.0/8

Mapeamento de AWS Managed Rules para Rulesets Azion

Grupo de Regras Gerenciadas AWSEquivalente Azion
AWSManagedRulesCommonRuleSetGeneral Attack Detection
AWSManagedRulesSQLiRuleSetSQL Injection ruleset
AWSManagedRulesXSSRuleSetXSS ruleset
AWSManagedRulesLinuxRuleSetOS Command Injection
AWSManagedRulesPHPAppRuleSetIncluído em General Detection

Documentação de referência

5. Migrando DDoS Protection

DDoS Protection protege contra ataques volumétricos, ataques de protocolo e ataques de camada de aplicação. A Azion fornece mitigação DDoS automática sem configuração necessária para a maioria dos tipos de ataque.

Diferenças Principais

AspectoAWS ShieldAzion DDoS Protection
Proteção padrãoAutomática, sem custoAutomática, sem custo
Proteção avançadaAWS Shield Advanced (custo adicional)Regras gerenciadas + Rules Engine
Cobertura de camadasL3, L4, L7L3, L4, L7
Equipe de resposta DDoSSomente Shield AdvancedSuporte Enterprise
Proteção de custoShield Advanced inclui proteção de custoProteção padrão

Proteção Automática

O Azion DDoS Protection é ativado automaticamente para todas as aplicações. Nenhuma configuração manual é necessária para proteção padrão contra:

  • Ataques volumétricos (UDP floods, ICMP floods)
  • Ataques de protocolo (SYN floods, fragmentação de pacotes)
  • Ataques de camada de aplicação (HTTP floods, slowloris)

Configuração Avançada

Para aplicações que exigem políticas DDoS específicas:

  1. Acesse o Azion Console.
  2. Vá para Products menu > Firewall.
  3. Selecione sua instância de Firewall.
  4. Navegue para a aba DDoS Protection.
  5. Configure limites.
  6. Habilite/desabilite regras específicas de mitigação.
  7. Configure notificações de alerta.

Network Shield

Para proteção de camada de rede, use o Azion Network Shield:

  • Fornece proteção DDoS L3/L4
  • Trabalha com Edge DNS para filtragem de tráfego
  • Integra-se com Firewall para segurança unificada

Documentação de referência

6. Migrando Bot Management

Bot management protege aplicações contra ameaças automatizadas enquanto permite bots legítimos. O Azion Bot Manager fornece detecção, challenge e recursos de mitigação.

Diferenças Principais

AspectoAWS Bot ControlAzion Bot Manager
DetecçãoMachine learning, heurísticas, fingerprintingMachine learning, análise comportamental, fingerprinting, Reputation Intelligence
ChallengeCAPTCHA, silent challengeInjeção JavaScript (fingerprinting), ALTCHA (via redirect)
AçõesAllow, Count, Block, CAPTCHAAllow, Deny, Drop, Redirect, Custom HTML, Random Delay, Hold Connection
Versão LiteNão disponívelBot Manager Lite (Marketplace)

Bot Manager Lite (Marketplace)

Para proteção básica contra bots, instale o Bot Manager Lite pelo Azion Marketplace:

  1. Acesse o Azion Console.
  2. Vá para Marketplace.
  3. Pesquise por Bot Manager Lite.
  4. Clique em Install.
  5. Configure a sensibilidade de detecção.
  6. Configure ações de resposta (challenge, block).
  7. Associe à sua instância de Firewall.

Regras Customizadas de Bot

Crie regras customizadas para tratar bots específicos:

Criteria: ${user_agent} contains "BadBot"
Behavior: Deny (403)
Criteria: ${user_agent} contains "Googlebot"
Behavior: Allow

Verificação

Terminal window
# Teste detecção de bot
curl -A "BadBot/1.0" https://yourdomain.com/
# Esperado: 403 Forbidden ou página de challenge
curl -A "Mozilla/5.0" https://yourdomain.com/
# Esperado: resposta normal

Documentação de referência

7. Migrando Rate Limiting

Rate limiting protege aplicações contra abuso limitando taxas de requisições por cliente. A Azion fornece rate limiting por meio de regras de Firewall e Functions.

Diferenças Principais

AspectoAWS WAF Rate LimitingAzion Rate Limiting
ConfiguraçãoRegras rate-based em Web ACLRegras de Firewall + Functions
GranularidadeCaminho, método, IP, cabeçalhoCaminho, método, IP, customizado
AçõesBlock, CountBlock, Log
Janela1 minuto a 1 horaCustomizável
EscopoRegional ou CloudFrontRede global

Rate Limiting Baseado em Firewall

Configure rate limiting no Firewall Rules Engine:

  1. Acesse o Azion Console.
  2. Vá para Firewall > Rules Engine.
  3. Crie uma nova regra.
  4. Defina critérios (caminho, método etc.).
  5. Adicione o comportamento Rate Limit.
  6. Configure requisições por segundo/minuto.
  7. Defina a ação (Block, Log).

Documentação de referência

8. Migrando Serviços de Segurança

A AWS fornece múltiplos serviços de segurança para detecção de ameaças e gerenciamento de vulnerabilidades. A Azion oferece proteção comparável por meio de Firewall e Network Lists.

Diferenças Principais

AspectoServiços de Segurança AWSEquivalente Azion
Detecção de ameaçasGuardDutyFirewall + Network Lists
Varredura de vulnerabilidadesInspectorVarredura externa + Firewall
Security HubFindings centralizadosReal-Time Events + logs de Firewall
Threat intelligenceFeeds de ameaça do GuardDutyNetwork Lists (Tor, IPs maliciosos conhecidos)

Network Lists para Threat Intelligence

A Azion fornece Network Lists que incluem dados de threat intelligence:

  1. Acesse o Azion Console.
  2. Vá para Products menu > Network Lists.
  3. Veja listas mantidas pela Azion disponíveis:
    • Tor Nodes: nós de saída Tor conhecidos
    • Malicious IPs: endereços IP maliciosos conhecidos
    • Geo-blocking: listas baseadas em país
  4. Crie listas customizadas para suas necessidades específicas.
  5. Referencie listas em regras de Firewall.

Considerações de Migração

Ao migrar de serviços de segurança AWS:

  1. Findings do GuardDuty: exporte findings e crie regras Firewall correspondentes para ameaças baseadas em IP.
  2. Vulnerabilidades do Inspector: corrija vulnerabilidades da aplicação antes da migração; o Azion WAF fornece proteção de runtime.
  3. Logs CloudTrail: configure Real-Time Events para visibilidade comparável.
  4. Security Hub: use Azion Real-Time Events e integração externa com SIEM.

Documentação de referência

Store

A categoria Store cobre serviços de dados. Migre objetos, dados key-value e bancos relacionais com atenção a consistência, padrões de acesso e compatibilidade da aplicação.

1. Migrando S3 para Object Storage

Object storage alimenta arquivos importantes para usuários e operações de negócio: imagens, documentos, assets estáticos, arquivos de mídia, uploads e conteúdo gerado. O Azion Object Storage fornece armazenamento compatível com S3 com custo zero de transferência de dados para fora.

Diferenças Principais

AspectoAmazon S3Azion Object Storage
Endpointhttps://s3.amazonaws.com/buckethttps://s3.us-east-005.azionstorage.net
Endpoint S3s3.amazonaws.coms3.us-east-005.azionstorage.net
RegiãoMúltiplas regiõesus-east-005
Transferência para foraCobrada por GBCusto zero
Classe de storageStandard, Intelligent-Tiering, GlacierStandard
Limites de bucket100 por conta (padrão)100 por conta (padrão)

Atualize a Configuração

Atualize a configuração do seu cliente S3 para usar Azion Object Storage:

import { S3Client } from '@aws-sdk/client-s3';
// Antes: AWS S3
const s3Client = new S3Client({
region: 'us-east-1',
credentials: {
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY
}
});
// Depois: Azion Object Storage
const s3Client = new S3Client({
region: 'us-east-005',
endpoint: 'https://s3.us-east-005.azionstorage.net',
credentials: {
accessKeyId: Azion.env.get('AZION_ACCESS_KEY'),
secretAccessKey: Azion.env.get('AZION_SECRET_KEY')
}
});

Crie Credenciais S3

  1. Acesse o Azion Console.
  2. Vá para Object Storage.
  3. Navegue para a aba S3 Credentials.
  4. Clique em + Credential.
  5. Selecione o escopo de bucket ou conta.
  6. Configure capacidades (read, write, delete, list).
  7. Salve a access key e a secret key com segurança.

Migre Dados com s3cmd

s3cmd é uma ferramenta de linha de comando para gerenciar serviços de storage compatíveis com S3. É uma opção eficaz para migrar dados do Amazon S3 para Azion Object Storage.

  1. Instale s3cmd e execute s3cmd --configure para configurar suas credenciais Azion:
  • Access Key / Secret Key: insira as chaves geradas para Azion Object Storage.
  • Default Region: us-east-005 (s3cmd também aceita us-east para configuração interativa).
  • S3 Endpoint: s3.us-east-005.azionstorage.net.
  • DNS template: %(bucket).s3.us-east-005.azionstorage.net.
  • Use HTTPS protocol: true.
  1. Use os comandos a seguir para migrar seus dados:
ComandoDescrição
s3cmd lsLista todos os buckets.
s3cmd put file.png s3://my-bucket/Faz upload de um objeto.
s3cmd get s3://my-bucket/file.pngFaz download de um objeto.
s3cmd sync s3://aws-bucket/ s3://azion-bucket/Sincroniza entre buckets.

Migre Dados com AWS CLI

Configure AWS CLI com credenciais Azion:

Terminal window
# Configure perfil AWS CLI para Azion
aws configure --profile azion
# Access Key: [your Azion access key]
# Secret Key: [your Azion secret key]
# Region: us-east-005
# Liste buckets
aws s3 ls --profile azion --endpoint-url https://s3.us-east-005.azionstorage.net
# Sincronize de AWS S3 para Azion
aws s3 sync s3://source-bucket/ s3://dest-bucket/ --profile azion --endpoint-url https://s3.us-east-005.azionstorage.net

Migre Dados com rclone

rclone suporta sincronização entre diferentes provedores de storage:

Terminal window
# Configure rclone para AWS S3 (origem)
rclone config
# Name: aws-s3
# Storage: s3
# Provider: AWS
# env_auth: true
# Configure rclone para Azion (destino)
rclone config
# Name: azion
# Storage: s3
# Provider: Other
# endpoint: https://s3.us-east-005.azionstorage.net
# acl: private
# Sincronize de AWS para Azion
rclone sync aws-s3:source-bucket azion:dest-bucket --progress

Use Bucket como Origem

Configure Object Storage como origem para sua Application:

  1. Acesse o Azion Console.
  2. Vá para Connectors.
  3. Crie um novo Connector com tipo Object Storage.
  4. Selecione seu bucket.
  5. Configure o prefixo (opcional).
  6. Associe o Connector à sua Application.

Documentação de referência

2. Migrando DynamoDB para KV Store / SQL Database

DynamoDB é um banco de dados serverless key-value e de documentos. O destino de migração depende do seu caso de uso: operações key-value mapeiam para KV Store, enquanto consultas complexas mapeiam para SQL Database.

Diferenças Principais

AspectoAmazon DynamoDBAzion KV StoreAzion SQL Database
Modelo de dadosKey-value, documentoKey-valueRelacional (SQLite)
Capacidade de consultaKey lookups, queries, scansKey lookups, operações hashSQL completo
Replicação globalGlobal Tables (multi-Region)Global por padrãoArquitetura Main/Replicas
ConsistênciaEventual, forteEventualForte (ACID)
IndexaçãoGSI, LSINão suportadoIndexação SQL completa
Modo de capacidadeOn-demand, provisionadoServerlessServerless

Guia de Decisão de Migração

Recurso DynamoDBServiço Azion Recomendado
Consultas por chave primáriaKV Store
Operações key-value simplesKV Store
Storage de sessãoKV Store
Feature flags, configuraçãoKV Store
Consultas complexas com filtrosSQL Database
Consultas por índice secundárioSQL Database
Agregações, joinsSQL Database
Modelo de dados relacionalSQL Database

Migre para KV Store

Para workloads key-value, use KV Store com API similar a Redis:

import { createClient } from 'azion/kv';
// Crie cliente KV
const client = await createClient({
namespace: 'my-namespace'
})
.on('error', (err) => console.error('KV Error:', err))
.connect();
// Antes: DynamoDB GetItem
// const result = await dynamodb.getItem({
// TableName: 'Users',
// Key: { userId: { S: '123' } }
// }).promise();
// Depois: KV Store get
const userData = await client.get('user:123');
// Antes: DynamoDB PutItem
// await dynamodb.putItem({
// TableName: 'Users',
// Item: { userId: { S: '123' }, name: { S: 'John' } }
// }).promise();
// Depois: KV Store set
await client.set('user:123', JSON.stringify({ name: 'John' }), {
expiration: { type: 'EX', value: 3600 } // TTL de 1 hora
});

Crie um KV Store

  1. Acesse o Azion Console.
  2. Vá para KV Store.
  3. Clique em + Store.
  4. Insira um nome para seu store.
  5. Configure as definições.
  6. Clique em Save.

Migre para SQL Database

Para workloads de consulta complexa, migre para SQL Database:

import { Database } from 'azion:sql';
// Abra conexão com o banco de dados
const db = await Database.open('my-database');
// Antes: consulta DynamoDB com filtro
// const result = await dynamodb.query({
// TableName: 'Orders',
// IndexName: 'CustomerIdIndex',
// KeyConditionExpression: 'customerId = :cid',
// FilterExpression: 'orderDate > :date'
// }).promise();
// Depois: consulta SQL Database
const orders = await db.query(
'SELECT * FROM orders WHERE customer_id = ? AND order_date > ?',
['customer-123', '2024-01-01']
);
// Itere resultados
let row = await orders.next();
while (row) {
console.log(row.getString(0)); // acessa coluna por índice
row = await orders.next();
}

Crie um SQL Database

  1. Acesse o Azion Console.
  2. Vá para SQL Database.
  3. Clique em + Database.
  4. Insira um nome para seu banco de dados.
  5. Crie tabelas usando SQL Shell ou API.
  6. Importe seus dados.

Exporte Dados do DynamoDB

Exporte dados do DynamoDB e transforme para importação:

Terminal window
# Exporte tabela DynamoDB para S3
aws dynamodb export-table-to-point-in-time --table-name Users --s3-bucket my-export-bucket --export-format DYNAMODB_JSON
# Converta e importe para Azion
# Para KV Store: transforme em pares key-value
# Para SQL Database: transforme em instruções SQL INSERT

Migração de Global Tables

DynamoDB Global Tables fornecem replicação multi-Region. KV Store é global por padrão:

DynamoDB Global TablesAzion KV Store
Replicação multi-RegionGlobal por padrão
Resolução de conflito: last writer winsSincronização automática
Consistência eventualAcesso global de baixa latência
Custo adicional por escrita replicadaSem custo adicional de replicação

Documentação de referência

3. Migrando RDS/Aurora para SQL Database

A migração de banco relacional move seus dados transacionais e workloads SQL para Azion SQL Database. O Azion SQL Database é compatível com SQLite e fornece conformidade ACID com arquitetura Main/Replicas distribuída.

Diferenças Principais

AspectoAmazon RDS/AuroraAzion SQL Database
EngineMySQL, PostgreSQL, MariaDB, Oracle, SQL ServerSQLite
CompatibilidadeEspecífica por engineAPI compatível com PostgreSQL
ArquiteturaPrimary/ReplicasMain/Replicas (distribuída)
ConexãoString de conexão, connection poolingRuntime API (sem necessidade de connection pooling)
TransaçõesACIDACID
ScalingScaling vertical, read replicasArquitetura distribuída
RegiãoSingle ou multi-RegionRede global

Migração de PostgreSQL para SQL Database

Para workloads PostgreSQL, o Azion SQL Database fornece uma interface SQL familiar:

import { Database } from 'azion:sql';
// Abra conexão com o banco de dados
const db = await Database.open('my-database');
// Antes: consulta PostgreSQL
// const result = await pgClient.query(
// 'SELECT id, name, email FROM users WHERE status = $1',
// ['active']
// );
// Depois: consulta SQL Database
const result = await db.query(
'SELECT id, name, email FROM users WHERE status = ?',
['active']
);
// Processe resultados
let row = await result.next();
while (row) {
const id = row.getString(0);
const name = row.getString(1);
const email = row.getString(2);
console.log(`User: ${name} <${email}>`);
row = await result.next();
}

Crie um SQL Database

  1. Acesse o Azion Console.
  2. Vá para SQL Database.
  3. Clique em + Database.
  4. Insira um nome para seu banco de dados.
  5. Clique em Save.
  6. Use SQL Shell para criar tabelas e importar dados.

Exporte e Importe Dados

Exporte dados de RDS/Aurora e importe para SQL Database:

Terminal window
# Exporte de RDS PostgreSQL
pg_dump -h my-db.xxxx.region.rds.amazonaws.com -U admin -d mydb --data-only --inserts > export.sql
# Para Aurora, você também pode usar Snapshot Export para S3
aws rds start-export-task --export-task-identifier my-export --source-arn arn:aws:rds:region:account:cluster:my-aurora-cluster --s3-bucket-name my-export-bucket --export-only data
# Importe para Azion SQL Database via SQL Shell
# Conecte ao SQL Shell e execute o arquivo export.sql
# Ou use a API de importação

Mapeamento de Tipos de Dados

Tipo PostgreSQLEquivalente SQLite
INTEGER, BIGINT, SMALLINTINTEGER
SERIAL, BIGSERIALINTEGER (auto-increment)
VARCHAR(n), CHAR(n), TEXTTEXT
BOOLEANINTEGER (0 ou 1)
REAL, DOUBLE PRECISIONREAL
DECIMAL, NUMERICREAL
DATE, TIME, TIMESTAMPTEXT (formato ISO 8601)
JSON, JSONBTEXT (use funções JSON)
UUIDTEXT
BYTEABLOB

Documentação de referência

4. Migrando ElastiCache para Cache / KV Store

ElastiCache fornece cache em memória com Redis ou Memcached. A Azion fornece cache por meio de Cache e storage key-value por meio de KV Store.

Diferenças Principais

AspectoAmazon ElastiCacheAzion CacheAzion KV Store
TipoCache em memóriaCacheKey-value distribuído
EnginesRedis, MemcachedCache HTTPAPI similar a Redis
PersistênciaOpcional (Redis AOF/RDB)TTL baseado em tempoPersistente
Estruturas de dadosStrings, hashes, lists, sets, sorted setsRespostas HTTPStrings, hashes
ReplicaçãoCluster mode, replication groupsRede globalGlobal por padrão
AcessoConexão TCPRequisição/resposta HTTPRuntime API

Guia de Decisão de Migração

Caso de Uso ElastiCacheServiço Azion Recomendado
Cache de resposta HTTPCache
Storage de sessãoKV Store
Contadores de rate limitingKV Store
Feature flagsKV Store
Cache de consulta de bancoCache + Functions
Mensageria Pub/SubFunctions + KV Store
Leaderboards, sorted setsSQL Database
Estruturas de dados complexasSQL Database

Migre Cache Redis para KV Store

Para operações key-value similares a Redis, use KV Store:

import { createClient } from 'azion/kv';
// Crie cliente KV com API similar a Redis
const client = await createClient()
.on('error', (err) => console.error('KV Error:', err))
.connect();
// Antes: Redis SET com expiração
// await redis.set('session:abc123', JSON.stringify(sessionData), 'EX', 3600);
// Depois: KV Store set com expiração
await client.set('session:abc123', JSON.stringify(sessionData), {
expiration: { type: 'EX', value: 3600 }
});
// Antes: Redis GET
// const data = await redis.get('session:abc123');
// Depois: KV Store get
const data = await client.get('session:abc123');
// Antes: Redis DEL
// await redis.del('session:abc123');
// Depois: KV Store delete
await client.delete('session:abc123');

Documentação de referência

Observe

A categoria Observe cobre analytics, métricas, logs e tracing distribuído. Migrar observabilidade garante que você mantenha visibilidade de produção, capacidade de troubleshooting e relatórios de conformidade após o cutover.

1. Migrando CloudWatch Metrics para Real-Time Metrics

CloudWatch Metrics fornece monitoramento para recursos AWS e aplicações. Azion Real-Time Metrics entrega recursos comparáveis por meio de uma GraphQL API e dashboards integrados com agregação de dados quase em tempo real.

Diferenças Principais

AspectoAmazon CloudWatch MetricsAzion Real-Time Metrics
Atualidade dos dadosQuase em tempo real (1-5 minutos)Quase em tempo real (até 10 minutos)
Retenção15 meses (padrão)2 anos
Método de consultaGetMetricStatistics API, CloudWatch InsightsGraphQL API, dashboards do Console
MétricasMétricas customizadas, baseadas em namespaceRequisições, bandwidth, latência, cache, WAF, DNS
Granularidade1 segundo a 1 diaIntervalos adaptativos (minuto/hora/dia)
DashboardsCloudWatch DashboardsReal-Time Metrics + plugin Grafana
AlarmesCloudWatch AlarmsMonitoramento externo via Data Stream

Métricas Disponíveis

Azion Real-Time Metrics fornece monitoramento abrangente entre categorias de produtos:

Métricas Build:

  • Applications: total de requisições, dados transferidos, status codes, economia de bandwidth, tempo médio de requisição
  • Functions: total de invocações, tempo de execução
  • Image Processor: total de requisições, requisições por segundo
  • Tiered Cache: caching offload, L2 offload

Métricas Secure:

  • WAF: ameaças vs requisições, SQL injection, XSS, RFI, ameaças por país
  • Edge DNS: total de consultas
  • Bot Manager: bot hits, bad bot hits, good bot hits, classificação de tráfego

Métricas Observe:

  • Data Stream: total de dados transmitidos, total de requisições

Passos de Configuração

  1. Acesse o Azion Console.
  2. Vá para Products menu > Real-Time Metrics.
  3. Selecione uma aba de categoria (Build, Secure, Observe).
  4. Selecione uma aba de produto para ver métricas específicas.
  5. Configure Time range (Last Hour, 24 Hours, 7 Days, 30 Days, 6 Months).
  6. Use Filters para refinar a análise por host, status code ou outras dimensões.
  7. Clique no menu de contexto de qualquer gráfico para exportar CSV ou copiar a consulta GraphQL.

Exemplos de Consulta GraphQL

Consultar requisições por status code:

query RequestsByStatus {
http(
filter: {
tsRange: { begin: "2024-01-01T00:00:00", end: "2024-01-01T23:59:59" }
}
aggregate: { sum: requests }
groupBy: [status]
orderBy: [sum_DESC]
first: 20
) {
status
sum
}
}

Consultar ameaças WAF por país:

query WafThreatsByCountry {
waf(
filter: {
tsRange: { begin: "2024-01-01T00:00:00", end: "2024-01-02T00:00:00" }
}
aggregate: { sum: threats }
groupBy: [country]
orderBy: [sum_DESC]
first: 10
) {
country
sum
}
}

Consultar dados transferidos para host específico:

query DataTransferredByHost {
http(
filter: {
tsRange: { begin: "2024-01-01T00:00:00", end: "2024-01-07T00:00:00" }
host: { eq: "www.example.com" }
}
aggregate: { sum: dataTransferred }
groupBy: [ts]
first: 500
) {
ts
sum
}
}

Migração de CloudWatch Alarm

CloudWatch Alarms notificam sobre limites de métricas. A Azion não fornece alertas integrados, mas você pode alcançar funcionalidade semelhante:

CloudWatch AlarmEquivalente Azion
Alarme de limite de métricaConfigure alertas em monitoramento externo (Datadog, Splunk) via Data Stream
Alarmes compostosFunctions com lógica customizada + Data Stream
Detecção de anomaliaPlataformas externas de SIEM/analytics

Integração com Grafana

Use o plugin Grafana da Azion para dashboards customizados:

Terminal window
# Instale o plugin Grafana da Azion
grafana-cli plugins install aziontech-azion-plugin

Consulte a documentação do plugin Grafana para configuração de dashboards.

Documentação de referência

2. Migrando CloudWatch Logs para Real-Time Events

CloudWatch Logs coleta e armazena dados de log de recursos AWS. Azion Real-Time Events fornece acesso imediato a logs pelo Console ou GraphQL API para troubleshooting e investigação em tempo real.

Diferenças Principais

AspectoAmazon CloudWatch LogsAzion Real-Time Events
Método de acessoGetLogEvents API, CloudWatch Logs InsightsConsulta em tempo real via Console ou GraphQL API
LatênciaSegundos a minutosSegundos
Retenção1 dia a 10 anos (configurável)7 dias (168 horas), 2 anos para Activity History
Linguagem de consultaCloudWatch Logs Insights (similar a SQL)Consultas GraphQL
Log groupsLog groups com log streamsFontes de dados por tipo de produto
Metric filtersCria métricas a partir de logsUse Data Stream para processamento customizado

Mapeamento de Fontes de Dados

CloudWatch Log GroupFonte de Dados Azion Real-Time Events
/aws/cloudfront/…HTTP Requests
/aws/lambda/…Functions
/aws/waf/…HTTP Requests (campos WAF)
/aws/route53/…Edge DNS
CloudTrailActivity History

Passos de Configuração

  1. Acesse o Azion Console.
  2. Vá para Products menu > Real-Time Events.
  3. Selecione a aba Data Source (HTTP Requests, Functions, Edge DNS etc.).
  4. Configure Time filter (Last 15 minutes até Last 7 days, ou Custom time range).
  5. Adicione filtros para restringir resultados (host, status, remote address etc.).
  6. Clique em Search para consultar logs.
  7. Clique em qualquer linha para ver informações detalhadas de log em More details.

Migração de CloudWatch Logs Insights para GraphQL

Converta consultas CloudWatch Logs Insights para GraphQL de Real-Time Events:

Consulta CloudWatch Logs Insights:

fields @timestamp, @message
| filter @logGroup = "/aws/cloudfront/distribution"
| filter status >= 500
| sort @timestamp desc
| limit 100

Equivalente Azion GraphQL:

query ErrorRequests {
http(
filter: {
tsRange: { begin: "2024-01-01T00:00:00", end: "2024-01-01T23:59:59" }
status: { gte: "500" }
}
orderBy: [ts_DESC]
first: 100
) {
ts
status
requestUri
host
remoteAddress
upstreamStatus
upstreamResponseTime
}
}

Variáveis Disponíveis por Fonte de Dados

HTTP Requests:

  • Metadados da requisição: ts, remoteAddress, remotePort, host, requestUri, requestMethod, status
  • Performance: requestTime, upstreamResponseTime, upstreamHeaderTime
  • Bandwidth: bytesSent, requestLength, upstreamBytesReceived, upstreamBytesSent
  • Cache: upstreamCacheStatus
  • Segurança: wafBlock, wafMatch, wafScore, wafLearning
  • Geo: geoipCountryName, geoipRegionName, geoipAsn
  • TLS: sslCipher, sslProtocol

Functions:

  • functionId, functionsList, functionsTime, functionLanguage

Edge DNS:

  • level, qType, resolutionType, statusCode, zoneId

Métricas Baseadas em Logs

Para criar métricas a partir de logs (equivalente a CloudWatch metric filters), use Data Stream:

  1. Acesse o Azion Console.
  2. Vá para Products menu > Data Stream.
  3. Clique em + Stream.
  4. Selecione Applications como fonte de dados.
  5. Use Custom Template para selecionar variáveis específicas.
  6. Escolha um endpoint (Datadog, Splunk, Elasticsearch etc.).
  7. Configure o destino para processamento de logs.
  8. Ative o stream.

Documentação de referência

3. Migrando X-Ray para Data Stream

AWS X-Ray fornece tracing distribuído e tracing de requisições entre serviços. Azion Data Stream permite transmitir dados de observabilidade para destinos externos para análise de tracing distribuído.

Diferenças Principais

AspectoAWS X-RayAzion Data Stream
Coleta de tracesAutomática com X-Ray SDKTransmite logs para sistemas externos de tracing
Mapa de serviçosVisualização integrada de service mapFerramentas externas (Datadog, Jaeger, Splunk)
Análise de traceConsole X-RayPlataformas externas de tracing
AnnotationsPares key-value customizadosTemplates de log customizados
SamplingRegras de sampling configuráveisPercentual de sampling configurável
DestinosConsole X-Ray, CloudWatch10+ destinos externos

Migração de Fluxo de Dados de Tracing

Conceito AWS X-RayEquivalente Azion
SegmentsEntradas de log de requisição/resposta
SubsegmentsLogs de execução de Functions
Service graphIntegrado em ferramentas externas de tracing (Datadog, Jaeger)
Propagação de Trace IDCabeçalhos customizados via Rules Engine ou Functions
AnnotationsVariáveis de log no template de Data Stream

Passos de Configuração

  1. Acesse o Azion Console.
  2. Vá para Products menu > Data Stream.
  3. Clique em + Stream.
  4. Selecione Applications como fonte de dados para tracing de requisições.
  5. Selecione Functions como fonte de dados adicional para traces de execução de funções.
  6. Crie um Custom Template com variáveis relacionadas a trace:
    • $request_id (identificador único de trace)
    • $ts (timestamp)
    • $upstream_addr (endereço da origem)
    • $upstream_response_time (tempo de resposta)
    • $request_uri, $status, $host
  7. Escolha um endpoint compatível com tracing (Datadog, Splunk, Elasticsearch, Kafka).
  8. Configure credenciais do destino.
  9. Ative o stream.

Propagação de Trace ID

Para habilitar tracing distribuído entre serviços, propague o contexto de trace via cabeçalhos HTTP:

Usando Rules Engine:

Criteria: All requests
Behavior: Add Request Header
Header Name: X-Trace-Id
Header Value: ${request_id}

Usando Functions:

export default {
async fetch(request) {
// Extraia ou gere trace ID
const traceId = request.headers.get('x-trace-id') ||
crypto.randomUUID();
// Adicione trace ID à requisição upstream
const upstreamRequest = new Request(request, {
headers: {
...Object.fromEntries(request.headers),
'X-Trace-Id': traceId
}
});
return fetch(upstreamRequest);
}
};

Endpoints Suportados para Tracing

Data Stream suporta múltiplos endpoints adequados para tracing distribuído:

EndpointCaso de Uso
DatadogAPM completo e tracing distribuído
SplunkLog analytics e tracing
ElasticsearchBusca e correlação de trace
Apache KafkaStream para Jaeger, Zipkin ou tracing customizado
Google BigQueryData warehouse para análise de trace
AWS Kinesis Data FirehoseIntegração com AWS X-Ray ou outros serviços AWS
Standard HTTP/HTTPS POSTSistemas customizados de tracing

Migração de Data Firehose

AWS Kinesis Data Firehose entrega dados de streaming para destinos. Azion Data Stream fornece recursos semelhantes:

AWS Kinesis Data FirehoseAzion Data Stream
Destino S3Endpoint S3 (qualquer storage compatível com S3)
Destino RedshiftBigQuery ou endpoint HTTP customizado
Destino ElasticsearchEndpoint Elasticsearch
Endpoint HTTPStandard HTTP/HTTPS POST
Transformação de dados (Lambda)Functions para pré-processamento

Configure Data Stream para S3:

Terminal window
curl -X POST 'https://api.azion.com/v4/workspace/stream/streams' --header 'Authorization: Token YOUR_TOKEN' --header 'Content-Type: application/json' --data '{
"name": "S3 Archive Stream",
"source": {
"type": "applications"
},
"template_id": 12345,
"endpoint": {
"type": "s3",
"name": "my-s3-endpoint",
"host_url": "https://s3.amazonaws.com",
"bucket_name": "my-logs-bucket",
"region": "us-east-1",
"access_key": "YOUR_ACCESS_KEY",
"secret_key": "YOUR_SECRET_KEY",
"object_key_prefix": "azion-logs"
},
"active": true
}'

CloudWatch RUM para Edge Pulse

CloudWatch RUM fornece monitoramento de usuário real. Azion Edge Pulse entrega recursos comparáveis:

AspectoCloudWatch RUMAzion Edge Pulse
Coleta de dadosJavaScript SDKJavaScript SDK
MétricasPage load, Core Web Vitals, erros JavaScriptMétricas de usuário real, dados de performance
Session replayDisponívelDisponível via integração
Eventos customizadosAPI de eventos customizadosEventos customizados via SDK

Configure Edge Pulse para monitoramento de usuário real:

  1. Acesse o Azion Console.
  2. Vá para Products menu > Edge Pulse.
  3. Crie uma nova instância Pulse.
  4. Configure o snippet JavaScript para sua aplicação.
  5. Adicione o snippet ao HTML da sua aplicação.
  6. Configure definições de coleta de dados.
  7. Veja métricas em Real-Time Metrics sob Edge Pulse.

Documentação de referência

Solução de Problemas

ProblemaCausa ProvávelSolução
DNS não resolveAtraso de propagação de nameserverAguarde até 48 horas após atualizar nameservers; verifique com dig yourdomain.com NS
Validação de certificado falhaPropriedade do domínio não verificadaConfirme se o registro DNS TXT ou challenge HTTP está acessível; verifique o status no Certificate Manager
Function retorna process.env not definedSintaxe de variável de ambiente Node.js usadaUse Azion.env.get('VARIABLE_NAME') em vez de process.env.VARIABLE_NAME
Cache não purga como esperadoRequisição de purge ainda em processamentoAguarde 5-10 minutos; verifique purge com curl -I para checar cabeçalhos; use purge wildcard para mudanças amplas
Regras WAF bloqueiam tráfego legítimoSensibilidade alta demais ou falso positivoColoque o WAF em modo Learning primeiro; revise requisições bloqueadas em Real-Time Events; ajuste a sensibilidade
Timeouts de conexão com origemConnector mal configurado ou origem indisponívelVerifique endereço e porta do Connector; confira health da origem; aumente timeout nas configurações do Connector
Falhas de handshake SSLCertificado incompatível ou cadeia incompletaVerifique se o certificado cobre o domínio; inclua CA intermediária na cadeia; confira a versão TLS mínima
Erros CORS em requisições de APICabeçalhos CORS ausentes na respostaAdicione cabeçalhos CORS via Rules Engine: Access-Control-Allow-Origin, Access-Control-Allow-Methods
Erros de assinatura de função LambdaEstrutura de evento CloudFront difere da AzionAtualize a função para usar assinatura fetch(request, env, ctx); acesse a requisição via objeto request
Consultas DynamoDB falham após migraçãoSintaxe da API KV Store difereAtualize o código para usar KVStore de azion:kv; confira convenções de nome de chave
Uploads S3 falham com 403Credenciais ou endpoint incorretosVerifique Access Key e Secret Key; confirme que o endpoint é s3.us-east-005.azionstorage.net
Métricas CloudWatch não aparecemData Stream não configuradoConfigure Data Stream para exportar métricas; verifique credenciais e formato do destino

Principais Vantagens Após a Migração

CapacidadeAntes (AWS)Depois (Azion)
Plataforma unificadaMúltiplos consoles para CloudFront, Lambda, S3, Route 53, WAF, CloudWatchConsole único para compute, storage, segurança e observabilidade
Cold startsPossíveis em Lambda (especialmente com VPC)Minimizados com V8 isolates distribuídos
Distribuição globalRegiões e edge locations (200+ PoPs)Localizações da plataforma Azion no mundo todo com performance consistente
Modelo de preçoCobrança por serviço, taxas de transferência de dados, contagem de requisiçõesCobrança consolidada mais simples; custo zero de DTO para Object Storage
ObservabilidadeCloudWatch com dashboards, logs e alarmes separadosReal-Time Metrics e Events com acesso instantâneo via Console ou GraphQL API
Integração de segurançaWAF, Shield, IAM como serviços separadosWAF, DDoS Protection e Bot Manager integrados a workloads

Próximos Passos

Após concluir sua migração:

  • Revise Real-Time Metrics para monitorar a performance da aplicação
  • Configure Real-Time Events para visibilidade de produção
  • Configure Web Application Firewall para segurança de produção
  • Revise os guias individuais de recursos para configuração avançada
  • Configure Data Stream para exportar logs para suas ferramentas existentes de SIEM ou analytics

Comece com um Projeto Pequeno

A melhor forma de começar não é com a aplicação mais complexa do seu portfólio. Comece com um projeto significativo o bastante para validar o caminho de migração, mas pequeno o suficiente para mover com rapidez e segurança.

Escolha uma aplicação ou workload que inclua partes representativas da sua arquitetura: uma distribuição CloudFront, algumas funções Lambda, um bucket S3, talvez uma tabela DynamoDB. Use esse projeto para validar o workflow, documentar o processo e identificar padrões internos que sua equipe pode reutilizar.

A partir daí, expanda gradualmente. Migre comportamentos de cache mais complexos. Mova funções adicionais. Traga workloads de storage e banco de dados. Adicione observabilidade. Revise regras de segurança. Então prepare cutovers de produção com mais confiança.

Próximos Passos Recomendados

Precisa de Ajuda?

Receba ajuda da equipe de Suporte da Azion, ou entre na nossa comunidade no Discord para ver como outras pessoas estão usando a Azion.