View a markdown version of this page

將 HealthOmics 工作流程連線至 VPC - AWS HealthOmics

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 HealthOmics 工作流程連線至 VPC

使用 Amazon Virtual Private Cloud (Amazon VPC),您可以在您定義的私有虛擬網路中啟動 AWS 資源。您可以將執行設定為使用 VPC 網路模式,讓 HealthOmics 工作流程存取 VPC 中的資源。啟用 VPC 聯網時,如果您的 VPC 已設定網際網路存取,則您的執行可以存取 VPC 中的資源,並透過公有網際網路連線至外部資源。

注意

每個 HealthOmics 工作流程執行都會在 HealthOmics 服務擁有和管理的 VPC 內執行。這些 VPCs會自動維護,客戶看不到。設定您的執行以存取 Amazon VPC 中的資源不會影響 HealthOmics 受管 VPC。

何時使用 VPC 網路

當您的執行需要下列項目時,請使用 VPC 聯網:

  • 透過網際網路存取公開可用的資料集 (例如 NIH 資料集、學術儲存庫)

  • 連線至第三方授權伺服器或外部 APIs

  • 從其他 AWS 區域中的 Amazon S3 儲存貯體讀取或寫入資料

  • 存取私有網路中的內部部署資源

  • 連線至 VPC 中的 AWS 資源

注意

當您將執行連線到 VPC 時,它只能存取該 VPC 中可用的資源。若要授予網際網路的執行存取權,您還必須設定 VPC 以進行網際網路存取。如需詳細資訊,請參閱VPC 連線工作流程的網際網路存取

聯網模式

HealthOmics Workflows 支援兩種聯網模式。根據預設,工作流程執行會以限制模式運作。您可以在啟動工作流程執行時,以每次執行為基礎啟用 VPC 聯網。

限制 (預設)

執行只能存取相同 AWS 區域內的 Amazon S3 和 Amazon ECR 資源。執行無法存取其他 AWS 服務、跨 AWS 區域的資源或公有網際網路。

VPC

執行流量會透過 HealthOmics 在您 VPC 子網路中佈建的彈性網路界面 (ENIs) 路由。您可以透過 NAT 閘道控制網路路由、安全群組、網路 ACLs 和網際網路存取。此模式可讓您存取:

  • 公有網際網路資源 (需要 NAT Gateway 組態)

  • AWS 其他 區域中的 服務

  • VPC 中的私有資源

  • 存取私有網路中的內部部署資源

您可以在使用 StartRun API 中的 networkingMode 參數啟動工作流程執行時指定聯網模式。

開始使用

本節會引導您首次設定 HealthOmics 工作流程的 VPC 聯網。

先決條件

為 HealthOmics 工作流程設定 VPC 聯網之前,請確定您有下列項目:

  • 具有適當子網路和安全群組的現有 VPC。VPC 必須與工作流程位於相同的區域。

  • HealthOmics 在您的區域中運作的可用區域中至少有一個子網路。

  • 建立和管理 HealthOmics 組態的適當 IAM 許可。

  • 了解 VPC 聯網概念 (子網路、安全群組、路由表)。

  • AWS 帳戶中有足夠的 ENI 容量。HealthOmics 會使用服務連結角色擴展和管理 VPC 中的 ENIs。所需的 ENIs 數量取決於您的工作負載。在 Amazon EC2 主控台中監控 ENI 用量,以確保您有足夠的容量。

重要

您的 VPC 組態必須在 HealthOmics 在您所在區域的可用區域中至少包含一個子網路,以支援工作流程任務放置。使用 VPC 聯網模式時,您有責任判斷跨 AWS 區域傳輸或使用資料是否安全且合規。

步驟 1:建立或設定 VPC

建立具有私有子網路、安全群組和 NAT 閘道的 VPC (如果需要網際網路存取)。如需step-by-step說明,請參閱 VPC 連線工作流程的網際網路存取

步驟 2:設定安全群組

建立安全群組,允許傳出流量傳送到您執行需要存取的目的地。設定安全群組,以僅允許遵循最低權限原則的最低必要傳出流量。

如需組態範例和詳細指引,請參閱 中的安全群組區段VPC 連線工作流程的網際網路存取

步驟 3:驗證路由表

確保您的私有子網路具有路由至 NAT Gateway 以進行網際網路存取。如需路由表組態範例,請參閱 中的路由表區段VPC 連線工作流程的網際網路存取

注意

將執行連線到公有子網路並不會授予其網際網路存取或公有 IP 地址。對於需要網際網路連線的執行,一律使用具有 NAT Gateway 路由的私有子網路。

步驟 4:建立組態資源

建立 HealthOmics 組態資源,以定義您的 VPC 網路設定:

aws omics create-configuration \ --name my-vpc-config \ --description "VPC configuration for genomics workflows" \ --run-configurations '{ "vpcConfig": { "securityGroupIds": ["sg-0123456789abcdef0"], "subnetIds": [ "subnet-0a1b2c3d4e5f6g7h8", "subnet-1a2b3c4d5e6f7g8h9" ] } }' \ --region us-west-2

佈建網路資源後,組態將從 轉換為 CREATING ACTIVE 狀態。這最多需要 15 分鐘。

步驟 5:使用 VPC 聯網啟動工作流程執行

一旦您的組態為 ACTIVE,請在啟用 VPC 聯網的情況下啟動工作流程執行:

aws omics start-run \ --workflow-id 1234567 \ --role-arn arn:aws:iam::123456789012:role/OmicsWorkflowRole \ --output-uri s3://my-bucket/outputs/ \ --networking-mode VPC \ --configuration-name my-vpc-config \ --region us-west-2

步驟 6:驗證連線

監控您的工作流程執行,以確認其可存取所需的外部資源。檢查 CloudWatch Logs 中的工作流程日誌連線成功或失敗訊息。如需測試連線能力的詳細指引,請參閱 測試 VPC 連線

VPC 要求

您的 VPC 必須符合下列要求:

子網路需求

  • 下限:HealthOmics 運作所在的可用區域中至少有一個子網路

  • 上限:每個組態 16 個子網路

  • 限制:每個可用區域最多一個子網路

  • 建議:針對需要網際網路存取的執行,使用具有 NAT Gateway 路由的私有子網路。雖然您可以指定單一子網路,但我們建議在不同可用區域使用多個子網路,以提高可用性。

安全群組要求

  • 下限:1 個安全群組

  • 上限:每個組態 5 個安全群組

  • 要求:所有安全群組都必須屬於與子網路相同的 VPC

安全群組會控制執行的傳入和傳出流量。

注意

所有子網路和安全群組都必須屬於相同的 VPC。

網路界面需求

HealthOmics 會在您的 VPC 中佈建彈性網路介面 ENIs),以將執行連線到您的網路。確保 AWS 您的帳戶有足夠的 ENI 容量 (預設限制:每個區域 5,000 ENIs)。

HealthOmics 建立的 ENIs 會加上下列標籤:

"TagSet": [ { "Key": "Service", "Value": "HealthOmics" }, { "Key": "eniType", "Value": "CUSTOMER" } ]
重要

請勿修改或刪除 HealthOmics 建立的 ENIs。修改這些網路介面可能會導致工作流程執行的服務延遲或中斷。

組態 APIs

HealthOmics APIs 來建立、管理和刪除 VPC 組態。您可以在多個工作流程執行中重複使用組態。

CreateConfiguration

使用 VPC 聯網設定建立新的組態資源。如需逐步範例說明,請參閱步驟 4:建立組態資源

請求語法:

aws omics create-configuration \ --name configuration-name \ --description description \ --run-configurations '{"vpcConfig":{"securityGroupIds":["security-group-id"],"subnetIds":["subnet-id"]}}' \ --tags Key=key,Value=value \ --region region

參數:

  • name (必要) — 組態的唯一名稱 (最多 50 個字元)。

  • description (選用) — 組態的描述。

  • run-configurations (選用) — VPC 組態設定:

    • vpcConfig.securityGroupIds — 1-5 個安全群組 IDs的清單。

    • vpcConfig.subnetIds — 1–16 個子網路 IDs的清單。

  • tags (選用) — 資源標籤。

回應:

{ "arn": "arn:aws:omics:region:account-id:configuration/configuration-name", "uuid": "configuration-uuid", "name": "configuration-name", "runConfigurations": { "vpcConfig": { "securityGroupIds": ["security-group-id"], "subnetIds": ["subnet-id"], "vpcId": "vpc-id" } }, "status": "CREATING", "creationTime": "timestamp", "tags": {} }

組態狀態值:

  • CREATING — 正在建立組態,並佈建網路資源 (最多 15 分鐘)。

  • ACTIVE — 組態已就緒可供使用。

  • 刪除 — 正在刪除組態。

  • 已刪除 — 已刪除組態。

GetConfiguration

擷取特定組態的詳細資訊。

請求語法:

aws omics get-configuration \ --name configuration-name \ --region region

回應:

{ "arn": "arn:aws:omics:region:account-id:configuration/configuration-name", "uuid": "configuration-uuid", "name": "configuration-name", "runConfigurations": { "vpcConfig": { "securityGroupIds": ["security-group-id"], "subnetIds": ["subnet-id"], "vpcId": "vpc-id" } }, "status": "ACTIVE", "creationTime": "timestamp", "tags": {} }

ListConfigurations

列出您帳戶中的所有組態。

請求語法:

aws omics list-configurations \ --region region

回應:

{ "items": [ { "arn": "arn:aws:omics:region:account-id:configuration/configuration-name", "name": "configuration-name", "description": "description", "status": "ACTIVE", "creationTime": "timestamp" } ] }

DeleteConfiguration

刪除組態。您無法刪除作用中工作流程執行目前正在使用的組態。

請求語法:

aws omics delete-configuration \ --name configuration-name \ --region region
注意

正在清除網路資源時,組態狀態會變更為刪除,然後在程序完成後變更為刪除。

使用 VPC 網路執行工作流程

使用 VPC 聯網開始執行

若要在工作流程執行中使用 VPC 聯網,請指定 networking-mode 參數和 configuration-name

aws omics start-run \ --workflow-id 1234567 \ --role-arn arn:aws:iam::123456789012:role/OmicsWorkflowRole \ --output-uri s3://my-bucket/outputs/ \ --networking-mode VPC \ --configuration-name my-vpc-config \ --region us-west-2

參數:

  • networking-mode — 設定為 VPC 以啟用 VPC 聯網。預設值為 RESTRICTED

  • configuration-name (必要) — 要使用的組態名稱。

檢視執行網路組態

使用 GetRun 檢視執行的聯網組態:

aws omics get-run \ --id run-id \ --region region

回應包含聯網模式、組態詳細資訊和 VPC 組態。下列範例顯示回應中的 VPC 相關欄位:

{ "arn": "arn:aws:omics:region:account-id:run/run-id", "id": "run-id", "status": "status", "workflowId": "workflow-id", "networkingMode": "VPC", "configuration": { "name": "configuration-name", "arn": "arn:aws:omics:region:account-id:configuration/configuration-name", "uuid": "configuration-uuid" }, "vpcConfig": { "subnets": ["subnet-id-1", "subnet-id-2"], "securityGroupIds": ["security-group-id"], "vpcId": "vpc-id" } }

組態不可變性

工作流程使用組態的快照,因為它在執行開始時就存在。您可以在執行期間安全地修改或刪除組態,而不會影響作用中的執行。

呼叫快取考量事項

搭配呼叫快取使用 VPC 聯網時,請確定您的工作流程引擎已正確設定。如需每個引擎呼叫快取的詳細指引,請參閱 引擎特定的快取功能

重要

連線至非確定性或動態資源 (例如,公有網際網路上的第三方資料庫) 時,請考慮在工作流程中使用快取任務選擇退出功能,以避免快取可能影響執行輸出的動態資料集。

最佳實務

安全

  1. 使用最低權限的安全群組。僅允許所需的最低傳出流量。盡可能使用特定目的地 CIDR 區塊,而非 0.0.0.0/0。記錄每個安全群組規則的目的。

  2. 依環境分隔組態。為開發、預備和生產建立個別組態。為每個環境使用不同的 VPCs 或子網路。將適當的標籤套用至組織的組態。

  3. 實作網路監控。啟用 VPC 流程日誌以進行安全性分析。針對異常流量模式設定 CloudWatch 警示。定期檢閱 CloudTrail 日誌是否有組態變更。

  4. 將 VPC 端點用於 AWS 服務。設定 Amazon S3、Amazon ECR 和其他 AWS 服務的 VPC 端點。這可降低 NAT Gateway 成本、改善效能,並透過在 AWS 網路中保留流量來提供額外的安全性。

效能

  1. 規劃網路擴展。網路輸送量從 10 Gbps 開始,並隨著時間擴展到 100 Gbps。如需立即的高輸送量需求,請事先規劃並請求預熱。監控網路指標以了解您的工作流程需求。

  2. 每個可用區域部署 NAT 閘道。生產工作負載的每個可用區域使用一個 NAT Gateway。這可改善彈性和輸送量,並降低跨可用區域資料傳輸成本。

  3. 重複使用組態。建立可在多個工作流程之間共用的組態。這可減少組態管理開銷,並確保一致的網路設定。

  4. 在生產使用之前測試組態。使用測試工作流程驗證網路連線。驗證安全群組規則是否允許必要的流量。使用多可用區域組態測試容錯移轉案例。

成本最佳化

  1. 使用 VPC 端點而非 NAT Gateway。對於 AWS 服務存取,請使用 VPC 端點 (不收取資料處理費用)。Amazon S3 Gateway 端點無需額外費用。介面端點有每小時費用,但可能比 NAT Gateway 更具成本效益。

  2. 監控資料傳輸成本。中的資料傳輸不收費。傳出至網際網路的資料會產生標準 AWS 資料傳輸率。跨區域資料傳輸的速率較高。使用 AWS Cost Explorer 追蹤 VPC 相關費用。

  3. 適當大小的 NAT Gateway 部署。針對開發,請為所有 AZs 使用一個 NAT 閘道。對於生產,每個 AZ 使用一個 NAT 閘道以獲得彈性。監控 NAT Gateway 使用率,以避免過度佈建。

  4. 刪除未使用的組態。定期檢閱和刪除不再使用的組態。使用標籤來識別組態擁有權和用途。

可運作

  1. 使用描述性組態名稱。在名稱中包含環境、目的和團隊 (例如,prod-genomics-vpcdev-clinical-trials-vpc)。

  2. 標記所有組態。在所有資源中使用一致的標記策略。包含環境、擁有者、CostCenter 和用途的標籤。

  3. 文件網路需求。記錄每個組態存取的外部服務。維護安全群組規則及其目的的映射。與您的團隊共用網路架構圖。

VPC 網路配額

下表列出 VPC 聯網組態的配額:

資源 預設值限制 可調整
每個帳戶的組態上限 10
每個組態的安全群組上限 5
每個組態的子網路上限 16
每個可用區域的子網路上限 1
CreateConfiguration API TPS 1
每個區域的彈性網路介面 (客戶 VPC) 5,000

若要請求增加配額,請開啟 Service Quotas 主控台、選擇AWS 服務、搜尋 AWS HealthOmics、選取您要增加的配額,然後選擇請求增加配額。配額增加請求通常會在 1-2 個工作天內處理。