<h2>Fundamentos de Conectividade Híbrida na AWS</h2>
<p>A conectividade híbrida conecta seus ambientes on-premises com a nuvem AWS de forma segura e confiável. Existem dois pilares: <strong>VPN (Virtual Private Network)</strong> e <strong>AWS Direct Connect</strong>. A VPN usa criptografia sobre a internet pública, ideal para conexões pontuais e com orçamento limitado. O Direct Connect oferece conexões dedicadas com menor latência e maior consistência de banda, sendo preferível para cargas críticas.</p>
<p>A escolha entre VPN e Direct Connect depende de requisitos como: consistência de performance, volume de dados, sensibilidade a latência e custo operacional. Muitas empresas usam ambos em estratégia complementar — VPN como fallback e Direct Connect como rota primária. Nesta aula, você aprenderá a implementar, configurar e otimizar ambas as soluções.</p>
<h2>VPN: Implementação Prática e Configuração</h2>
<h3>Site-to-Site VPN</h3>
<p>A Site-to-Site VPN estabelece túneis criptografados entre seu data center e uma VPC AWS. O processo envolve criar um <strong>Customer Gateway</strong> (seu lado) e um <strong>Virtual Private Gateway</strong> (lado AWS).</p>
<pre><code class="language-python">import boto3
ec2 = boto3.client('ec2', region_name='us-east-1')
Criar Virtual Private Gateway
vpn_gw_response = ec2.create_vpn_gateway(
Type='ipsec.1',
AmazonSideAsn=64512
)
vpn_gateway_id = vpn_gw_response['VpnGateway']['VpnGatewayId']
Criar Customer Gateway (seu on-premises)
customer_gw_response = ec2.create_customer_gateway(
Type='ipsec.1',
PublicIp='203.0.113.10', # IP público do seu roteador
BgpAsn=65000
)
customer_gateway_id = customer_gw_response['CustomerGateway']['CustomerGatewayId']
Criar conexão VPN
vpn_connection = ec2.create_vpn_connection(
Type='ipsec.1',
CustomerGatewayId=customer_gateway_id,
VpnGatewayId=vpn_gateway_id,
Options={
'StaticRoutesOnly': False,
'TunnelOptions': [
{
'TunnelInsideCidr': '169.254.10.0/30',
'PreSharedKey': 'sua-chave-segura-aqui'
},
{
'TunnelInsideCidr': '169.254.11.0/30',
'PreSharedKey': 'sua-segunda-chave-aqui'
}
]
}
)
vpn_connection_id = vpn_connection['VpnConnection']['VpnConnectionId']
print(f"VPN Connection criada: {vpn_connection_id}")
Habilitar propagação de rotas
vpc_id = 'vpc-12345678'
ec2.enable_vgw_route_propagation(
RouteTableId='rtb-12345678',
GatewayId=vpn_gateway_id
)</code></pre>
<p>A AWS fornecerá arquivo de configuração do seu lado — use-o para configurar seu roteador Cisco, Juniper ou similar. O túnel VPN oferece redundância automática com dois canais. Latência típica: 20-50ms. Banda: até 1.25 Gbps por conexão.</p>
<h3>Client VPN</h3>
<p>Para acesso remoto, use <strong>Client VPN</strong> — ideal para funcionários conectando-se de qualquer lugar. Diferente de Site-to-Site, funciona como VPN tradicional cliente-servidor.</p>
<pre><code class="language-python"># Criar Client VPN Endpoint
client_vpn = ec2.create_client_vpn_endpoint(
ClientCidrBlock='10.0.0.0/22',
ServerCertificateArn='arn:aws:acm:us-east-1:123456789012:certificate/...',
AuthenticationOptions=[
{
'Type': 'certificate-authentication',
'MutualAuthentication': {
'ClientRootCertificateChainArn': 'arn:aws:acm:us-east-1:123456789012:certificate/...'
}
}
],
ConnectionLogOptions={
'Enabled': True,
'CloudwatchLogGroup': '/aws/clientvpn/logs'
}
)
endpoint_id = client_vpn['ClientVpnEndpoint']['ClientVpnEndpointId']
Associar à subnet
ec2.associate_client_vpn_target_network(
ClientVpnEndpointId=endpoint_id,
SubnetId='subnet-12345678'
)
Autorizar acesso para CIDR específico
ec2.authorize_client_vpn_ingress(
ClientVpnEndpointId=endpoint_id,
TargetNetworkCidr='10.0.0.0/16',
AccessGroupId='sg-12345678'
)</code></pre>
<h2>AWS Direct Connect: Conexões Dedicadas</h2>
<h3>Provisionamento e Configuração</h3>
<p>Direct Connect oferece conexão física dedicada da AWS até um ponto de colocalização (colocation) perto de seu data center. Latência previsível, sem concorrência de banda com internet pública.</p>
<pre><code class="language-python"># Criar Direct Connect Virtual Interface (VIF)
dx = boto3.client('directconnect', region_name='us-east-1')
Primeiro, você precisa de uma conexão física (solicitada manualmente)
Este exemplo assume que você já tem uma conexão
Criar Private VIF para sua VPC
vif_response = dx.create_private_virtual_interface(
connectionId='dxcon-1a2b3c4d',
newPrivateVirtualInterface={
'virtualInterfaceName': 'meu-vif-privado',
'vlan': 100,
'asn': 65000, # Seu ASN (BGP)
'authKey': 'sua-chave-md5-aqui',
'customerAddress': '192.168.1.1/30',
'amazonAddress': '192.168.1.2/30',
'virtualGatewayId': 'vgw-12345678',
'tags': [
{'key': 'Ambiente', 'value': 'Producao'}
]
}
)
vif_id = vif_response['virtualInterface']['virtualInterfaceId']
print(f"Private VIF criado: {vif_id}")
Monitorar status
status_response = dx.describe_virtual_interfaces(
filters=[
{'name': 'virtual-interface-id', 'values': [vif_id]}
]
)
print(f"Status: {status_response['virtualInterfaces'][0]['virtualInterfaceState']}")</code></pre>
<p>Direct Connect oferece velocidades de 1 Gbps até 100 Gbps com SLA de 99.99% de disponibilidade. Latência típica: 5-10ms. Custo inicial é maior, mas reduz custos de transferência de dados em larga escala.</p>
<h3>Resiliência com LAG e Failover</h3>
<p>Para alta disponibilidade, use <strong>LAG (Link Aggregation Group)</strong> — agrupa múltiplas conexões como uma única. Implemente failover com VPN como backup.</p>
<pre><code class="language-python"># Criar LAG com 2 conexões Direct Connect
lag_response = dx.create_lag(
numberOfConnections=2,
location='US-EAST-1a',
bandwidth='10Gbps',
lagName='lag-producao-critica',
connectionsBandwidth='10Gbps',
tags=[
{'key': 'Criticidade', 'value': 'Alta'}
]
)
lag_id = lag_response['lag']['lagId']
Configurar rota de backup com menor preferência BGP
No seu roteador, configure:
- Direct Connect AS_PATH: 65000
- VPN AS_PATH: 65000 65000 (menos preferível)
print(f"LAG criado com redundância: {lag_id}")</code></pre>
<h2>Monitoramento e Otimização</h2>
<h3>Métricas e Alertas Essenciais</h3>
<p>Use CloudWatch para monitorar saúde das conexões. Métricas críticas incluem: latência de túnel VPN, throughput, pacotes perdidos e disponibilidade de BGP.</p>
<pre><code class="language-python">cloudwatch = boto3.client('cloudwatch', region_name='us-east-1')
Criar alarme para latência de Direct Connect
cloudwatch.put_metric_alarm(
AlarmName='DX-Latencia-Alta',
MetricName='ConnectionLatency',
Namespace='AWS/DX',
Statistic='Average',
Period=300,
EvaluationPeriods=2,
Threshold=20, # ms
ComparisonOperator='GreaterThanThreshold',
Dimensions=[
{'Name': 'ConnectionId', 'Value': 'dxcon-1a2b3c4d'}
],
AlarmActions=['arn:aws:sns:us-east-1:123456789012:alertas']
)
Monitorar disponibilidade do túnel VPN
cloudwatch.put_metric_alarm(
AlarmName='VPN-Tunel-Down',
MetricName='TunnelState',
Namespace='AWS/VPN',
Statistic='Minimum',
Period=60,
Threshold=1, # 1 = up, 0 = down
ComparisonOperator='LessThanThreshold',
Dimensions=[
{'Name': 'VpnConnectionId', 'Value': vpn_connection_id}
]
)</code></pre>
<h3>Otimizações Práticas</h3>
<p>Para VPN, ative <strong>VPN acceleration</strong> (roteamento por rede de edge da AWS). Para Direct Connect, implemente <strong>BGP communities</strong> para controle fino de rota. Monitore <strong>packet loss</strong> e ajuste <strong>MTU</strong> para 1500 bytes padrão ou 9000 com Jumbo frames em Direct Connect.</p>
<h2>Conclusão</h2>
<p>Dominando conectividade híbrida, você compreende que <strong>VPN é flexível e rápida de provisionar</strong>, ideal para prototipagem e fallback, enquanto <strong>Direct Connect oferece performance consistente</strong> para ambientes críticos. A <strong>combinação de ambas</strong> resulta em arquitetura resiliente e otimizada. Implementar monitoramento adequado garante visibilidade contínua. Comece com VPN para validar topologia, migre cargas pesadas para Direct Connect conforme maturidade aumentar.</p>
<h2>Referências</h2>
<ul>
<li><a href="https://docs.aws.amazon.com/directconnect/" target="_blank" rel="noopener noreferrer">AWS Direct Connect Documentation</a></li>
<li><a href="https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html" target="_blank" rel="noopener noreferrer">AWS Site-to-Site VPN Guide</a></li>
<li><a href="https://docs.aws.amazon.com/clientvpn/latest/adminGuide/" target="_blank" rel="noopener noreferrer">AWS Client VPN Administrator Guide</a></li>
<li><a href="https://docs.aws.amazon.com/wellarchitected/latest/network-lens/" target="_blank" rel="noopener noreferrer">AWS Well-Architected Framework: Network Design</a></li>
<li><a href="https://aws.amazon.com/blogs/architecture/tag/hybrid-cloud/" target="_blank" rel="noopener noreferrer">Hybrid Cloud Connectivity Patterns</a></li>
</ul>