View a markdown version of this page

Internetzugang für VPC-connected Workflows - AWS HealthOmics

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Internetzugang für VPC-connected Workflows

Wenn Sie einen AWS HealthOmics Run mit einer VPC verbinden, kann der Run nur auf Ressourcen zugreifen, die in dieser VPC verfügbar sind. Um Ihrem Run Zugriff auf das öffentliche Internet oder AWS Dienste außerhalb der VPC zu gewähren, müssen Sie Ihre VPC mit den entsprechenden Netzwerkressourcen konfigurieren.

In diesem Thema wird beschrieben, wie Sie Ihre VPC einrichten, um Internetzugang und effiziente Konnektivität zu AWS Diensten für Ihre VPC-connected Läufe bereitzustellen. Hinweise zum Verbinden von Läufen mit einer VPC finden Sie unterHealthOmics Workflows mit einer VPC verbinden.

Wichtig

Wenn Sie einen Lauf mit einem öffentlichen Subnetz verbinden, erhält er weder Internetzugang noch eine öffentliche IP-Adresse. Verwenden Sie immer private Subnetze mit NAT-Gateway-Routen für Läufe, die eine Internetverbindung erfordern.

Einrichtung einer VPC mit Internetzugang

Um Ihren VPC-connected Läufen Zugriff auf das Internet zu gewähren, erstellen Sie eine VPC mit privaten Subnetzen, die ausgehenden Datenverkehr über ein NAT-Gateway weiterleiten.

Diese Konfiguration bietet:

  • Private Subnetze für HealthOmics Workflow-Aufgaben

  • Öffentliche Subnetze mit NAT-Gateways für ausgehenden Internetzugang

Unterstützte Regionen und Availability Zones

HealthOmics Workflows ist in den folgenden Regionen und Availability Zones verfügbar. Stellen Sie beim Erstellen Ihrer VPC sicher, dass sich Ihre Subnetze in einer oder mehreren dieser Availability Zones befinden.

Region Name der Verfügbarkeitszone Availability Zone-ID
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-ost-1a use1-az4
us-ost-1b use1-az6
us-ost-1c use1-az1
us-ost-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-Südost-1a apse1-az2
ap-Südost-1b apse1-az1
ap-Südost-1c apse1-az3
il-central-1 il-zentral-1a ilc1-az1
il-Central-1 b ilc1-az2
il-Central-1C ilc1-az3
ap-northeast-2 ap-Nordost-2a apne2-az1
ap-Nordost-2b apne2-az2
ap-Nordost-2c apne2-az3
  1. Wählen Sie in der Amazon VPC-Konsole Create VPC aus.

  2. Wählen Sie VPC und mehr, um automatisch eine VPC mit öffentlichen und privaten Subnetzen zu erstellen.

  3. Konfigurieren Sie die folgenden Einstellungen:

    • Anzahl der Availability Zones: 2 oder mehr

    • Anzahl der öffentlichen Subnetze: Eines pro AZ. In diesem Beispiel 2

    • Anzahl der privaten Subnetze: Eines pro AZ. In diesem Beispiel 2

    • NAT-Gateways: 1 pro AZ (für Produktion) oder 1 (für development/testing)

    • VPC-Endpunkte: S3-Gateway-Endpunkt (optional — Amazon S3 S3-Datenverkehr innerhalb der Region wird standardmäßig über die HealthOmics Service-VPC geleitet)

Wenn Sie Ihre HealthOmics VPC-Konfiguration erstellen, geben Sie die privaten Subnetze an. Die Läufe verwenden das NAT-Gateway im öffentlichen Subnetz, um das Internet zu erreichen.

VPC-Endpunkte für Dienste AWS

Sie können VPC-Endpunkte so konfigurieren, dass Läufe auf AWS Dienste zugreifen können, ohne das öffentliche Internet zu durchqueren. Dies verbessert die Sicherheit und kann die Kosten für die Datenübertragung senken.

Wichtig

Wenn Ihre Workflow-Definition auf AWS Services zugreifen muss (wie Amazon Athena Athena-Abfragen, Amazon DynamoDB DynamoDB-Operationen oder andere API-Aufrufe), müssen Sie sicherstellen, dass die erforderlichen VPC-Endpunkte in Ihrer VPC konfiguriert sind. Ohne die entsprechenden Endpunkte kann Ihr Workflow mit Authentifizierungs- oder Verbindungsfehlern fehlschlagen.

Anmerkung

In-Region Amazon S3 S3-Verkehr wird standardmäßig über die HealthOmics Service-VPC geleitet. Wenn Sie Amazon S3 S3-Schnittstellenendpunkte konfigurieren, wird der Datenverkehr stattdessen über Ihre VPC geleitet. Wir empfehlen die Verwendung von Amazon S3 S3-Gateway-Endpunkten für optimale Leistung und Kostenoptimierung. Weitere Informationen finden Sie im AWS PrivateLink Handbuch unter Gateway-Endpunkte für Amazon S3.

In der folgenden Tabelle sind häufig verwendete VPC-Endpoints für HealthOmics Läufe aufgeführt:

Service Endpunkttyp Endpoint name (Endpunktname)
Amazon S3 Gateway com.amazonaws. region. 3
Amazon S3 Tables Schnittstelle com.amazonaws. region.s3-Tabellen
Amazon ECR (API) Schnittstelle com.amazonaws. region.ecr.api
Amazon ECR (Docker) Schnittstelle com.amazonaws. region.ecr.dkr
SSM Schnittstelle com.amazonaws. region.ssm
CloudWatch Logs Schnittstelle com.amazonaws. region.protokolle
Amazon Athena Schnittstelle com.amazonaws. region.Athena

Die vollständige Liste der Dienste, auf die Sie über AWS PrivateLink Endpunkte zugreifen können, finden Sie unter AWS Dienste, die sich integrieren lassen. AWS PrivateLink Eine ausführliche Anleitung zur Einrichtung von Endgeräten finden Sie unter Access AWS Services bis AWS PrivateLink im AWS PrivateLink Guide.

Anforderungen an das NAT-Gateway

Für Läufe, die einen öffentlichen Internetzugang erfordern:

  • NAT Gateway muss in einem öffentlichen Subnetz bereitgestellt werden

  • Das öffentliche Subnetz muss eine Route zu einem Internet Gateway haben

  • Private Subnetze (in denen Läufe ausgeführt werden) müssen über Routen zum NAT-Gateway verfügen

Anmerkung

Für NAT-Gateways fallen stündliche Gebühren und Datenverarbeitungsgebühren an. Zur Kostenoptimierung sollten Sie die Verwendung von VPC-Endpunkten für den AWS Servicezugriff in Betracht ziehen, anstatt das Routing über das NAT-Gateway durchzuführen.

Sicherheitsgruppenkonfiguration

Konfigurieren Sie Ihre Sicherheitsgruppen so, dass ausgehender Datenverkehr zu den Zielen zugelassen wird, auf die Ihre Läufe zugreifen müssen:

  • Öffentlicher Internetzugang — Erlaubt ausgehenden HTTPS-Verkehr (Port 443). Fügen Sie nach Bedarf Regeln für andere Protokolle hinzu, z. B. HTTP (Port 80).

  • Spezifische Dienste — Konfigurieren Sie Regeln auf der Grundlage Ihrer Anforderungen.

  • On-premises Ressourcen — Erlauben Sie Datenverkehr zu Ihren VPN- oder CIDR-Bereichen.

Das folgende Beispiel zeigt eine Sicherheitsgruppenregel für den öffentlichen Internetzugang:

Typ Protocol (Protokoll) Port-Bereich Ziel Description
HTTPS TCP 443 0.0.0. 0/0 HTTPS im Internet zulassen

Konfiguration der Routentabelle

Stellen Sie sicher, dass Ihre privaten Subnetze über Routing-Tabelleneinträge verfügen, die den internetgebundenen Datenverkehr an ein NAT-Gateway weiterleiten:

Bestimmungsort Target
10.0.0. 0/16 local
0,0.0. 0/0 nat-xxxxxxxxx

Für den Zugriff auf lokale Ressourcen konfigurieren Sie Routen zu einem virtuellen privaten Gateway oder Gateway.

IAM-Berechtigungen für Dienste AWS

Wenn Ihre Workflow-Aufgaben im VPC-Netzwerkmodus auf AWS Services wie Amazon Athena, AWS Glue oder Amazon DynamoDB zugreifen, müssen Sie der Servicerolle, die Sie an die API übergeben, die erforderlichen Berechtigungen hinzufügen. StartRun Ohne diese Berechtigungen schlagen Ihre Workflow-Aufgaben mit oder ohne Fehler fehl. AccessDeniedException UnauthorizedException

Wichtig

Die Berechtigungen für die Servicerolle sind von der VPC-Netzwerkkonfiguration getrennt. Selbst bei ordnungsgemäß konfigurierten VPC-Endpunkten und Sicherheitsgruppen schlägt Ihr Workflow fehl, wenn der Servicerolle die erforderlichen IAM-Berechtigungen fehlen.

Wenn Ihr Workflow aufgrund von Berechtigungsfehlern fehlschlägt, überprüfen Sie die CloudWatch Logs für Ihre Workflow-Ausführung. Zu den häufigsten Fehlermeldungen gehören AccessDeniedException: You are not authorized to perform: action on the resource (der Servicerolle fehlt die erforderliche IAM-Berechtigung) oder UnrecognizedClientException: The security token included in the request is invalid (die Vertrauensrichtlinie für die Servicerolle ist möglicherweise falsch konfiguriert oder der übergebene Rollen-ARN StartRun ist falsch).

Allgemeine Dienstberechtigungen

Die folgenden Beispiele zeigen IAM-Berechtigungen für häufig verwendete AWS Dienste in Workflows im VPC-Modus. Fügen Sie diese Berechtigungen Ihrer Servicerollenrichtlinie hinzu, je nachdem, auf welche Dienste Ihr Workflow zugreift.

Beispiel Berechtigungen

Für Workflows, die Abfragen ausführen:

{ "Effect": "Allow", "Action": [ "athena:StartQueryExecution", "athena:GetQueryExecution", "athena:GetQueryResults", "athena:StopQueryExecution" ], "Resource": "arn:aws:athena:region:account-id:workgroup/workgroup-name" }
Beispiel AWS Glue Berechtigungen für den Datenkatalog

Für Workflows, die auf AWS Glue Datenbanken und Tabellen zugreifen (häufig mit Amazon Athena verwendet):

{ "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/*" ] }
Anmerkung

Wenn Sie AWS Lake Formation Berechtigungen für Ihren AWS Glue Datenkatalog verwalten, müssen Sie auch die entsprechenden Lake Formation Formation-Berechtigungen erteilen. Weitere Informationen finden Sie unter Lake Formation Formation-Berechtigungen im AWS Lake Formation Entwicklerhandbuch.

Beispiel DynamoDB-Berechtigungen

Für Workflows, die aus DynamoDB-Tabellen lesen oder in DynamoDB-Tabellen schreiben:

{ "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:region:account-id:table/table-name" }
Beispiel Berechtigungen Amazon S3 S3-Tabellen

Für Workflows, die aus Amazon S3-Tabellen lesen oder in Amazon S3 S3-Tabellen schreiben:

{ "Effect": "Allow", "Action": [ "s3tables:GetTableData", "s3tables:PutTableData" ], "Resource": "arn:aws:s3tables:region:account-id:bucket/bucket-name/table/table-id" }
Anmerkung

Amazon S3 Tables verwendet einen anderen Endpunkt als Amazon S3. Sie müssen einen VPC-Endpunkt für Amazon S3-Tabellen konfigurieren und sicherstellen, dass Ihre Sicherheitsgruppe ausgehenden HTTPS-Verkehr (Port 443) zum Amazon S3 Tables-Service zulässt.

VPC-Konnektivität testen

Stellen Sie vor dem Ausführen von Produktionsworkflows sicher, dass Ihre VPC-Konfiguration Konnektivität zu den erforderlichen externen Diensten ermöglicht.

Erstellen Sie einen Test-Workflow

Erstellen Sie einen einfachen Workflow, der die Konnektivität zu Ihrem externen Dienst testet. Erstellen Sie beispielsweise einen Workflow, der versucht, eine TCP-Verbindung zu einem Zieldienstendpunkt herzustellen.

Führen Sie den Test aus

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

Überprüfen der Ergebnisse

Überprüfen Sie die Workflow-Ausgabe, um die erfolgreiche Verbindung zu bestätigen:

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

Wenn der Test fehlschlägt, überprüfen Sie Folgendes:

  • Sicherheitsgruppenregeln ermöglichen ausgehenden Datenverkehr zu den erforderlichen Ports und Zielen.

  • Routentabellen leiten den Datenverkehr an ein NAT-Gateway für den Internetzugang weiter.

  • Auf den externen Dienst kann von Ihrem Netzwerk aus zugegriffen werden.

  • In Ihrem Konto sind ausreichend ENIs verfügbar.

  • Das NAT-Gateway befindet sich in einem öffentlichen Subnetz mit einer Route zu einem Internet-Gateway.

Anmerkung

Der Netzwerkdurchsatz beginnt bei 10 Gbit/s pro ENI und steigt bei anhaltendem Verkehr über einen Zeitraum von 60 Minuten auf bis zu 100 Gbit/s. Für Workflows mit unmittelbaren Anforderungen an einen hohen Durchsatz wenden Sie sich bitte an den AWS Support.

Beispiele

Zugriff auf NCBI-Daten mit API-Authentifizierung

Dieses Beispiel zeigt, wie Sie mithilfe der NCBI Datasets API mit Authentifizierung auf NCBI-Daten zugreifen können.

Bewährte Methoden für den Zugriff auf NCBI-Ressourcen

Kunden sollten nach Möglichkeit die REST-API und einen von NCBI bereitgestellten API-Schlüssel verwenden. Anfragen für den Zugriff auf NCBI-Ressourcen, wie HTTP- und FTP-Anfragen für öffentliche Daten, kommen von Drittanbietern HealthOmics und werden entsprechend dem vom NCBI festgelegten Tarif gedrosselt. Bei hoher Auslastung kann es aufgrund von Drosselungsfehlern zu Ausführungsausfällen kommen. Wir empfehlen Benutzern, ihren eigenen NCBI-API-Schlüssel zu erwerben und spezielle APIs zu verwenden, um eine höhere Parallelität und ein besseres Entwicklungserlebnis zu ermöglichen.

Um Ihren NCBI-API-Schlüssel zu erhalten, besuchen Sie die Dokumentation zu den NCBI-API-Schlüsseln.

Beispiel für eine Workflow-Definition:

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

Die wichtigsten Punkte:

  • <YOUR_API_KEY>Ersetzen Sie ihn durch Ihren tatsächlichen NCBI-API-Schlüssel

  • Der Workflow verwendet HTTPS für den Zugriff auf die NCBI Datasets API

  • Der API-Schlüssel wird als URL-Parameter übergeben

  • Dieser Ansatz bietet höhere Ratenlimits (10 Anfragen pro Sekunde) im Vergleich zu einem nicht authentifizierten Zugriff (5 Anfragen pro Sekunde)

Weitere Informationen zu NCBI-API-Schlüsseln und Ratenbegrenzungen finden Sie in der NCBI Datasets API-Dokumentation.

Best Practices

  1. Verwenden Sie VPC-Endpunkte für AWS Dienste. Konfigurieren Sie VPC-Endpunkte für Amazon S3, Amazon ECR und andere AWS Services, um die Kosten für das NAT-Gateway zu senken und die Leistung zu verbessern. Weitere Informationen finden Sie unter VPC-Endpunkte für Dienste AWS.

  2. Überwachen Sie die Netzwerkkosten. Für VPC-Netzwerke fallen Kosten für NAT-Gateways, Datenübertragung und ENIs an. Überwachen Sie Ihre Nutzung mit AWS Cost Explorer.

  3. Plan für Availability Zones. Stellen Sie sicher, dass sich Ihre Subnetze über die Availability Zones erstrecken, in denen Sie arbeiten, HealthOmics um die Workflow-Platzierung zu unterstützen.

  4. Verwenden Sie NAT-Gateways in jeder AZ. Stellen Sie für Produktionsworkloads in jeder Availability Zone ein NAT-Gateway bereit, um Redundanz zu gewährleisten.