4. cloud ninja rede para faixa preta

52
São Paulo

Transcript of 4. cloud ninja rede para faixa preta

Page 1: 4. cloud ninja rede para faixa preta

São Paulo

Page 2: 4. cloud ninja rede para faixa preta

Cloud Ninja:

Rede para Faixa-Preta

Fabio Alves Moreira, Arquiteto da Bcash

Alex Coqueiro, Arquiteto de Soluções para o Setor Público

Page 3: 4. cloud ninja rede para faixa preta

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

Page 4: 4. cloud ninja rede para faixa preta

Agenda

• Automação

• Manipulação de IP’s

– Virtual IP

– Multicast

• Experiência da Bcash

Page 5: 4. cloud ninja rede para faixa preta

Automação

©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Page 6: 4. cloud ninja rede para faixa preta

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

Page 7: 4. cloud ninja rede para faixa preta

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

Page 8: 4. cloud ninja rede para faixa preta

DemoCriação de VPC e Subnet

com CLI

Page 9: 4. cloud ninja rede para faixa preta

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

Page 10: 4. cloud ninja rede para faixa preta

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

Page 11: 4. cloud ninja rede para faixa preta

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

Page 12: 4. cloud ninja rede para faixa preta

Automação Básica de Rede

• Permite que a rede seja:– Automatizada

– Tracking

– Versionada

• Ótimo Inicio!– Aspiração de diversos clientes

Page 13: 4. cloud ninja rede para faixa preta

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)

Page 14: 4. cloud ninja rede para faixa preta

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

Page 15: 4. cloud ninja rede para faixa preta

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

Page 16: 4. cloud ninja rede para faixa preta

DemoUso de CloudFormation

para Topologia de NAT

Page 17: 4. cloud ninja rede para faixa preta

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

Page 18: 4. cloud ninja rede para faixa preta

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

Page 19: 4. cloud ninja rede para faixa preta

Script para expansão de rede (Peering)

"Resources": {

"PeeringConnection": {

"Type": "AWS::EC2::VPCPeeringConnection",

"Properties": {

"VpcId": {"Ref": "VPC1"},

"PeerVpcId": {"Ref": "VPC2"}

}

}

Page 20: 4. cloud ninja rede para faixa preta

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" }

}

},

}

Page 21: 4. cloud ninja rede para faixa preta

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

Page 22: 4. cloud ninja rede para faixa preta

DemoTeste de HA com NAT

Page 23: 4. cloud ninja rede para faixa preta

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

Page 24: 4. cloud ninja rede para faixa preta

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

Page 25: 4. cloud ninja rede para faixa preta

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

Page 26: 4. cloud ninja rede para faixa preta

Automação Avançada Rede

• Network tagging– Tags para Route table

• NAT = true

• NATAZ = [any, us-east-1a]

Page 27: 4. cloud ninja rede para faixa preta

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

Page 28: 4. cloud ninja rede para faixa preta

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

Page 29: 4. cloud ninja rede para faixa preta

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`

Page 30: 4. cloud ninja rede para faixa preta

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}'`

Page 31: 4. cloud ninja rede para faixa preta

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

Page 32: 4. cloud ninja rede para faixa preta

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

Page 33: 4. cloud ninja rede para faixa preta

Manipulação de IP

©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Page 34: 4. cloud ninja rede para faixa preta

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

Page 35: 4. cloud ninja rede para faixa preta

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

Page 36: 4. cloud ninja rede para faixa preta

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

Page 37: 4. cloud ninja rede para faixa preta

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

Page 38: 4. cloud ninja rede para faixa preta

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

Page 39: 4. cloud ninja rede para faixa preta

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

Page 40: 4. cloud ninja rede para faixa preta

Multicast

• Algumas aplicações legadas requerem multicast– Descoberta de Nós (Node discovery)

– Gerenciamento de Sessão (Session management)

– Failover automático

Page 41: 4. cloud ninja rede para faixa preta

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.18310.0.0.41

Page 42: 4. cloud ninja rede para faixa preta

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

Page 43: 4. cloud ninja rede para faixa preta

DemoGRE Overlay Multicast

Page 44: 4. cloud ninja rede para faixa preta

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

Page 45: 4. cloud ninja rede para faixa preta

Scripts Utilizados Nesta Demo

• Disponível para download

https://s3.amazonaws.com/reinvent-arc401/index.html

Page 46: 4. cloud ninja rede para faixa preta

Experiência da Bcash

©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Page 47: 4. cloud ninja rede para faixa preta

“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

Page 48: 4. cloud ninja rede para faixa preta

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 nossomercado.

• Ter um ambiente de redecomplexo, com implementaçãosimples.

• Alta Disponibilidade e Custos quesão condizentes com minharealidade.

Page 49: 4. cloud ninja rede para faixa preta

Arquitetura Bcash

Page 50: 4. cloud ninja rede para faixa preta

Dificuldades e Erro de Planejamento

• VPN entre Regiões

• E aí?

• VPC muito pequena

• Nova VPC

• VPC peering

Page 51: 4. cloud ninja rede para faixa preta

Obrigado

Page 52: 4. cloud ninja rede para faixa preta

São Paulo