本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
讓 SageMaker AI 訓練任務存取 Amazon 中的資源 VPC
注意
對於訓練任務,您只能設定執行個體VPC在共用硬體上執行的預設租用子網路。如需 租用屬性的詳細資訊VPCs,請參閱專用執行個體。
設定 Amazon VPC Access 的訓練任務
若要控制對訓練任務的存取,請在 Amazon 中VPC執行這些任務,其私有子網路無法存取網際網路。
您可以透過VPC指定其子網路和安全群組 ,將訓練任務設定為在 中執行IDs。您不需要為訓練任務容器指定子網路。Amazon SageMaker AI 會自動從 Amazon 提取訓練容器映像ECR。
當您建立訓練任務時,您可以使用 Amazon SageMaker AI 主控台或 VPC,在 中指定子網路和安全群組API。
若要使用 API,您可以在 CreateTrainingJob操作的 VpcConfig
參數IDs中指定子網路和安全群組。 SageMaker AI 會使用子網路和安全群組詳細資訊來建立網路介面,並將其連接至訓練容器。網路介面會在您的 中為訓練容器提供網路連線VPC。這可讓訓練任務連線到 中存在的資源VPC。
以下為您包含在對 CreateTrainingJob
作業的呼叫內的 VpcConfig
參數的範例:
VpcConfig: { "Subnets": [ "subnet-0123456789abcdef0", "subnet-0123456789abcdef1", "subnet-0123456789abcdef2" ], "SecurityGroupIds": [ "sg-0123456789abcdef0" ] }
設定您的私有VPC以進行 SageMaker AI 訓練
VPC 為 SageMaker AI 訓練任務設定私有時,請使用下列準則。如需設定 的相關資訊VPC,請參閱《Amazon VPC使用者指南》中的使用 VPCs和 子網路。
主題
確保子網路擁有充足的 IP 地址
未使用 Elastic Fabric Adapter (EFA) 的訓練執行個體應至少具有 2 個私有 IP 地址。使用 的訓練執行個體EFA應至少具有 5 個私有 IP 地址。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的多個 IP 地址。
您的VPC子網路在訓練任務中的每個執行個體應至少有兩個私有 IP 地址。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 VPC和 的子網路大小IPv4。
建立 Amazon S3 VPC端點
如果您設定 VPC讓訓練容器無法存取網際網路,則除非您建立允許存取的VPC端點,否則無法連線至包含訓練資料的 Amazon S3 儲存貯體。透過建立VPC端點,您可以允許訓練容器存取儲存資料和模型成品的儲存貯體。我們建議您也建立自訂政策,僅允許來自私有VPC的請求存取 S3 儲存貯體。如需更多資訊,請參閱 Amazon S3 的端點。
若要建立 S3 VPC端點:
-
在 開啟 Amazon VPC主控台https://console.aws.amazon.com/vpc/
。 -
在導覽窗格中,選擇端點,然後選擇建立端點
-
針對服務名稱,搜尋 com.amazonaws.
region
.s3,其中region
是 VPC所在的區域名稱。 -
選擇閘道類型。
-
針對 VPC,選擇VPC您要用於此端點的 。
-
針對設定路由表,選取要供端點使用的路由表。VPC 服務會自動將路由新增至您選擇的每個路由表,將任何 S3 流量指向新的端點。
-
針對政策,選擇完整存取,以允許 內的任何使用者或服務完整存取 S3 服務VPC。選擇自訂,以進一步限制存取權。如需相關資訊,請參閱 使用自訂端點政策來限制存取 S3。
使用自訂端點政策來限制存取 S3
預設端點政策允許 中任何使用者或服務的完整存取 S3VPC。若要進一步限制存取 S3,請建立自訂端點政策。如需詳細資訊,請參 Amazon S3 使用端點政策。您也可以使用儲存貯體政策,將 S3 儲存貯體的存取限制為僅來自 Amazon 的流量VPC。如需資訊,請參閱使用 Amazon S3 儲存貯體政策。
限制在訓練容器上安裝套件
預設端點政策允許使用者在訓練容器上安裝來自 Amazon Linux 和 Amazon Linux 2 儲存庫的套件。如果不希望使用者從該儲存庫安裝套件,請建立自訂端點政策,明確拒絕至 Amazon Linux 和 Amazon Linux 2 儲存庫的存取。以下為拒絕存取上述儲存庫的政策範例:
{ "Statement": [ { "Sid": "AmazonLinuxAMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::packages.*.amazonaws.com/*", "arn:aws:s3:::repo.*.amazonaws.com/*" ] } ] } { "Statement": [ { "Sid": "AmazonLinux2AMIRepositoryAccess", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Deny", "Resource": [ "arn:aws:s3:::amazonlinux.*.amazonaws.com/*" ] } ] }
設定路由表
使用端點路由表的DNS預設設定,讓標準 Amazon S3 URLs(例如 http://s3-aws-region.amazonaws.com/amzn-s3-demo-bucket
) 解析。如果您不使用DNS預設設定,請確定URLs您用來指定訓練任務中資料位置的 已透過設定端點路由表來解析。如需VPC端點路由表的資訊,請參閱《Amazon VPC使用者指南》中的閘道端點路由。
設定VPC安全群組
在分散式的訓練中,必須允許同一訓練工作內不同容器之間的通訊。若要執行此操作,請為安全群組設定規則,允許相同安全群組成員彼此間的傳入連線。對於啟用 EFA的執行個體,請確保傳入和傳出連線允許來自相同安全群組的所有流量。如需詳細資訊,請參閱 Amazon Virtual Private Cloud 使用者指南中的安全群組規則。
連線到 外部的資源 VPC
如果您設定 VPC使其無法存取網際網路,則使用 的訓練任務VPC無法存取 外部的資源VPC。如果您的訓練任務需要存取 外部的資源VPC,請使用下列其中一個選項來提供存取權:
-
如果您的訓練任務需要存取支援介面VPC端點 AWS 的服務,請建立端點以連線至該服務。如需支援介面端點的服務清單,請參閱《Amazon Virtual Private Cloud 使用者指南》中的VPC端點。如需建立介面VPC端點的相關資訊,請參閱《Amazon Virtual Private Cloud 使用者指南》中的介面VPC端點 (AWS PrivateLink)。
-
如果您的訓練任務需要存取不支援介面VPC端點 AWS 的服務,或存取 外部的資源 AWS,請建立NAT閘道並設定安全群組以允許傳出連線。如需設定 NAT閘道的相關資訊VPC,請參閱《Amazon Virtual Private Cloud 使用者指南》中的使用公VPC有和私有子網路 (NAT) 的案例 2:。
使用 CloudWatch 日誌和指標監控 Amazon SageMaker 訓練任務
Amazon SageMaker AI 提供 Amazon CloudWatch 日誌和指標來監控訓練任務。 CloudWatch 提供 CPU、GPU、記憶體、GPU記憶體和磁碟指標,以及事件記錄。如需監控 Amazon SageMaker 訓練任務的詳細資訊,請參閱 使用 Amazon 監控 Amazon SageMaker AI 的指標 CloudWatch和 SageMaker AI 任務和端點指標。