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 VPC-connected fluxos de trabalho
Quando você conecta uma AWS HealthOmics execução a uma VPC, a execução só pode acessar os recursos disponíveis nessa VPC. Para dar à sua execução acesso à Internet pública ou a 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 VPC-connected corridas. Para obter informações sobre como conectar execuções a uma VPC, consulteConectando HealthOmics fluxos de trabalho a uma VPC.
Importante
Conectar uma execução a uma sub-rede pública não dá a ela acesso à Internet ou um endereço IP público. Sempre use sub-redes privadas com rotas de gateway NAT para corridas que exigem conectividade com a Internet.
Tópicos
Configurando uma VPC com acesso à Internet
Para dar às suas VPC-connected corridas 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
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.
| Região | Nome da zona de disponibilidade | ID da zona de disponibilidade |
|---|---|---|
| us-west-2 | us-west-2a | usw2-az2 |
| us-west-2b | usw2-az1 | |
| us-west-2c | usw2-az3 | |
| us-west-2d | usw2-az4 | |
| us-east-1 | us-east-1a | use1-az4 |
| us-east-1b | use1-az6 | |
| us-east-1c | use1-az1 | |
| us-east-1d | use1-az2 | |
| us-east-1f | use1-az5 | |
| eu-west-1 | eu-west-1a | euw1-az2 |
| eu-west-1b | euw1-az3 | |
| eu-west-1c | euw1-az1 | |
| eu-central-1 | eu-central-1a | euc1-az2 |
| eu-central-1b | euc1-az3 | |
| eu-central-1c | euc1-az1 | |
| eu-west-2 | eu-west-2a | euw2-az2 |
| eu-west-2b | euw2-az3 | |
| eu-west-2c | euw2-az1 | |
| ap-southeast-1 | ap-sudeste-1a | apse1-az2 |
| ap-sudeste-1b | apse1-az1 | |
| ap-sudeste-1c | apse1-az3 | |
| il-central-1 | il-central-1a | ilc1-az1 |
| il-central-1b | ilc1-az2 | |
| il-central-1c | ilc1-az3 | |
| ap-northeast-2 | ap-nordeste-2a | apne2-az1 |
| ap-nordeste-2b | apne2-az2 | |
| ap-nordeste-2c | apne2-az3 | |
| ap-northeast-1 | ap-northeast-1a | apne1-az4 |
| ap-northeast-1c | apne1-az1 | |
| ap-northeast-1d | apne1-az2 | |
| us-east-2 | us-east-2a | use2-az1 |
| us-east-2b | use2-az2 | |
| us-east-2c | use2-az3 |
-
No console do Amazon VPC, escolha Create VPC.
-
Selecione VPC e muito mais para criar automaticamente uma VPC com sub-redes públicas e privadas.
-
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) development/testing
Endpoints VPC: endpoint do S3 Gateway (opcional — o tráfego na região do Amazon S3 é roteado pela VPC do serviço 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.
Endpoints VPC para AWS serviços
Você pode configurar endpoints de VPC 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.
Importante
Se sua definição de fluxo de trabalho precisar acessar AWS serviços (como consultas do Amazon Athena, operações do Amazon DynamoDB ou outras chamadas de API), você deverá garantir que os endpoints de VPC necessários estejam configurados em sua VPC. Sem os endpoints apropriados, seu fluxo de trabalho pode falhar com erros de autenticação ou conectividade.
nota
In-Region Por padrão, o tráfego do Amazon S3 é roteado pelo HealthOmics serviço VPC. Se você configurar os endpoints da interface Amazon S3, em vez disso, o tráfego será roteado pela sua VPC. Recomendamos o uso de endpoints de gateway Amazon S3 para melhor desempenho e otimização de custos. Para obter mais informações, consulte Endpoints de gateway para Amazon S3 no AWS PrivateLink Guia.
A tabela a seguir lista os endpoints VPC comumente usados para HealthOmics execuções:
| Serviço | Endpoint type | Nome do endpoint |
|---|---|---|
| Amazon S3 | Gateway | com.amazonas. region.s3 |
| Tabelas do Amazon S3 | Interface | com.amazonas. regiontabelas.s3 |
| Amazon ECR (API) | Interface | com.amazonas. region.ecr.api |
| Amazon ECR (Docker) | Interface | com.amazonas. region.ecr.dkr |
| SSM | Interface | com.amazonas. region.ssm |
| CloudWatch Registros | Interface | com.amazonas. region.registros |
| Amazon Athena | Interface | com.amazonas. region.atena |
A lista completa de serviços que você pode acessar por meio de AWS PrivateLink endpoints pode ser encontrada em AWS serviços que se integram com AWS PrivateLink. Para obter instruções detalhadas de configuração do endpoint, consulte Acesse AWS os serviços por meio AWS PrivateLink do AWS PrivateLink Guia.
Requisitos do NAT Gateway
Para corridas que exigem acesso público à Internet:
O gateway NAT deve ser implantado em uma sub-rede pública
A sub-rede pública deve ter uma rota para um gateway da Internet
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 endpoints VPC para acesso ao AWS serviço em vez de roteamento por meio do NAT Gateway.
Configuração do security group
Configure seus grupos de segurança para permitir o tráfego de saída para os destinos que suas corridas precisam acessar:
Acesso público à Internet — Permita 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.
On-premises recursos — 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 na Internet |
Configuração da tabela de rotas
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) | Alvo |
|---|---|
| 10.0.0. 0/16 | local |
| 0.0.0. 0/0 | nat-xxxxxxxxx |
Para acessar recursos locais, configure rotas para um gateway ou gateway privado virtual.
Permissões do IAM para AWS serviços
Quando suas tarefas de fluxo de trabalho acessam AWS serviços como Amazon Athena, AWS Glue ou Amazon DynamoDB no modo de rede VPC, você deve adicionar as permissões necessárias à função de serviço que você passa para a API. StartRun Sem essas permissões, suas tarefas de fluxo de trabalho falharão AccessDeniedException ou apresentarão UnauthorizedException erros.
Importante
As permissões da função de serviço são separadas da configuração da rede VPC. Mesmo com endpoints de VPC e grupos de segurança configurados corretamente, seu fluxo de trabalho falhará se a função de serviço não tiver as permissões de IAM necessárias.
Se seu fluxo de trabalho falhar com erros de permissão, verifique os CloudWatch registros de registros para a execução do fluxo de trabalho. As mensagens de erro comuns incluem AccessDeniedException: You are not authorized to perform: action on the resource (a função de serviço não tem a permissão necessária do IAM) ou UnrecognizedClientException: The security
token included in the request is invalid (a política de confiança da função de serviço pode estar configurada incorretamente ou o ARN da função passado StartRun está incorreto).
Permissões de serviço comuns
Os exemplos a seguir mostram as permissões do IAM para AWS serviços comumente usados nos fluxos de trabalho do modo VPC. Adicione essas permissões à sua política de função de serviço com base nos serviços que seu fluxo de trabalho acessa.
exemplo permissões
Para fluxos de trabalho que executam consultas:
{ "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution" ], "Resource": "arn:aws:athena:region:account-id:workgroup/workgroup-name" }
exemplo AWS Glue Permissões do catálogo de dados
Para fluxos de trabalho que acessam AWS Glue bancos de dados e tabelas (normalmente usados com o Amazon Athena):
{ "Effect": "Allow", "Action": [ "glue:GetDatabase", "glue:GetTable", "glue:GetPartitions", "glue:CreateTable", "glue:UpdateTable" ], "Resource": [ "arn:aws:glue:region:account-id:catalog", "arn:aws:glue:region:account-id:database/database-name", "arn:aws:glue:region:account-id:table/database-name/*" ] }
nota
Se você usa AWS Lake Formation para gerenciar permissões para seu Catálogo de AWS Glue Dados, também deve conceder as permissões apropriadas de Lake Formation. Para obter mais informações, consulte Permissões de formação de lagos no Guia do AWS Lake Formation desenvolvedor.
exemplo Permissões do DynamoDB
Para fluxos de trabalho que leem ou gravam em tabelas do DynamoDB:
{ "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:region:account-id:table/table-name" }
exemplo Permissões de tabelas do Amazon S3
Para fluxos de trabalho que leem ou gravam em tabelas do Amazon S3:
{ "Effect": "Allow", "Action": [ "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": "arn:aws:s3tables:region:account-id:bucket/bucket-name/table/table-id" }
nota
O Amazon S3 Tables usa um endpoint diferente do Amazon S3. Você deve configurar um VPC endpoint para o Amazon S3 Tables e garantir que seu grupo de segurança permita tráfego HTTPS de saída (porta 443) para o serviço Amazon S3 Tables.
Testando a conectividade VPC
Antes de executar fluxos de trabalho de produção, valide se sua configuração de VPC permite a conectividade com os serviços externos necessários.
Crie um fluxo de trabalho de teste
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
aws omics start-run \ --workflow-idtest-workflow-id\ --role-arnrole-arn\ --output-uri s3://bucket-name/test-outputs/ \ --networking-mode VPC \ --configuration-nameconfiguration-name\ --parameters file://test-parameters.json
Verificar os resultados
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 o tráfego de saída para as portas e destinos necessários.
As tabelas de roteamento direcionam o tráfego para um gateway NAT para acesso à Internet.
O serviço externo pode ser acessado pela sua rede.
ENIs suficientes estão disponíveis 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 contínuo. Para fluxos de trabalho com requisitos imediatos de alto rendimento, entre em contato com o Suporte. AWS
Exemplos
Acessando dados do NCBI com autenticação de API
Este exemplo demonstra como acessar dados do NCBI usando a API NCBI Datasets 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 os 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 enfrentar falhas de execução devido a erros de limitação durante o pico de uso. Incentivamos os usuários a obter sua própria chave de API do NCBI e a utilizar APIs especializadas para permitir maior simultaneidade e uma melhor experiência de desenvolvimento.
Para obter sua chave de API do NCBI, visite a documentação das chaves da API do NCBI.
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 realO fluxo de trabalho usa HTTPS para acessar a API de conjuntos de dados do NCBI
A chave da 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 as chaves da API do NCBI e os limites de taxa, consulte a documentação da API de conjuntos de dados do NCBI.
Práticas recomendadas
Use endpoints de VPC para AWS serviços. Configure endpoints de 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 Endpoints VPC para AWS serviços.
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.
Planeje zonas de disponibilidade. Certifique-se de que suas sub-redes abranjam as zonas de disponibilidade em que HealthOmics opera para dar suporte ao posicionamento do fluxo de trabalho.
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.