

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

# Acesso à Internet para fluxos de trabalho conectados ao VPC
<a name="workflows-vpc-internet"></a>

Quando você conecta uma AWS HealthOmics execução a uma VPC, a execução só pode acessar os recursos disponíveis dentro dessa VPC. Para dar à sua execução acesso à Internet pública ou aos AWS serviços fora da VPC, você deve configurar sua VPC com os recursos de rede apropriados.

Este tópico descreve como configurar sua VPC para fornecer acesso à Internet e conectividade eficiente aos AWS serviços para suas execuções conectadas à VPC. Para obter informações sobre como conectar execuções a uma VPC, consulte. [Conectando HealthOmics fluxos de trabalho a uma VPC](workflows-vpc-networking.md)

**Importante**  
Conectar uma execução a uma sub-rede pública não lhe dá acesso à Internet nem a um endereço IP público. Sempre use sub-redes privadas com rotas do NAT Gateway para execuções que exijam conectividade com a Internet.

**Topics**
+ [Configurando uma VPC com acesso à Internet](#vpc-internet-setup)
+ [VPC endpoints para serviços AWS](#vpc-endpoints)
+ [Configuração do security group](#vpc-internet-security-groups)
+ [Configuração da tabela de rotas](#vpc-internet-route-tables)
+ [Testando a conectividade VPC](#vpc-testing-connectivity)
+ [Exemplos](#vpc-internet-examples)
+ [Práticas recomendadas](#vpc-internet-best-practices)

## Configurando uma VPC com acesso à Internet
<a name="vpc-internet-setup"></a>

Para dar às execuções conectadas à VPC acesso à Internet, crie uma VPC com sub-redes privadas que roteiam o tráfego de saída por meio de um gateway NAT.

Essa configuração fornece:
+ Sub-redes privadas para HealthOmics tarefas de fluxo de trabalho
+ Sub-redes públicas com gateways NAT para acesso externo à Internet

### Regiões e zonas de disponibilidade
<a name="vpc-internet-regions-azs"></a>

HealthOmics Os fluxos de trabalho operam nas seguintes regiões e zonas de disponibilidade. Ao criar sua VPC, certifique-se de que suas sub-redes estejam em uma ou mais dessas zonas de disponibilidade.



- **us-west-2**
  - **Nome da zona de disponibilidade:** us-west-2a / **ID da zona de disponibilidade:** usw2-az2
  - **Nome da zona de disponibilidade:** us-west-2b / **ID da zona de disponibilidade:** usw2-az1
  - **Nome da zona de disponibilidade:** us-west-2c / **ID da zona de disponibilidade:** usw2-az3

- **us-east-1**
  - **Nome da zona de disponibilidade:** us-east-1a / **ID da zona de disponibilidade:** use1-az4
  - **Nome da zona de disponibilidade:** us-east-1b / **ID da zona de disponibilidade:** use1-az6
  - **Nome da zona de disponibilidade:** us-east-1c / **ID da zona de disponibilidade:** use1-az1
  - **Nome da zona de disponibilidade:** us-east-1d / **ID da zona de disponibilidade:** use1-az2

- **eu-west-1**
  - **Nome da zona de disponibilidade:** eu-west-1a / **ID da zona de disponibilidade:** euw1-az2
  - **Nome da zona de disponibilidade:** eu-west-1b / **ID da zona de disponibilidade:** euw1-az3
  - **Nome da zona de disponibilidade:** eu-west-1c / **ID da zona de disponibilidade:** euw1-az1

- **eu-central-1**
  - **Nome da zona de disponibilidade:** eu-central-1a / **ID da zona de disponibilidade:** euc1-az2
  - **Nome da zona de disponibilidade:** eu-central-1b / **ID da zona de disponibilidade:** euc1-az3
  - **Nome da zona de disponibilidade:** eu-central-1c / **ID da zona de disponibilidade:** euc1-az1

- **eu-west-2**
  - **Nome da zona de disponibilidade:** eu-west-2a / **ID da zona de disponibilidade:** euw2-az2
  - **Nome da zona de disponibilidade:** eu-west-2b / **ID da zona de disponibilidade:** euw2-az3
  - **Nome da zona de disponibilidade:** eu-west-2c / **ID da zona de disponibilidade:** euw2-az1

- **ap-southeast-1**
  - **Nome da zona de disponibilidade:** ap-sudeste-1a / **ID da zona de disponibilidade:** apse1-az2
  - **Nome da zona de disponibilidade:** ap-sudeste-1b / **ID da zona de disponibilidade:** apse1-az1
  - **Nome da zona de disponibilidade:** ap-sudeste-1c / **ID da zona de disponibilidade:** apse1-az3

- **il-central-1**
  - **Nome da zona de disponibilidade:** il central-1a / **ID da zona de disponibilidade:** ilc1-az1
  - **Nome da zona de disponibilidade:** il central-1b / **ID da zona de disponibilidade:** ilc1-az2
  - **Nome da zona de disponibilidade:** il-central-1c / **ID da zona de disponibilidade:** ilc1-az3

- **ap-northeast-2**
  - **Nome da zona de disponibilidade:** ap-nordeste-2a / **ID da zona de disponibilidade:** apne2-az1
  - **Nome da zona de disponibilidade:** ap-nordeste-2b / **ID da zona de disponibilidade:** apne2-az2
  - **Nome da zona de disponibilidade:** ap-nordeste-2c / **ID da zona de disponibilidade:** apne2-az3



1. No console da Amazon VPC, escolha Create **VPC**.

1. Selecione **VPC e muito mais** para criar automaticamente uma VPC com sub-redes públicas e privadas.

1. Configure as seguintes opções:
   + **Número de zonas de disponibilidade**: 2 ou mais
   + **Número de sub-redes públicas**: uma por AZ. Neste exemplo, 2
   + **Número de sub-redes privadas**: uma por AZ. Neste exemplo, 2
   + **Gateways NAT**: 1 por AZ (para produção) ou 1 (para desenvolvimento/teste)
   + **Endpoints VPC: endpoint** do S3 Gateway (opcional — o tráfego do Amazon S3 na região é roteado por meio do serviço VPC por padrão) HealthOmics 

Ao criar sua configuração de HealthOmics VPC, especifique as sub-redes privadas. As execuções usam o gateway NAT na sub-rede pública para acessar a Internet.

## VPC endpoints para serviços AWS
<a name="vpc-endpoints"></a>

Você pode configurar VPC endpoints para permitir que execuções acessem AWS serviços sem atravessar a Internet pública. Isso melhora a segurança e pode reduzir os custos de transferência de dados.

**nota**  
O tráfego regional do Amazon S3 é roteado pelo HealthOmics serviço VPC por padrão. Se você configurar endpoints de interface do Amazon S3, o tráfego será roteado por meio de sua VPC. Recomendamos o uso de endpoints de gateway Amazon S3 para obter melhor desempenho e otimização de custos. *Para obter mais informações, consulte [Endpoints de gateway para Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) S3 no AWS PrivateLink Guia.*

A tabela a seguir lista os endpoints VPC mais usados para execuções: HealthOmics 


| Serviço | Endpoint type | Nome do endpoint | 
| --- | --- | --- | 
| Amazon S3 | Gateway | com.amazonaws. {{region}}.s3 | 
| Amazon ECR (API) | Interface | com.amazonaws. {{region}}.ecr.api | 
| Amazon ECR (Docker) | Interface | com.amazonaws. {{region}}.ecr.dkr | 
| SSM | Interface | com.amazonaws. {{region}}.sms | 
| CloudWatch Registros | Interface | com.amazonaws. {{region}}.registros | 

### Requisitos do NAT Gateway
<a name="vpc-nat-gateway-requirements"></a>

Para corridas que exigem acesso público à Internet:
+ O NAT Gateway deve ser implantado em uma sub-rede pública
+ A sub-rede pública deve ter uma rota para um Internet Gateway
+ As sub-redes privadas (onde as execuções são executadas) devem ter rotas para o NAT Gateway

**nota**  
Os gateways NAT incorrem em cobranças horárias e taxas de processamento de dados. Para otimizar os custos, considere usar VPC endpoints para acesso ao AWS serviço em vez de rotear por meio do NAT Gateway.

## Configuração do security group
<a name="vpc-internet-security-groups"></a>

Configure seus grupos de segurança para permitir o tráfego de saída para os destinos que suas execuções precisam acessar:
+ **Acesso público à Internet** — Permitir tráfego HTTPS de saída (porta 443). Adicione regras para outros protocolos conforme necessário, como HTTP (porta 80).
+ **Serviços específicos** — configure regras com base em seus requisitos.
+ **Recursos locais** — Permita tráfego para seus intervalos de VPN ou CIDR.

O exemplo a seguir mostra uma regra de grupo de segurança para acesso público à Internet:


| Tipo | Protocolo | Intervalo de portas | Destino | Description | 
| --- | --- | --- | --- | --- | 
| HTTPS | TCP | 443 | 0.0.0.0/0 | Permitir HTTPS para a internet | 

## Configuração da tabela de rotas
<a name="vpc-internet-route-tables"></a>

Certifique-se de que suas sub-redes privadas tenham entradas na tabela de rotas que direcionem o tráfego vinculado à Internet para um gateway NAT:


| Destination (Destino) | Destino | 
| --- | --- | 
| 10.0.0.0/16 | local | 
| 0.0.0.0/0 | nat-xxxxxxxx | 

Para acessar recursos locais, configure rotas para um gateway ou gateway privado virtual.

## Testando a conectividade VPC
<a name="vpc-testing-connectivity"></a>

Antes de executar fluxos de trabalho de produção, valide se sua configuração de VPC permite conectividade com os serviços externos necessários.

### Crie um fluxo de trabalho de teste
<a name="vpc-test-workflow"></a>

Crie um fluxo de trabalho simples que teste a conectividade com seu serviço externo. Por exemplo, crie um fluxo de trabalho que tente uma conexão TCP com um endpoint de serviço de destino.

### Execute o teste
<a name="vpc-run-test"></a>

```
aws omics start-run \
  --workflow-id {{test-workflow-id}} \
  --role-arn {{role-arn}} \
  --output-uri s3://{{bucket-name}}/test-outputs/ \
  --networking-mode VPC \
  --configuration-name {{configuration-name}} \
  --parameters file://test-parameters.json
```

### Verificar os resultados
<a name="vpc-verify-results"></a>

Verifique a saída do fluxo de trabalho para confirmar a conectividade bem-sucedida:

```
{
  "connectivity_test.result": "Testing connection to external service...\nSUCCESS: Connection successful!\nTest completed"
}
```

Se o teste falhar, verifique o seguinte:
+ As regras do grupo de segurança permitem tráfego de saída para as portas e destinos necessários.
+ As tabelas de rotas direcionam o tráfego para um gateway NAT para acesso à Internet.
+ O serviço externo pode ser acessado pela sua rede.
+ O suficiente ENIs está disponível em sua conta.
+ O gateway NAT está em uma sub-rede pública com uma rota para um gateway da Internet.

**nota**  
A taxa de transferência da rede começa em 10 Gbps por ENI e aumenta até 100 Gbps em um período de 60 minutos com tráfego sustentado. Para fluxos de trabalho com requisitos imediatos de alto rendimento, entre em contato com o Support. AWS 

## Exemplos
<a name="vpc-internet-examples"></a>

### Acessando dados do NCBI com autenticação de API
<a name="vpc-example-ncbi"></a>

Este exemplo demonstra como acessar dados do NCBI usando a API de conjuntos de dados do NCBI com autenticação.

**Melhores práticas para acessar os recursos do NCBI**  
Os clientes devem usar a API REST sempre que possível e utilizar uma chave de API fornecida pelo NCBI. As solicitações para acessar recursos do NCBI, como solicitações HTTP e FTP para dados públicos, virão HealthOmics e serão limitadas de acordo com a taxa de terceiros definida pelo NCBI. Você pode ter falhas de execução devido a erros de limitação durante o pico de uso. Incentivamos os usuários a obterem sua própria chave de API NCBI e a utilizarem ferramentas especializadas APIs para permitir maior simultaneidade e uma melhor experiência de desenvolvimento.

Para obter sua chave de API NCBI, visite a documentação de chaves de API [NCBI](https://www.ncbi.nlm.nih.gov/datasets/docs/v2/api/api-keys/).

**Exemplo de definição de fluxo de trabalho:**

```
version 1.0
#WORKFLOW DEFINITION

# Meant to be used as integration test for public internet access via VPC tunnel
workflow TestFlow {
    input {
        String ncbi_api_url = "https://api.ncbi.nlm.nih.gov/datasets/v2/gene/accession/NM_021803.4?api_key=<YOUR_API_KEY>"
    }

    call DataProcessTask{
        input:
            ncbi_api_url = ncbi_api_url,
    }

    output {
        File output_file = DataProcessTask.output_file
    }

}

#Task Definitions
task DataProcessTask {
    input {
        String ncbi_api_url
    }

    command <<<
        set -eu
        # Download file from NCBI Datasets API with API key
        curl -fsSL "~{ncbi_api_url}" -o gene_data.json

        # Add data processing task here
        cat gene_data.json > processed_data.json

        # Echo the content to output file
        cat processed_data.json > outfile.txt
    >>>

    output {
        File output_file = "outfile.txt"
    }
}
```

**Pontos-chave:**
+ `<YOUR_API_KEY>`Substitua por sua chave de API NCBI real
+ O fluxo de trabalho usa HTTPS para acessar a API de conjuntos de dados NCBI
+ A chave de API é passada como um parâmetro de URL
+ Essa abordagem fornece limites de taxa mais altos (10 solicitações por segundo) em comparação com o acesso não autenticado (5 solicitações por segundo)

Para obter mais informações sobre chaves e limites de taxa da API NCBI, consulte a documentação da API [NCBI](https://www.ncbi.nlm.nih.gov/datasets/docs/v2/api/api-keys/) Datasets.

## Práticas recomendadas
<a name="vpc-internet-best-practices"></a>

1. **Use endpoints VPC para serviços. AWS ** Configure endpoints VPC para Amazon S3, Amazon ECR e outros AWS serviços para reduzir os custos do gateway NAT e melhorar o desempenho. Para obter mais informações, consulte [VPC endpoints para serviços AWS](#vpc-endpoints).

1. **Monitore os custos da rede.** A rede VPC gera custos com gateways NAT, transferência de dados e. ENIs Monitore seu uso com o AWS Cost Explorer.

1. **Planeje as zonas de disponibilidade.** Certifique-se de que suas sub-redes abranjam as zonas de disponibilidade onde HealthOmics opera para apoiar o posicionamento do fluxo de trabalho.

1. **Use gateways NAT em cada AZ.** Para cargas de trabalho de produção, implante um gateway NAT em cada zona de disponibilidade para fornecer redundância.