VPC 専用モードの Amazon SageMaker ドメインは、自動シャットダウンのライフサイクル設定を備えた SageMaker Studio と Terraform を備えた SageMaker Canvas をサポートします。 アマゾン ウェブ サービス

VPC 専用モードの Amazon SageMaker ドメインは、自動シャットダウンのライフサイクル設定を備えた SageMaker Studio と Terraform を備えた SageMaker Canvas をサポートします。 アマゾン ウェブ サービス

AmazonSageMakerドメイン SageMaker Studio や SageMaker Canvas などの SageMaker 機械学習 (ML) 環境をサポートします。 SageMaker スタジオ は、単一の Web ベースのビジュアル インターフェイスを提供する完全統合開発環境 (IDE) であり、専用ツールにアクセスして、データの準備から ML モデルの構築、トレーニング、デプロイ、データ サイエンスの改善まで、すべての ML 開発ステップを実行できます。チームの生産性が最大 10 倍向上します。 SageMaker キャンバス ビジネス アナリストが ML の経験を必要とせず、コードを XNUMX 行も記述することなく、正確な ML 予測を自分で生成できるビジュアル インターフェイスをビジネス アナリストに提供することで、機械学習へのアクセスを拡大します。

HashiCorp Terraform は、インフラストラクチャを再利用可能なコード モジュールで編成できるようにするコードとしてのインフラストラクチャ (IaC) ツールです。 AWS の顧客は、SageMaker ドメインなどのクラウド インフラストラクチャの設計、開発、管理を IaC に依存しています。 IaC は、開発運用 (DevOps) 分野のベスト プラクティスに従いながら、顧客のインフラストラクチャとサービスの一貫性、スケーラビリティ、再現性を保証します。 Terraform を使用すると、SageMaker ドメインとそのサポート インフラストラクチャを一貫した反復可能な方法で開発および管理できます。

この投稿では、SageMaker ドメインと アマゾン バーチャル プライベート クラウド (Amazon VPC) に関連付けられます。 このソリューションでは、Terraform を使用して以下を作成します。

  • SageMaker ドメインの VPC 専用モードをサポートするための、サブネット、セキュリティ グループ、および VPC エンドポイントを備えた VPC。
  • ユーザープロファイルを持つ VPC 専用モードの SageMaker ドメイン。
  • SageMaker Studio の Amazon Elastic File System (Amazon EFS) ボリュームを暗号化するための AWS Key Management Service (AWS KMS) キー。
  • アイドル状態の Studio ノートブック インスタンスを自動的にシャットダウンするために、SageMaker ドメインにアタッチされたライフサイクル構成。
  • SageMaker Studio と Canvas の機能を有効にするための SageMaker Domain 実行ロールと IAM ポリシー。

この投稿で説明されているソリューションは、次の場所から入手できます。 GitHubレポ.

ソリューションの概要

次の図は、VPC のみモードの SageMaker ドメインを示しています。

sagemaker_domain_vpc_only

VPC で SageMaker Domain を起動すると、SageMaker Studio および Canvas 環境からのデータ フローを制御できます。 これにより、インターネット アクセスを制限したり、標準の AWS ネットワーキングおよびセキュリティ機能を使用してトラフィックを監視および検査したり、VPC エンドポイントを介して他の AWS リソースに接続したりすることができます。

VPC のみモードを使用するための VPC 要件

VPC のみモードで SageMaker ドメインを作成するには、次の構成の VPC が必要です。

  1. 高可用性を確保するために、それぞれが異なるアベイラビリティーゾーンにある少なくとも XNUMX つのプライベートサブネット。
  2. サブネットに必要な数の IP アドレスがあることを確認してください。 ユーザーごとに XNUMX ~ XNUMX つの IP アドレスをお勧めします。 Studio ドメインの合計 IP アドレス容量は、ドメインの作成時に指定された各サブネットで使用可能な IP アドレスの合計です。
  3. 以下のトラフィックを一緒に許可する受信ルールと送信ルールを使用して XNUMX つ以上のセキュリティ グループを設定します。
    • ドメインと Amazon EFS ボリューム間のポート 2049 上の TCP 経由の NFS トラフィック。
    • セキュリティ グループ内の TCP トラフィック。 これは、JupyterServer アプリと KernelGateway アプリの間の接続に必要です。 少なくとも 8192 ~ 65535 の範囲のポートへのアクセスを許可する必要があります。
  4. Amazon Simple Storage Service (Amazon S3) のゲートウェイ エンドポイントを作成します。 SageMaker Studio は、ゲートウェイ VPC エンドポイントを使用して VPC から Amazon S3 にアクセスする必要があります。 ゲートウェイ エンドポイントを作成したら、VPC から Amazon S3 宛てのトラフィックのルート テーブルにターゲットとして追加する必要があります。
  5. インターフェイス VPC エンドポイント (AWS PrivateLink) を作成して、Studio が対応するサービス名で次のサービスにアクセスできるようにします。 また、ポート 443 からのすべての受信トラフィックを許可するには、VPC のセキュリティ グループを次のエンドポイントに関連付ける必要があります。
    • SageMaker API: com.amazonaws.region.sagemaker.api。 これは、SageMaker API と通信するために必要です。
    • SageMaker ランタイム: com.amazonaws.region.sagemaker.runtime。 これは、Studio ノートブックを実行し、モデルをトレーニングしてホストするために必要です。
    • SageMaker 機能ストア: com.amazonaws.region.sagemaker.featurestore-runtime。 これは SageMaker Feature Store を使用するために必要です。
    • SageMaker プロジェクト: com.amazonaws.region.servicecatalog。 これは SageMaker プロジェクトを使用するために必要です。

SageMaker Canvas を使用するための追加の VPC エンドポイント

SageMaker Canvas を使用するには、前述の VPC エンドポイントに加えて、次のインターフェイス VPC エンドポイントも作成する必要があります。

  • Amazon Forecast と Amazon Forecast クエリ: com.amazonaws.region.forecast および com.amazonaws.region.forecastquery。 これらは Amazon Forecast を使用するために必要です。
  • アマゾンの認識: com.amazonaws.region.rekognition。 これは、Amazon Rekognition を使用するために必要です。
  • Amazon Textract: com.amazonaws.region.textract。 これは、Amazon Textract を使用するために必要です。
  • アマゾン・コンプリヘンド: com.amazonaws.region.comprehend。 これは Amazon Comprehend を使用するために必要です。
  • AWS セキュリティ トークン サービス (AWS STS): com.amazonaws.region.sts。 SageMaker Canvas は AWS STS を使用してデータ ソースに接続するため、これが必要です。
  • Amazon Athena と AWS Glue: com.amazonaws.region.athena および com.amazonaws.region.glue。 これは、Amazon Athena 経由で AWS Glue データ カタログに接続するために必要です。
  • Amazon Redshift: com.amazonaws.region.redshift-data。 これは、Amazon Redshift データ ソースに接続するために必要です。

SageMaker Canvas で使用できる各サービスのすべての VPC エンドポイントを表示するには、次の場所にアクセスしてください。 インターネットにアクセスせずに VPC で Amazon SageMaker Canvas を設定する.

SageMaker Studio の EFS ボリュームの AWS KMS 暗号化

チームのユーザーが初めて SageMaker Studio にオンボードすると、SageMaker はチーム用の EFS ボリュームを作成します。 ホーム ディレクトリは、チームの一員として Studio にオンボードする各ユーザーのボリューム内に作成されます。 ノートブック ファイルとデータ ファイルはこれらのディレクトリに保存されます。

KMS キーを使用して SageMaker Studio の EFS ボリュームを暗号化すると、ホーム ディレクトリのデータが保存時に暗号化されます。 この Terraform ソリューションは KMS キーを作成し、それを使用して SageMaker Studio の EFS ボリュームを暗号化します。

アイドル状態の Studio ノートブックを自動的にシャットダウンするための SageMaker ドメイン ライフサイクル構成

sagemaker_auto_shutdown

ライフサイクル設定は、新しい Studio ノートブックの開始など、Amazon SageMaker Studio ライフサイクル イベントによってトリガーされるシェル スクリプトです。 ライフサイクル構成を使用して、Studio 環境のカスタマイズを自動化できます。

この Terraform ソリューションは、自動シャットダウン Jupyter 拡張機能を使用して、Studio 内でコストが発生するアイドル状態のリソースを検出して停止するための SageMaker ライフサイクル構成を作成します。 内部では、望ましい結果を達成するために次のリソースが作成または構成されます。

  1. S3 バケットを作成し、自動シャットダウン拡張機能の最新バージョンをアップロードします。 sagemaker_studio_autoshutdown-0.1.5.tar.gz。 後で、自動シャットダウン スクリプトが実行されます。 s3 cp Jupyter Server の起動時に S3 バケットから拡張ファイルをダウンロードするコマンド。 詳細については、次の GitHub リポジトリを参照してください。 自動シャットダウン拡張機能 および 自動シャットダウンスクリプト.
  2. 作る aws_sagemaker_studio_lifecycle_config リソース "auto_shutdown”。 このリソースは、 autoshutdown-script.sh Base 64 を使用して、SageMaker ドメインのライフサイクル構成を作成します。
  3. SageMaker ドメインのデフォルトのユーザー設定では、ライフサイクル構成 arn を指定し、それをデフォルトとして設定します。

SageMaker 実行ロール IAM 権限

SageMaker はマネージドサービスとして、SageMaker が管理する AWS ハードウェア上でユーザーに代わって操作を実行します。 SageMaker は、ユーザーが許可した操作のみを実行できます。

SageMaker ユーザーは、IAM ロール (実行ロールと呼ばれます) を使用してこれらのアクセス許可を付与できます。 SageMaker Studio ドメインを作成する場合、SageMaker ではデフォルトで実行ロールを作成できます。 SageMaker ユーザー プロファイル ロールを変更することで、ユーザー プロファイルへのアクセスを制限できます。 この Terraform ソリューションは、次の IAM ポリシーを SageMaker 実行ロールにアタッチします。

  • SageMakerが管理 AmazonSageMakerFullAccess ポリシー。 このポリシーは、実行ロールに SageMaker Studio を使用するためのフルアクセスを付与します。
  • SageMaker Studio の EFS ボリュームの暗号化に使用される KMS キーにアクセスするための顧客管理の IAM ポリシー。
  • SageMakerが管理 AmazonSageMakerCanvasFullAccess および AmazonSageMakerCanvasAIServicesAccess ポリシー。 これらのポリシーは、実行ロールに SageMaker Canvas を使用するためのフルアクセスを付与します。
  • SageMaker Canvas で時系列分析を有効にするには、Amazon Forecast の IAM 信頼ポリシーも追加する必要があります。

ソリューションウォークスルー

このブログ投稿では、Terraform ソリューションをデプロイする方法を示します。 展開を行う前に、次の前提条件を満たしていることを確認してください。

前提条件

  • AWSアカウント
  • 管理アクセス権を持つ IAM ユーザー

展開手順

このガイドに従っているユーザーに統合されたデプロイメント体験を提供するために、AWS CloudShell を使用したデプロイメントプロセスをデモンストレーションします。 ブラウザベースのシェルである CloudShell を使用すると、AWS コマンドラインインターフェイス (AWS CLI) でスクリプトをすばやく実行したり、AWS CLI を使用してサービス API を試したり、他のツールを使用して生産性を向上させることができます。

Terraform ソリューションをデプロイするには、次の手順を実行します。

CloudShell の起動設定

  • AWS マネジメントコンソールにサインインし、CloudShell サービスを選択します。
  • ナビゲーション バーの地域セレクターで、 米国東部(バージニア北部).

ブラウザで CloudShell ターミナルが開きます。

Terraformをインストールします

次の手順は CloudShell ターミナルで実行する必要があります。

チェック このハシコープガイド Terraform for Amazon Linux をインストールするための最新の手順については、以下を参照してください。

  • インストールを開始する yum-config-manager リポジトリを管理します。
sudo yum install -y yum-utils

  •   yum-config-manager 公式 HashiCorp Linux リポジトリを追加します。
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

  • 新しいリポジトリから Terraform をインストールします。
sudo yum -y install terraform

  • Terraform の利用可能なサブコマンドをリストして、インストールが機能したことを確認します。
terraform -help

期待される出力:

Usage: terraform [-version] [-help] <command> [args] The available commands for execution are listed below. The most common, useful commands are shown first, followed by less common or more advanced commands. If you’re just getting started with Terraform, stick with the common commands. For the other commands, please read the help and docs before usage. …

コード リポジトリのクローンを作成する

CloudShell ターミナルで次の手順を実行します。

  • リポジトリのクローンを作成し、sagemaker-domain-vpconly-canvas-with-terraform フォルダーに移動します。
git clone https://github.com/aws-samples/sagemaker-domain-vpconly-canvas-with-terraform.git cd sagemaker-domain-vpconly-canvas-with-terraform

  • 自動シャットダウン拡張機能をダウンロードして、 assets/auto_shutdown_template フォルダ:
wget https://github.com/aws-samples/sagemaker-studio-auto-shutdown-extension/raw/main/sagemaker_studio_autoshutdown-0.1.5.tar.gz -P assets/auto_shutdown_template

Terraform ソリューションをデプロイする

CloudShell ターミナルで、次の Terraform コマンドを実行します。

terraform init

次のような成功メッセージが表示されるはずです。

Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work...

これで、以下を実行できるようになります。

terraform plan

作成する計画の概要にあるリソースに満足したら、次を実行できます。

terraform apply

入る "はい「展開を確認す​​るプロンプトが表示されます。」

正常にデプロイされると、次のような出力が表示されるはずです。

Apply complete! Resources: X added, 0 changed, 0 destroyed.

SageMaker Studio と Canvas へのアクセス

これで、Studio ドメインが VPC に関連付けられ、このドメインにユーザー プロファイルが作成されました。

sagemaker_domain

SageMaker Studio コンソールを使用するには、Studio コントロール パネルでユーザー名を見つけます (ユーザー名は defaultuser)と選択 オープンスタジオ.

やった! これで、ブラウザを使用して SageMaker Studio 環境に接続できるようになりました。 数分後、Studio による環境の作成が完了し、起動画面が表示されます。

スタジオランディングページ

SageMaker Canvas コンソールを使用するには、Canvas コントロール パネルでユーザー名を見つけます ( defaultuser) をクリックし、「キャンバスを開く」を選択します。

これで、ブラウザを使用して SageMaker Canvas 環境に接続できるようになりました。 数分後、Canvas による環境の作成が完了し、起動画面が表示されます。

キャンバスランディングページ

SageMaker Studio と Canvas が提供するすべての機能を自由に探索してください。 SageMaker についてさらに学ぶために使用できる追加のワークショップとチュートリアルについては、「結論」セクションを参照してください。

クリーンアップ

次のコマンドを実行してリソースをクリーンアップします。

terraform destroy

先端: Amazon EFS 保持ポリシーを「」に設定した場合Retain” (デフォルト) の場合、実行中に問題が発生します。terraform destroyこれは、EFS ボリュームとそれに関連付けられたセキュリティ グループ (SageMaker によって作成された) がまだ存在しているときに、Terraform がサブネットと VPC を削除しようとしているためです。 これを修正するには、まず EFS ボリュームを手動で削除し、次に AWS コンソールでサブネットと VPC を手動で削除します。

まとめ

この投稿のソリューションでは、SageMaker Studio や Terraform を使用した SageMaker Canvas などの ML 環境をサポートする SageMaker ドメインを作成する機能を提供します。 SageMaker Studio は、ML プロセスの重労働を取り除くフルマネージド IDE を提供します。 SageMaker Canvas を使用すると、ビジネス ユーザーはコードを書かずに ML モデルを簡単に探索して構築し、正確な予測を行うことができます。 VPC 内で Studio と Canvas を起動する機能と、KMS キーを使用して EFS ボリュームを暗号化する機能により、顧客はセキュリティが強化された SageMaker ML 環境を使用できます。 自動シャットダウンのライフサイクル構成により、顧客はアイドル状態の Studio ノートブック インスタンスのコストを節約できます。

このソリューションをテストして、ご意見をお聞かせください。 SageMaker Studio と Sagemaker Canvas の使用方法の詳細については、以下を参照してください。


著者について

チェンヤン・AWSチェン・ヤン アマゾン ウェブ サービスの機械学習エンジニアです。 彼女は AWS プロフェッショナル サービス チームの一員であり、顧客向けに安全な機械学習環境を構築することに注力してきました。 余暇には、太平洋岸北西部でのランニングやハイキングを楽しんでいます。

タイムスタンプ:

より多くの AWS機械学習