

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Gere um endereço IP de saída estático usando uma função do Lambda, Amazon VPC e uma arquitetura de tecnologia sem servidor
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture"></a>

*Thomas Scott, Amazon Web Services*

## Resumo
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-summary"></a>

Esse padrão descreve como gerar um endereço IP de saída estático na Nuvem da Amazon Web Services (AWS) usando uma arquitetura de tecnologia sem servidor. Sua organização pode se beneficiar dessa abordagem se quiser enviar arquivos para uma entidade comercial separada usando o Secure File Transfer Protocol (SFTP). Isso significa que a entidade comercial deve ter acesso a um endereço IP que permita que os arquivos passem pelo firewall. 

A abordagem do padrão orienta a criação de uma função do AWS Lambda que usa um [endereço IP elástico](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) como o endereço IP para tráfego de saída. Seguindo as etapas desse padrão, você pode criar uma função do Lambda e uma nuvem privada virtual (VPC) que roteia o tráfego de saída por meio de um gateway da Internet com um endereço IP estático. Para usar o endereço IP estático, você anexa a função do Lambda à VPC e suas sub-redes. 

## Pré-requisitos e limitações
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa 
+ Permissões do AWS Identity and Access Management (IAM) para criar e implementar uma função do Lambda e criar uma VPC e suas sub-redes. Para obter mais informações, consulte [Função de execução e permissões de usuário](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html#vpc-permissions) na documentação da AWS Lambda.
+ Se você planeja usar infraestrutura como código (IaC) para implementar a abordagem apresentada neste padrão, será necessário um ambiente de desenvolvimento integrado (IDE), como o AWS Cloud9. Para obter mais informações sobre isso, consulte [O que é o AWS Cloud9?](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) na documentação do AWS Cloud9.

## Arquitetura
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-architecture"></a>

O diagrama a seguir mostra a arquitetura de tecnologia sem servidor desse padrão.

![](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/eb1d0b05-df33-45ae-b27e-36090055b300/images/c15cc6da-ce4e-4ea0-9feb-de1c845d3ce8.png)


O diagrama mostra o seguinte fluxo de trabalho:

1. O tráfego de saída de `NAT gateway 1` em `Public subnet 1`.

1. O tráfego de saída de `NAT gateway 2` em `Public subnet 2`.

1. A função do Lambda pode ser executada em `Private subnet 1` ou `Private subnet 2`.

1. `Private subnet 1` e `Private subnet 2` roteiam o tráfego para os gateways NAT nas sub-redes públicas.

1. Os gateways NAT enviam tráfego de saída para o gateway da Internet a partir das sub-redes públicas.

1. Os dados de saída são transferidos do gateway da Internet para o servidor externo.



**Pilha de tecnologia**
+ Lambda
+ Amazon Virtual Private Cloud (Amazon VPC)

 

**Automação e escala**

Você pode garantir a alta disponibilidade (HA) usando duas sub-redes públicas e duas privadas em diferentes zonas de disponibilidade. Mesmo que uma zona de disponibilidade fique indisponível, a solução do padrão continua funcionando.

## Ferramentas
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-tools"></a>
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html): o AWS Lambda é um serviço de computação que permite a execução do código sem provisionar ou gerenciar servidores O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo. Você paga apenas pelo tempo de computação consumido. Não haverá cobranças quando o código não estiver em execução.
+ [Amazon VPC](https://docs.aws.amazon.com/vpc/): a Amazon Virtual Private Cloud (Amazon VPC) permite provisionar uma seção logicamente isolada da Nuvem AWS, em que é possível executar recursos da AWS em uma rede virtual que você mesmo define. Essa rede virtual se assemelha a uma rede tradicional que você operaria no seu datacenter, com os benefícios de usar a infraestrutura dimensionável da AWS.

## Épicos
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-epics"></a>

### Crie uma nova VPC
<a name="create-a-new-vpc"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma nova VPC. | Faça login no AWS Management Console, abra o console Amazon VPC e crie uma VPC chamada `Lambda VPC` que tenha `10.0.0.0/25`**** como intervalo CIDR. IPv4 <br />Para obter mais informações sobre como criar uma VPC, consulte [Conceitos básicos da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html#getting-started-create-vpc) na documentação da Amazon VPC.  | Administrador da AWS | 

### Crie duas sub-redes públicas
<a name="create-two-public-subnets"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a primeira sub-rede pública. | 1. No console do Amazon VPC, escolha **Sub-redes **e, em seguida, escolha **Criar sub-rede**. <br />2. Em **Nomear tag**, insira `public-one`.<br />3. Em **VPC**, escolha `Lambda VPC`.<br />4. Escolha uma zona de disponibilidade e registre-a. <br />5. Para **bloco IPv4 CIDR**, insira `10.0.0.0/28`**** e escolha **Criar sub-rede**. | Administrador da AWS | 
| Crie a segunda sub-rede pública. | 1. No console do Amazon VPC, escolha **Sub-redes **e, em seguida, escolha **Criar sub-rede**. <br />2. Em **Nomear tag**, insira `public-two`.<br />3. Em **VPC**, escolha `Lambda VPC`.<br />4. Escolha uma zona de disponibilidade e registre-a. Não é possível usar a zona de disponibilidade que contém a sub-rede `public-one`. <br />5. Para **bloco IPv4 CIDR**, insira `10.0.0.16/28`**** e escolha **Criar sub-rede**. | Administrador da AWS | 

### Criar duas sub-redes privadas
<a name="create-two-private-subnets"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar a primeira sub-rede privada. | 1. No console do Amazon VPC, escolha **Sub-redes **e, em seguida, escolha **Criar sub-rede**. <br />2. Em **Nomear tag**, insira `private-one`.<br />3. Em **VPC**, escolha `Lambda VPC`.<br />4. Escolha a zona de disponibilidade que contém a sub-rede `public-one` que você criou anteriormente. <br />5. Para **bloco IPv4 CIDR**, insira `10.0.0.32/28`**** e escolha **Criar sub-rede**. | Administrador da AWS | 
| Crie a segunda sub-rede privada. | 1. No console do Amazon VPC, escolha **Sub-redes **e, em seguida, escolha **Criar sub-rede**. <br />2. Em **Nomear tag**, insira `private-two`.<br />3. Em **VPC**, escolha `Lambda VPC`.<br />4. Escolha a mesma zona de disponibilidade que contém a sub-rede `public-two` que você criou anteriormente. <br />5. Para **bloco IPv4 CIDR**, insira `10.0.0.64/28`**** e escolha **Criar sub-rede**. | Administrador da AWS | 

### Criar um endereço IP elástico para o seu gateway NAT
<a name="create-two-elastic-ip-addresses-for-your-nat-gateways"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
|  Crie o primeiro endereço IP elástico. | 1. No console da Amazon VPC, escolha **Elastic IPs** e, em seguida, escolha **Alocar novo endereço**. ****<br />2. Escolha **Alocar** e registre o **ID de alocação** para seu endereço IP elástico recém-criado.** **Este endereço IP elástico é empregado em seu primeiro gateway NAT.  | Administrador da AWS | 
| Crie o segundo endereço IP elástico. | 1. No console da Amazon VPC, escolha **Elastic IPs** e, em seguida, escolha **Alocar novo endereço**. ****<br />2. Escolha **Alocar** e registre o **ID de alocação** para esse segundo endereço IP elástico.Este endereço IP elástico é empregado em seu segundo gateway NAT. | Administrador da AWS | 

### Criar um gateway da Internet
<a name="create-an-internet-gateway"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um gateway da Internet. | 1. No console da Amazon VPC escolha **Gateway da Internet** e escolha **Criar gateway da Internet**.<br />2. Insira `Lambda internet gateway` como nome e escolha **Criar gateway da internet**. Certifique-se de registrar o ID do gateway da internet.  | Administrador da AWS | 
| Anexar o Gateway da Internet à VPC. | Selecione o gateway da internet criado e escolha **Actions, Attach to VPC (Ações, anexar à VPC)**. | Administrador da AWS | 

### Crie dois gateways NAT
<a name="create-two-nat-gateways"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie o primeiro gateway NAT. | 1. No console do Amazon VPC, escolha **NAT Gateways **e, em seguida, escolha** Create NAT Gateway**.<br />2. Insira `nat-one`** **como o nome do gateway NAT.** **<br />3. Selecione a `public-one`** **como a sub-rede na qual o gateway NAT deve ser criado.** **<br />4. Em **Tipo de conectividade**, escolha **Público**.<br />5. Em **ID de alocação do IP elástico**, escolha o ID do endereço IP elástico que você criou anteriormente e o associe ao gateway NAT.<br />6. Escolha **Criar um gateway NAT**. | Administrador da AWS | 
| Crie o segundo gateway NAT. | 1. No console do Amazon VPC, escolha **NAT Gateways **e, em seguida, escolha** Create NAT Gateway**.<br />2. Insira `nat-two`** **como o nome do gateway NAT.** **<br />3. Selecione a** **sub-rede `public-two` na qual o gateway NAT deve ser criado.<br />4. Em **Tipo de conectividade**, escolha **Público**.<br />5. Em **ID de alocação do IP elástico**, escolha o ID do endereço IP elástico que você criou anteriormente e associe ao gateway NAT.<br />6. Escolha **Criar um gateway NAT**. | Administrador da AWS | 

### Crie tabelas de rotas para suas sub-redes públicas e privadas
<a name="create-route-tables-for-your-public-and-private-subnets"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie a tabela de rotas para a sub-rede pública. | 1. No console do Amazon VPC, escolha **Tabela de rotas** e, em seguida, escolha **Criar tabela de rotas**.<br />2. Insira `public-one-subnet`** **como nome da tabela de rotas e escolha **Criar tabela de rotas**.<br />3. Escolha a tabela de rotas `public-one-subnet`, escolha **Editar rotas** e, em seguida, escolha **Adicionar rota**.<br />4. Especifique `0.0.0.0`** **na caixa **Destino** e, em seguida, selecione a ID do gateway da internet na lista **Destino**.<br />5. Na guia **Associações de sub-rede**, escolha **Editar associações de sub-rede**, marque a caixa de seleção da sub-rede `public-one`** **com o `10.0.0.0/28`** **intervalo CIDR e, em seguida, escolha **Salvar associações**.<br />6. Escolha **Salvar alterações**. | Administrador da AWS | 
| Crie a tabela de rotas para a sub-rede pública dois. | 1. No console do Amazon VPC, escolha **Tabela de rotas** e, em seguida, escolha **Criar tabela de rotas**.<br />2. Insira `public-two-subnet`** **como nome da tabela de rotas e escolha **Criar tabela de rotas**.<br />3. Escolha a** **tabela de rotas `public-two-subnet`, escolha **Editar rotas** e, em seguida, escolha **Adicionar rota**.<br />4. Especifique `0.0.0.0`** **na caixa **Destino** e, em seguida, selecione a ID do gateway da internet na lista **Destino**.<br />5. Na guia **Associações de sub-rede**, escolha **Editar associações de sub-rede**, marque a `public-two`** **sub-rede com o `10.0.0.16/28`** **intervalo CIDR e, em seguida, escolha **Salvar associações**.<br />6. Escolha **Salvar alterações**. | Administrador da AWS | 
| Crie a tabela de rotas para a sub-rede privada-um. | 1. No console do Amazon VPC, escolha **Tabela de rotas** e, em seguida, escolha **Criar tabela de rotas**.<br />2. Insira `private-one-subnet`** **como nome da tabela de rotas e escolha **Criar tabela de rotas**.<br />3. Escolha a** **tabela de rotas `private-one-subnet`, escolha **Editar rotas** e, em seguida, escolha **Adicionar rota**.<br />4. Especifique `0.0.0.0`** **na caixa **Destino** e, em seguida, selecione o gateway NAT localizado na sub-rede `public-one` na lista do **Destino**.<br />5. Na guia **Associações de sub-rede**, escolha **Editar associações de sub-rede**, marque a `10.0.0.32/28`**sub-rede `private-one` com o intervalo CIDR ** e, em seguida, escolha **Salvar associações**.<br />6. Escolha **Salvar alterações**. | Administrador da AWS | 
| Crie a tabela de rotas para a sub-rede privada. | 1. No console do Amazon VPC, escolha **Tabela de rotas** e, em seguida, escolha **Criar tabela de rotas**.<br />2. Insira `private-two-subnet`** **como nome da tabela de rotas e escolha **Criar tabela de rotas**.<br />3. Escolha a** **tabela de rotas `private-two-subnet`, escolha **Editar rotas** e, em seguida, escolha **Adicionar rota**.<br />4. Especifique `0.0.0.0`** **na caixa **Destino** e, em seguida, selecione o gateway NAT localizado na sub-rede `public-two` na lista do **Destino**.<br />5. Na guia **Associações de sub-rede**, escolha **Editar associações de sub-rede**, marque a** **sub-rede `private-two` com o intervalo CIDR `10.0.0.64/28` e, em seguida, escolha **Salvar associações**.<br />6. Escolha **Salvar alterações**. | Administrador da AWS | 

### Crie a função do Lambda, adicione-a à VPC e teste a solução
<a name="create-the-lambda-function-add-it-to-the-vpc-and-test-the-solution"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma nova função do Lambda. | 1. Abra o console do AWS Lambda e escolha **Criar função**.** **<br />2. Em **Informações básicas**, insira `Lambda test` em **Nome da função** e escolha o idioma de sua preferência em **Runtime**.**  **<br />3. Escolha a opção **Criar função**. | Administrador da AWS | 
| Adicione a função do Lambda ao seu VPC. | 1. Abra a página **Funções** do console do AWS Lambda, escolha a função que você criou anteriormente. <br />2. Escolha **Configuration (Configuração)** e, em seguida, escolha **VPC**.<br />3. Escolha **Editar** e, em seguida, escolha `Lambda VPC`**** as duas sub-redes privadas.<br />4. Escolha **Grupo de segurança padrão **para fins de teste e, em seguida, escolha **Salvar**. | Administrador da AWS | 
| Escreva o código para chamar um serviço externo. | 1. Na linguagem de programação de sua escolha, escreva um código para chamar um serviço externo que retorna seu endereço IP.<br />2. Verifique se o endereço IP retornado corresponde a um dos seus endereços IP elásticos. | Administrador da AWS | 

## Recursos relacionados
<a name="generate-a-static-outbound-ip-address-using-a-lambda-function-amazon-vpc-and-a-serverless-architecture-resources"></a>
+ [Configurar uma função do Lambda para acessar recursos em uma VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html)