SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
São Paulo
Cloud Ninja:
Rede para Faixa-Preta
Fabio Alves Moreira, Arquiteto da Bcash
Alex Coqueiro, Arquiteto de Soluções para o Setor Público
Desafios para Arquitetura de Redes
• Rede como habilitar o negócio
– Velocidade, inovação, flexibilidade, capacidade elástica
• Rede controlada
– Previsível, uniforme, padronizada
• Rede suportando requisitos de aplicações legadas
– IP estático, Multicast
Agenda
• Automação
• Manipulação de IP’s
– Virtual IP
– Multicast
• Experiência da Bcash
Automação
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
Maturidade na Automação de Rede
• Automação Básica
– Automação na construção de VPC e seus respectivos
componentes
• Automação Intermediária
– Sofisticação da automação indo além da construção inicial da
rede
• Automação Avançada
– Configuração Dinâmica
Automação Básica de Rede
aws ec2 create-vpc --cidr-block 10.0.0.0/16
aws ec2 replace-route --route-table-id $ROUTE_TABLE_ID
--destination-cidr-block 0.0.0.0/0
--instance-id $INSTANCE_ID
aws ec2 attach-network-interface --network-interface-id $ENI
--instance-id $INSTANCE_ID
--device-index 1
aws ec2 assign-private-ip-addresses --network-interface-id $ENI
--private-ip-addresses 10.0.0.100
• AWS CLI
Demo
Criação de VPC e Subnet
com CLI
Automação Básica de Rede
#!/bin/sh
export AWS_DEFAULT_REGION="us-east-1"
VPC_ID=`aws ec2 create-vpc --cidr-block 10.0.0.0/16 --output text | awk '{print $6;}'`
SUBNET_ID=`aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block 10.0.1.0/24 --output
text | awk '{print $6;}'`
echo "Created $VPC_ID & $SUBNET_ID"
#Clean up
aws ec2 delete-subnet --subnet-id $SUBNET_ID
aws ec2 delete-vpc --vpc-id $VPC_ID
• Scripts customizados
Automação Básica de Rede
#!/usr/bin/python
import boto.vpc
Region=“us-east-1”
conn = boto.vpc.VPCConnection(Region)
vpc = conn.create_vpc(‘10.0.0.0/16’)
subnet = conn.create_subnet(vpc.id ‘10.0.1.0/24’)
Print "Created “+vpc.id+” & “+subnet.id
#Clean up
conn.delete_subnet(subnet.id)
conn.delete_vpc(vpc.id)
• Amazon SDK
Automação Básica de Rede
#Powershell script
Initialize-AWSDefaults -Region 'us-east-1'
#Create new VPC
$vpc = New-EC2Vpc -CidrBlock '10.0.0.0/16'
$subnet = New-EC2Subnet -VpcId $vpc.VpcId -CidrBlock '10.0.1.0/24'
-AvailabilityZone 'us-east-1d'
Write-Host “Created VPC: " $vpc.VpcId " subnet: " $subnet.SubnetId
#Clean up VPC
Remove-EC2Subnet $subnet.subnetId -Force
Remove-EC2Vpc $vpc.VpcId -Force
• Amazon SDK
Automação Básica de Rede
• Permite que a rede seja:
– Automatizada
– Tracking
– Versionada
• Ótimo Inicio!
– Aspiração de diversos clientes
Automação Intermediária de Rede
• Gestão de mudanças da rede
• Gerenciando a extensão da rede
– Peering e VPN
– NAT e VPN
• Automatizar configurações específicas de rede
– EIPs, secondary IP, roteamento de IP’s virtuais (VIPs)
Exemplo de Topologia com NAT
Public Subnet 1
SA-east-1
Availability Zone 1 Availability Zone 2
NAT
Public Subnet 2
NAT
Private Subnet 1 Private Subnet 2
Automação Intermediária de Rede
"Resources" : {
"VPC" : {
"Type" : "AWS::EC2::VPC",
"Properties" : {
"CidrBlock" : “10.0.0.0/16”,
"Tags" : [ { "Key" : “Name", "Value" : “VPCName“ } ]
}
},
"PublicSubnet" : {
"Type" : "AWS::EC2::Subnet",
"Properties" : {
"VpcId" : { "Ref" : "VPC" },
"CidrBlock" : “10.0.1.0/24”,
"Tags" : [ { "Key" : "Network", "Value" : "Public" } ]
}
}
• AWS CloudFormation
Demo
Uso de CloudFormation
para Topologia de NAT
Automação Intermediária de Rede
• Controlar as mudanças na rede via CloudFormation
– Templates controlados e versionados
– UpdateStack
• Adiciona e remove recursos
• Modifica regras de security group
– Eventos são acompanhados no CloudFormation
Automação Intermediária de Rede
• Expansão In-region com VPC peering
– Peering handshake pode ser automatizado via script
– CloudFormation “AWS::EC2::VPCPeeringConnection”
• Expansão Cross-region
– VPC, routes, VPN instances podem ser automatizados
– Vpc2vpc é um exemplo
https://github.com/vinayselvaraj/vpc2vpc
vpc2vpc create 10.1.0.0/16 10.2.0.0/16 10.3.0.0/16
Script para expansão de rede (Peering)
"Resources": {
"PeeringConnection": {
"Type": "AWS::EC2::VPCPeeringConnection",
"Properties": {
"VpcId": {"Ref": "VPC1"},
"PeerVpcId": {"Ref": "VPC2"}
}
}
Adequação de Rotas
"Resources": {
"PeeringConnection": {
"Type": "AWS::EC2::VPCPeeringConnection",
"Properties": {
"VpcId": {"Ref": "VPC1"},
"PeerVpcId": {"Ref": "VPC2"}
}
}
"PeeringRoute1" : {
"Type" : "AWS::EC2::Route",
"Properties" : {
"DestinationCidrBlock": "172.16.0.0/16",
"RouteTableId" : { "Ref" : "RouteTable1" },
"VpcPeeringConnectionId" : { "Ref" : "PeeringConnection" }
}
},
}
Automação Intermediária de Rede
#!/bin/sh
NAT_ID=“i-12345”
NAT_RT_ID=“rtb-22574640”
REGION=“us-east-1”
…
# So we can monitor the other NAT instance
NAT_IP=`aws ec2 describe-instances --instance-id $NAT_ID --region $REGION |
grep PrivateIpAddress -m 1 | awk '{print $2;}' | sed -re 's/[",]//g'`
…
aws ec2 replace-route --route-table-id $NAT_RT_ID --instance-id $Instance_ID
--destination-cidr-block 0.0.0.0/0 --region $REGION
• Gerenciamento de componentes (Ex: HA em NAT)
https://aws.amazon.com/articles/2781451301784570
Demo
Teste de HA com NAT
Novo Cenário de NAT
Public Subnet 1
SA-east-1
Availability Zone 1 Availability Zone 2
NAT
Public Subnet 2
Private Subnet 1 Private Subnet 2
Auto Scaling Group
Automação Avançada Rede
• Automação Dinâmica: Responde dinâmicamente
quando uma condição da aplicação ou rede é
modificada
• Exemplos
– Bootstraping de instâncias
– VIP sendo reassociados com base na resposta do Auto Scaling
– Novas subnets com rotas dinâmicas
– Criar VPN’s quando novas regiões estão online
Automação Avançada Rede
• Abordagem Dinâmica
– Armazenamento de informações dinâmicas em um repositório
(external store)
• Repositórios Padrões
– Amazon S3, Amazon DynamoDB, Configuration Management Tool
– Tags
Automação Avançada Rede
• Network tagging
– Tags para Route table
• NAT = true
• NATAZ = [any, us-east-1a]
Exemplo de Tag com Múltiplos NAT’s
Public Subnet 1
SA-east-1
Availability Zone 1 Availability Zone 2
NAT
Public Subnet 2
NAT
Private Subnet 1 Private Subnet 2
TAG
NATAZ
AZ1
TAG
NATAZ
AZ2
Exemplo de TAG com Regiões Diferentes
Public Subnet 1
SA-East-1
Availability Zone 1 Availability Zone 1
Public Subnet 2
Private Subnet 1 Private Subnet 2
US-East-2
TAG
VPN
EIP
TAG
VPN
true
TAG
VPN
true
TAG
VPN
EIP
Script para NAT dinâmica
#!/bin/bash
INSTANCE_ID=`curl --silent http://169.254.169.254/latest/meta-data/instance-id`
AZ=`curl --silent http://169.254.169.254/latest/meta-data/placement/availability-zone`
REGION="${AZ%?}"
MAC=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/`
VPC_ID=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/vpc-id`
Script para NAT dinâmica
#!/bin/bash
INSTANCE_ID=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/instance-id`
AZ=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/placement/availability-zone`
REGION="${AZ%?}"
MAC=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/`
VPC_ID=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/vpc-id`
ROUTE_TABLES=`aws ec2 describe-route-tables --region $REGION --output text
--filters "Name=tag:NATAZ,Values=any,$AZ" |
grep ROUTETABLES | awk '{print $2}'`
Script para NAT dinâmica
#!/bin/bash
INSTANCE_ID=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/instance-id`
AZ=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/placement/availability-zone`
REGION="${AZ%?}"
MAC=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/`
VPC_ID=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/vpc-id`
ROUTE_TABLES=`aws ec2 describe-route-tables --region $REGION --output text
--filters "Name=tag:NATAZ,Values=any,$AZ" | grep ROUTETABLES | awk '{print $2}'`
# Parse through RouteTables that need to be modified
for MY_RT_ID in $ROUTE_TABLES; do
aws ec2 replace-route --route-table-id $MY_RT_ID --destination-cidr-block 0.0.0.0/0
--instance-id $INSTANCE_ID` --region $REGION
done
Automação Avançada Rede
• Scripts simples podem ser bem poderosos
– Criação dinânica e resiliênte de rede e seus componentes
– Responder as aplicações ou aos seus requisitos de negócio
Manipulação de IP
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
Manipulação de IP
• Endereçamento de Virtual IP (VIP)
– Suporte a casos de uso menos amigáveis ao paradigma de
nuvem
• Multicast
– Suporte ao legado com dependência de Multicast
Abordagem tradicional com IP’s virtuais
• Elastic IP
10.0.0.55
72.44.63.250
10.0.1.79
SA-east-1
aws ec2 associate-address –network-interface-id eni-abc123d4
--allocation-id [EIP Allocation ID] --allow-reassociation
Availability Zone Availability Zone
eni-abc123d4
Abordagem tradicional com IP’s virtuais
• IP Secundário
10.0.0.55
72.44.63.250
10.0.0.79
SA-east-1
aws ec2 assign-private-ip-addresses --private-ip-addresses 10.0.0.10
--network-interface-id eni-123abcde --allow-reassignment
10.0.0.10
Availability Zone
Outra Abordagem com IP’s virtuais
• Roteamento de IP virtual
10.0.0.55
192.168.0.10
10.0.1.79
AWS Region
#ifconfig eth0:1 192.168.0.10/32 up
aws ec2 replace-route --route-table-id [Route Table ID]
--destination-cidr-block 192.168.0.10/32
--instance-id [Instance ID]
Availability Zone Availability Zone
Passo-a-Passo
• Configurar sua instância com outro IP
• Desabilitar “SRC/DST checking”
• Usar API replace-route para direcionar tráfego
# ifconfig eth0:1 192.168.0.10/32 up
aws ec2 replace-route --route-table-id [Route Table ID]
--destination-cidr-block 192.168.0.10/32
--instance-id [Instance ID]
aws ec2 modify-instance-attribute --instance-id [Instance ID]
–no-source-dest-check
Comparativo das abordagens
Abordagem Pros Contras
EIP Multi-AZ Somente IP Público
Secondary IP IP Público e/ou
Privado
Single AZ
Roteamento do VIP Multi-AZ Somente IP Privado
Acessível somente na VPC
Multicast
• Algumas aplicações legadas requerem multicast
– Descoberta de Nós (Node discovery)
– Gerenciamento de Sessão (Session management)
– Failover automático
Multicast na AWS
• Não suportado diretamente
• Pode ser implementado com Overlay Network
• Túneis GRE ou L2TP, ou com ferramentas como Ntop’s N2N
10.0.0.54
10.0.0.79
10.0.1.132
Subnet 10.0.0.0/24 Subnet 10.0.1.0/24
10.0.1.183
10.0.0.41
Automatizando GRE multicast overlay
• Configuração de GRE pode ser automatizada
– Configuração de Multicast armazenada em tags
• Novos membros checados periodicamente (60
segundos)
172.31.16.124
172.31.28.164
172.31.47.71
Subnet 172.31.16.0/20 Subnet 172.31.32.0/20
TAG: multicast
App1,192.168.0.12/24
TAG: multicast
App1,192.168.0.11/24
TAG: multicast
App1,192.168.0.10/24
192.168.0.0/24 Overlay
Community: App1
Demo
GRE Overlay Multicast
Considerações sobre Multicast
• Tecnicamente não é multicast
– Pacotes Multicast são empacotados em Unicast
• Não é uma solução para escalar unicast
– Overhead adicional
• GRE adicional 38 bytes (MTU de 1500 irá efetivamente ser 1462)
• Adequado para clusters menores (Legado)
– App server node discover
– Baixo volume de tráfego
Scripts Utilizados Nesta Demo
• Disponível para download
https://s3.amazonaws.com/reinvent-arc401/index.html
Experiência da Bcash
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
“As soluções da AWS quebraram paradigmas em TI, onde
agora nossos Especialistas pensam não apenas em TI,
mas em como atingir as metas do nosso negócio.”
• Bcash é a solução completa
para quem compra ou vende em
lojas virtuais, blogs e websites,
desenvolvida para transações
rápidas e seguras na internet.
• Mais de 7 milhões de
compradores ativos
• Sistema Anti-fraude com Rede
Neurais da Fcontrol integrado
“A AWS simplificou
como implementar uma
solução de Alta
Disponibilidade e
CUSTOS baixos.”
- Fábio Alves Moreira,
Head of IT
Ter uma infraestrutura que suporte meu
crescimento rapido, disponibilidade e ROI baixo.
• Escalabilidade para suportar a
expansão dos negócios;
• Segurança é essencial para nosso
mercado.
• Ter um ambiente de rede
complexo, com implementação
simples.
• Alta Disponibilidade e Custos que
são condizentes com minha
realidade.
Arquitetura Bcash
Dificuldades e Erro de Planejamento
• VPN entre Regiões
• E aí?
• VPC muito pequena
• Nova VPC
• VPC peering
Obrigado
São Paulo

Mais conteúdo relacionado

Destaque

Destaque (6)

Webinar: Como explorar os recursos de aprendizagem da AWS
Webinar: Como explorar os recursos de aprendizagem da AWSWebinar: Como explorar os recursos de aprendizagem da AWS
Webinar: Como explorar os recursos de aprendizagem da AWS
 
Segurança na Nuvem da AWS
Segurança na Nuvem da AWSSegurança na Nuvem da AWS
Segurança na Nuvem da AWS
 
Webinar sobre VPC
Webinar sobre VPCWebinar sobre VPC
Webinar sobre VPC
 
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2
Visão Geral da Nuvem da AWS e como estimar sua conta Parte 1 de 2
 
Introdução a Cloud Computing com Amazon Web Services
Introdução a Cloud Computing com Amazon Web ServicesIntrodução a Cloud Computing com Amazon Web Services
Introdução a Cloud Computing com Amazon Web Services
 
Migrate and Manage Workloads with Apps Associates
Migrate and Manage Workloads with Apps AssociatesMigrate and Manage Workloads with Apps Associates
Migrate and Manage Workloads with Apps Associates
 

Semelhante a 4. cloud ninja rede para faixa preta

WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
João Moura
 
Mysql cluster quick start webinar
Mysql cluster quick start webinarMysql cluster quick start webinar
Mysql cluster quick start webinar
henriquesidney
 

Semelhante a 4. cloud ninja rede para faixa preta (20)

WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
WebSocket com Node.js ( socketstream && coffeescript ) X RoR ( Juggernaut )
 
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...
 
Serverless Containers - execute instâncias de containers do Azure sob demanda...
Serverless Containers - execute instâncias de containers do Azure sob demanda...Serverless Containers - execute instâncias de containers do Azure sob demanda...
Serverless Containers - execute instâncias de containers do Azure sob demanda...
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
 
Webinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualWebinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter Virtual
 
Supervisão e Monitorização
Supervisão e MonitorizaçãoSupervisão e Monitorização
Supervisão e Monitorização
 
Expandindo seu data center com uma infraestrutura hibrida
Expandindo seu data center com uma infraestrutura hibridaExpandindo seu data center com uma infraestrutura hibrida
Expandindo seu data center com uma infraestrutura hibrida
 
Istio service mesh
Istio service meshIstio service mesh
Istio service mesh
 
Application Servers e Ruby
Application Servers e RubyApplication Servers e Ruby
Application Servers e Ruby
 
Aula09 frame relay - pratica
Aula09   frame relay - praticaAula09   frame relay - pratica
Aula09 frame relay - pratica
 
Segurança em Plataforma Microsoft
Segurança em Plataforma MicrosoftSegurança em Plataforma Microsoft
Segurança em Plataforma Microsoft
 
Rota Estática / Link State / Vetor de Distância
Rota Estática / Link State / Vetor de DistânciaRota Estática / Link State / Vetor de Distância
Rota Estática / Link State / Vetor de Distância
 
Windows Azure Pack - Visão Geral
Windows Azure Pack - Visão GeralWindows Azure Pack - Visão Geral
Windows Azure Pack - Visão Geral
 
estrategia-ddos-gustavo
estrategia-ddos-gustavoestrategia-ddos-gustavo
estrategia-ddos-gustavo
 
03 estrategia-ddos
03 estrategia-ddos03 estrategia-ddos
03 estrategia-ddos
 
2016/08/19 - Uma visão geral da AWS para desenvolvedores
2016/08/19 - Uma visão geral da AWS para desenvolvedores2016/08/19 - Uma visão geral da AWS para desenvolvedores
2016/08/19 - Uma visão geral da AWS para desenvolvedores
 
Mysql cluster quick start webinar
Mysql cluster quick start webinarMysql cluster quick start webinar
Mysql cluster quick start webinar
 
Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPRTecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
Tecnologias para desenvolvimento ágil de aplicações Web-Isemanatsi_UTFPR
 
Aula 8.3 - Iptables Tabela NAT
Aula 8.3 - Iptables Tabela NATAula 8.3 - Iptables Tabela NAT
Aula 8.3 - Iptables Tabela NAT
 

Mais de Amazon Web Services LATAM

Mais de Amazon Web Services LATAM (20)

AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWS
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
 
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de MitigaçãoRansomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigação
 
Ransomware: Estratégias de Mitigación
Ransomware: Estratégias de MitigaciónRansomware: Estratégias de Mitigación
Ransomware: Estratégias de Mitigación
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWS
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administrados
 
Simplifique su BI con AWS
Simplifique su BI con AWSSimplifique su BI con AWS
Simplifique su BI con AWS
 
Simplifique o seu BI com a AWS
Simplifique o seu BI com a AWSSimplifique o seu BI com a AWS
Simplifique o seu BI com a AWS
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWS
 

4. cloud ninja rede para faixa preta

  • 2. Cloud Ninja: Rede para Faixa-Preta Fabio Alves Moreira, Arquiteto da Bcash Alex Coqueiro, Arquiteto de Soluções para o Setor Público
  • 3. Desafios para Arquitetura de Redes • Rede como habilitar o negócio – Velocidade, inovação, flexibilidade, capacidade elástica • Rede controlada – Previsível, uniforme, padronizada • Rede suportando requisitos de aplicações legadas – IP estático, Multicast
  • 4. Agenda • Automação • Manipulação de IP’s – Virtual IP – Multicast • Experiência da Bcash
  • 5. Automação ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
  • 6. Maturidade na Automação de Rede • Automação Básica – Automação na construção de VPC e seus respectivos componentes • Automação Intermediária – Sofisticação da automação indo além da construção inicial da rede • Automação Avançada – Configuração Dinâmica
  • 7. Automação Básica de Rede aws ec2 create-vpc --cidr-block 10.0.0.0/16 aws ec2 replace-route --route-table-id $ROUTE_TABLE_ID --destination-cidr-block 0.0.0.0/0 --instance-id $INSTANCE_ID aws ec2 attach-network-interface --network-interface-id $ENI --instance-id $INSTANCE_ID --device-index 1 aws ec2 assign-private-ip-addresses --network-interface-id $ENI --private-ip-addresses 10.0.0.100 • AWS CLI
  • 8. Demo Criação de VPC e Subnet com CLI
  • 9. Automação Básica de Rede #!/bin/sh export AWS_DEFAULT_REGION="us-east-1" VPC_ID=`aws ec2 create-vpc --cidr-block 10.0.0.0/16 --output text | awk '{print $6;}'` SUBNET_ID=`aws ec2 create-subnet --vpc-id $VPC_ID --cidr-block 10.0.1.0/24 --output text | awk '{print $6;}'` echo "Created $VPC_ID & $SUBNET_ID" #Clean up aws ec2 delete-subnet --subnet-id $SUBNET_ID aws ec2 delete-vpc --vpc-id $VPC_ID • Scripts customizados
  • 10. Automação Básica de Rede #!/usr/bin/python import boto.vpc Region=“us-east-1” conn = boto.vpc.VPCConnection(Region) vpc = conn.create_vpc(‘10.0.0.0/16’) subnet = conn.create_subnet(vpc.id ‘10.0.1.0/24’) Print "Created “+vpc.id+” & “+subnet.id #Clean up conn.delete_subnet(subnet.id) conn.delete_vpc(vpc.id) • Amazon SDK
  • 11. Automação Básica de Rede #Powershell script Initialize-AWSDefaults -Region 'us-east-1' #Create new VPC $vpc = New-EC2Vpc -CidrBlock '10.0.0.0/16' $subnet = New-EC2Subnet -VpcId $vpc.VpcId -CidrBlock '10.0.1.0/24' -AvailabilityZone 'us-east-1d' Write-Host “Created VPC: " $vpc.VpcId " subnet: " $subnet.SubnetId #Clean up VPC Remove-EC2Subnet $subnet.subnetId -Force Remove-EC2Vpc $vpc.VpcId -Force • Amazon SDK
  • 12. Automação Básica de Rede • Permite que a rede seja: – Automatizada – Tracking – Versionada • Ótimo Inicio! – Aspiração de diversos clientes
  • 13. Automação Intermediária de Rede • Gestão de mudanças da rede • Gerenciando a extensão da rede – Peering e VPN – NAT e VPN • Automatizar configurações específicas de rede – EIPs, secondary IP, roteamento de IP’s virtuais (VIPs)
  • 14. Exemplo de Topologia com NAT Public Subnet 1 SA-east-1 Availability Zone 1 Availability Zone 2 NAT Public Subnet 2 NAT Private Subnet 1 Private Subnet 2
  • 15. Automação Intermediária de Rede "Resources" : { "VPC" : { "Type" : "AWS::EC2::VPC", "Properties" : { "CidrBlock" : “10.0.0.0/16”, "Tags" : [ { "Key" : “Name", "Value" : “VPCName“ } ] } }, "PublicSubnet" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : “10.0.1.0/24”, "Tags" : [ { "Key" : "Network", "Value" : "Public" } ] } } • AWS CloudFormation
  • 17. Automação Intermediária de Rede • Controlar as mudanças na rede via CloudFormation – Templates controlados e versionados – UpdateStack • Adiciona e remove recursos • Modifica regras de security group – Eventos são acompanhados no CloudFormation
  • 18. Automação Intermediária de Rede • Expansão In-region com VPC peering – Peering handshake pode ser automatizado via script – CloudFormation “AWS::EC2::VPCPeeringConnection” • Expansão Cross-region – VPC, routes, VPN instances podem ser automatizados – Vpc2vpc é um exemplo https://github.com/vinayselvaraj/vpc2vpc vpc2vpc create 10.1.0.0/16 10.2.0.0/16 10.3.0.0/16
  • 19. Script para expansão de rede (Peering) "Resources": { "PeeringConnection": { "Type": "AWS::EC2::VPCPeeringConnection", "Properties": { "VpcId": {"Ref": "VPC1"}, "PeerVpcId": {"Ref": "VPC2"} } }
  • 20. Adequação de Rotas "Resources": { "PeeringConnection": { "Type": "AWS::EC2::VPCPeeringConnection", "Properties": { "VpcId": {"Ref": "VPC1"}, "PeerVpcId": {"Ref": "VPC2"} } } "PeeringRoute1" : { "Type" : "AWS::EC2::Route", "Properties" : { "DestinationCidrBlock": "172.16.0.0/16", "RouteTableId" : { "Ref" : "RouteTable1" }, "VpcPeeringConnectionId" : { "Ref" : "PeeringConnection" } } }, }
  • 21. Automação Intermediária de Rede #!/bin/sh NAT_ID=“i-12345” NAT_RT_ID=“rtb-22574640” REGION=“us-east-1” … # So we can monitor the other NAT instance NAT_IP=`aws ec2 describe-instances --instance-id $NAT_ID --region $REGION | grep PrivateIpAddress -m 1 | awk '{print $2;}' | sed -re 's/[",]//g'` … aws ec2 replace-route --route-table-id $NAT_RT_ID --instance-id $Instance_ID --destination-cidr-block 0.0.0.0/0 --region $REGION • Gerenciamento de componentes (Ex: HA em NAT) https://aws.amazon.com/articles/2781451301784570
  • 22. Demo Teste de HA com NAT
  • 23. Novo Cenário de NAT Public Subnet 1 SA-east-1 Availability Zone 1 Availability Zone 2 NAT Public Subnet 2 Private Subnet 1 Private Subnet 2 Auto Scaling Group
  • 24. Automação Avançada Rede • Automação Dinâmica: Responde dinâmicamente quando uma condição da aplicação ou rede é modificada • Exemplos – Bootstraping de instâncias – VIP sendo reassociados com base na resposta do Auto Scaling – Novas subnets com rotas dinâmicas – Criar VPN’s quando novas regiões estão online
  • 25. Automação Avançada Rede • Abordagem Dinâmica – Armazenamento de informações dinâmicas em um repositório (external store) • Repositórios Padrões – Amazon S3, Amazon DynamoDB, Configuration Management Tool – Tags
  • 26. Automação Avançada Rede • Network tagging – Tags para Route table • NAT = true • NATAZ = [any, us-east-1a]
  • 27. Exemplo de Tag com Múltiplos NAT’s Public Subnet 1 SA-east-1 Availability Zone 1 Availability Zone 2 NAT Public Subnet 2 NAT Private Subnet 1 Private Subnet 2 TAG NATAZ AZ1 TAG NATAZ AZ2
  • 28. Exemplo de TAG com Regiões Diferentes Public Subnet 1 SA-East-1 Availability Zone 1 Availability Zone 1 Public Subnet 2 Private Subnet 1 Private Subnet 2 US-East-2 TAG VPN EIP TAG VPN true TAG VPN true TAG VPN EIP
  • 29. Script para NAT dinâmica #!/bin/bash INSTANCE_ID=`curl --silent http://169.254.169.254/latest/meta-data/instance-id` AZ=`curl --silent http://169.254.169.254/latest/meta-data/placement/availability-zone` REGION="${AZ%?}" MAC=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/` VPC_ID=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/vpc-id`
  • 30. Script para NAT dinâmica #!/bin/bash INSTANCE_ID=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/instance-id` AZ=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/placement/availability-zone` REGION="${AZ%?}" MAC=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/` VPC_ID=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/vpc-id` ROUTE_TABLES=`aws ec2 describe-route-tables --region $REGION --output text --filters "Name=tag:NATAZ,Values=any,$AZ" | grep ROUTETABLES | awk '{print $2}'`
  • 31. Script para NAT dinâmica #!/bin/bash INSTANCE_ID=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/instance-id` AZ=`/usr/bin/curl --silent http://169.254.169.254/latest/meta-data/placement/availability-zone` REGION="${AZ%?}" MAC=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/` VPC_ID=`curl --silent http://169.254.169.254/latest/meta-data/network/interfaces/macs/$MAC/vpc-id` ROUTE_TABLES=`aws ec2 describe-route-tables --region $REGION --output text --filters "Name=tag:NATAZ,Values=any,$AZ" | grep ROUTETABLES | awk '{print $2}'` # Parse through RouteTables that need to be modified for MY_RT_ID in $ROUTE_TABLES; do aws ec2 replace-route --route-table-id $MY_RT_ID --destination-cidr-block 0.0.0.0/0 --instance-id $INSTANCE_ID` --region $REGION done
  • 32. Automação Avançada Rede • Scripts simples podem ser bem poderosos – Criação dinânica e resiliênte de rede e seus componentes – Responder as aplicações ou aos seus requisitos de negócio
  • 33. Manipulação de IP ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
  • 34. Manipulação de IP • Endereçamento de Virtual IP (VIP) – Suporte a casos de uso menos amigáveis ao paradigma de nuvem • Multicast – Suporte ao legado com dependência de Multicast
  • 35. Abordagem tradicional com IP’s virtuais • Elastic IP 10.0.0.55 72.44.63.250 10.0.1.79 SA-east-1 aws ec2 associate-address –network-interface-id eni-abc123d4 --allocation-id [EIP Allocation ID] --allow-reassociation Availability Zone Availability Zone eni-abc123d4
  • 36. Abordagem tradicional com IP’s virtuais • IP Secundário 10.0.0.55 72.44.63.250 10.0.0.79 SA-east-1 aws ec2 assign-private-ip-addresses --private-ip-addresses 10.0.0.10 --network-interface-id eni-123abcde --allow-reassignment 10.0.0.10 Availability Zone
  • 37. Outra Abordagem com IP’s virtuais • Roteamento de IP virtual 10.0.0.55 192.168.0.10 10.0.1.79 AWS Region #ifconfig eth0:1 192.168.0.10/32 up aws ec2 replace-route --route-table-id [Route Table ID] --destination-cidr-block 192.168.0.10/32 --instance-id [Instance ID] Availability Zone Availability Zone
  • 38. Passo-a-Passo • Configurar sua instância com outro IP • Desabilitar “SRC/DST checking” • Usar API replace-route para direcionar tráfego # ifconfig eth0:1 192.168.0.10/32 up aws ec2 replace-route --route-table-id [Route Table ID] --destination-cidr-block 192.168.0.10/32 --instance-id [Instance ID] aws ec2 modify-instance-attribute --instance-id [Instance ID] –no-source-dest-check
  • 39. Comparativo das abordagens Abordagem Pros Contras EIP Multi-AZ Somente IP Público Secondary IP IP Público e/ou Privado Single AZ Roteamento do VIP Multi-AZ Somente IP Privado Acessível somente na VPC
  • 40. Multicast • Algumas aplicações legadas requerem multicast – Descoberta de Nós (Node discovery) – Gerenciamento de Sessão (Session management) – Failover automático
  • 41. Multicast na AWS • Não suportado diretamente • Pode ser implementado com Overlay Network • Túneis GRE ou L2TP, ou com ferramentas como Ntop’s N2N 10.0.0.54 10.0.0.79 10.0.1.132 Subnet 10.0.0.0/24 Subnet 10.0.1.0/24 10.0.1.183 10.0.0.41
  • 42. Automatizando GRE multicast overlay • Configuração de GRE pode ser automatizada – Configuração de Multicast armazenada em tags • Novos membros checados periodicamente (60 segundos) 172.31.16.124 172.31.28.164 172.31.47.71 Subnet 172.31.16.0/20 Subnet 172.31.32.0/20 TAG: multicast App1,192.168.0.12/24 TAG: multicast App1,192.168.0.11/24 TAG: multicast App1,192.168.0.10/24 192.168.0.0/24 Overlay Community: App1
  • 44. Considerações sobre Multicast • Tecnicamente não é multicast – Pacotes Multicast são empacotados em Unicast • Não é uma solução para escalar unicast – Overhead adicional • GRE adicional 38 bytes (MTU de 1500 irá efetivamente ser 1462) • Adequado para clusters menores (Legado) – App server node discover – Baixo volume de tráfego
  • 45. Scripts Utilizados Nesta Demo • Disponível para download https://s3.amazonaws.com/reinvent-arc401/index.html
  • 46. Experiência da Bcash ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
  • 47. “As soluções da AWS quebraram paradigmas em TI, onde agora nossos Especialistas pensam não apenas em TI, mas em como atingir as metas do nosso negócio.” • Bcash é a solução completa para quem compra ou vende em lojas virtuais, blogs e websites, desenvolvida para transações rápidas e seguras na internet. • Mais de 7 milhões de compradores ativos • Sistema Anti-fraude com Rede Neurais da Fcontrol integrado “A AWS simplificou como implementar uma solução de Alta Disponibilidade e CUSTOS baixos.” - Fábio Alves Moreira, Head of IT
  • 48. Ter uma infraestrutura que suporte meu crescimento rapido, disponibilidade e ROI baixo. • Escalabilidade para suportar a expansão dos negócios; • Segurança é essencial para nosso mercado. • Ter um ambiente de rede complexo, com implementação simples. • Alta Disponibilidade e Custos que são condizentes com minha realidade.
  • 50. Dificuldades e Erro de Planejamento • VPN entre Regiões • E aí? • VPC muito pequena • Nova VPC • VPC peering