Amazon SageMakerドメインをVPCのみモードでサポートし、SageMaker Studioでの自動シャットダウンライフサイクル設定とTerraformでのSageMaker Canvasをサポートします
Amazon SageMakerはVPCのみモードでサポートし、SageMaker Studioでの自動シャットダウンライフサイクル設定とTerraformでのSageMaker Canvasをサポートします
Amazon SageMakerのドメインは、SageMaker StudioとSageMaker Canvasを含むSageMakerの機械学習(ML)環境をサポートしています。SageMaker Studioは、すべてのML開発ステップを実行するための目的に特化したツールにアクセスできる、シングルのウェブベースのビジュアルインターフェースを提供する、完全に統合された開発環境(IDE)です。これにより、データの準備からMLモデルの構築、トレーニング、展開までのすべてのML開発ステップを行うことができます。データサイエンスチームの生産性を最大10倍向上させます。SageMaker Canvasは、ビジネスアナリストがMLの予測を生成するための視覚的なインターフェースを提供し、MLの経験やコードの作成を必要としません。
HashiCorp Terraformは、再利用可能なコードモジュールでインフラストラクチャを組織化することができるインフラストラクチャのコード(IaC)ツールです。 AWSのお客様は、SageMakerドメインなどのクラウドインフラストラクチャを設計、開発、管理するためにIaCを利用しています。 IaCは、お客様のインフラストラクチャとサービスが一貫性があり、スケーラブルで再現可能であり、開発運用(DevOps)のベストプラクティスに従っていることを保証します。 Terraformを使用すると、一貫性のある繰り返し可能な方法でSageMakerドメインとそのサポートインフラストラクチャを開発および管理することができます。
この記事では、SageMakerドメインと関連するAmazon Virtual Private Cloud(Amazon VPC)を展開するためのTerraformの実装を示します。このソリューションでは、Terraformを使用して以下を作成します:
- VPCとサブネット、セキュリティグループ、およびSageMakerドメインのVPC専用モードをサポートするVPCエンドポイント。
- VPC専用モードでのSageMakerドメインとユーザープロファイル。
- SageMaker StudioのAmazon Elastic File System(Amazon EFS)ボリュームを暗号化するためのAWS Key Management Service(AWS KMS)キー。
- アイドル状態のStudioノートブックインスタンスを自動的にシャットダウンするためのSageMakerドメインにアタッチされたライフサイクル設定。
- SageMaker StudioとCanvasの機能を有効にするためのSageMakerドメイン実行ロールとIAMポリシー。
この記事で説明されているソリューションは、GitHubリポジトリで利用できます。
ソリューションの概要
次の画像は、VPC専用モードのSageMakerドメインを示しています。
VPCにSageMakerドメインを展開することで、SageMaker StudioとCanvasの環境からのデータフローを制御することができます。これにより、インターネットアクセスを制限し、標準のAWSネットワーキングおよびセキュリティ機能を使用してトラフィックを監視および検査し、VPCエンドポイントを介して他のAWSリソースに接続することができます。
VPC専用モードを使用するためのVPCの要件
VPC専用モードでSageMakerドメインを作成するには、次の構成を持つVPCが必要です:
- 高可用性を確保するために、異なる可用性ゾーンにそれぞれ2つ以上のプライベートサブネット。
- サブネットに必要なIPアドレスの数を確保してください。ユーザーごとに2〜4つのIPアドレスを推奨します。スタジオドメインの合計IPアドレス容量は、ドメイン作成時に指定された各サブネットの利用可能なIPアドレスの合計です。
- 次のトラフィックを許可する、インバウンドおよびアウトバウンドのルールを持つ1つ以上のセキュリティグループを設定してください:
- ドメインとAmazon EFSボリューム間のTCPのNFSトラフィック(ポート2049で)。
- セキュリティグループ内のTCPトラフィック。これは、JupyterServerアプリとKernelGatewayアプリ間の接続に必要です。8192〜65535の範囲の少なくともポートへのアクセスを許可する必要があります。
- Amazon Simple Storage Service(Amazon S3)のゲートウェイエンドポイントを作成してください。SageMaker Studioは、VPCを介してAmazon S3にアクセスするためにゲートウェイVPCエンドポイントを使用する必要があります。ゲートウェイエンドポイントを作成した後、VPCからAmazon S3へのトラフィックのルートテーブルでターゲットとして追加する必要があります。
- インターフェースVPCエンドポイント(AWS PrivateLink)を作成してください。これにより、次のサービスに対するStudioへのアクセスが許可され、対応するサービス名を使用してください。また、これらのエンドポイントにVPCのセキュリティグループを関連付けてください。ポート443からのすべてのインバウンドトラフィックを許可する必要があります:
- SageMaker API:
com.amazonaws.region.sagemaker.api
。これは、SageMaker APIとの通信に必要です。 - SageMakerランタイム:
com.amazonaws.region.sagemaker.runtime
。これは、Studioのノートブックの実行およびモデルのトレーニングとホストに必要です。 - SageMaker Feature Store:
com.amazonaws.region.sagemaker.featurestore-runtime
。これは、SageMaker Feature Storeの使用に必要です。 - SageMaker Projects:
com.amazonaws.region.servicecatalog
。これは、SageMaker Projectsの使用に必要です。
- SageMaker API:
SageMaker Canvasを使用するための追加のVPCエンドポイント
以前に言及したVPCエンドポイントに加えて、SageMaker Canvasを使用するためには、以下のインターフェースVPCエンドポイントも作成する必要があります:
- Amazon ForecastおよびAmazon Forecast Query:
com.amazonaws.region.forecast
およびcom.amazonaws.region.forecastquery
。これらはAmazon Forecastを使用するために必要です。 - Amazon Rekognition:
com.amazonaws.region.rekognition
。これはAmazon Rekognitionを使用するために必要です。 - Amazon Textract:
com.amazonaws.region.textract
。これはAmazon Textractを使用するために必要です。 - Amazon Comprehend:
com.amazonaws.region.comprehend
。これはAmazon Comprehendを使用するために必要です。 - AWS Security Token Service(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 Data Catalogに接続するために必要です。 - 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ボリュームを作成します。ユーザーごとにボリューム内にホームディレクトリが作成されます。ノートブックファイルとデータファイルはこれらのディレクトリに保存されます。
SageMaker StudioのEFSボリュームをKMSキーで暗号化することで、ホームディレクトリのデータを安全に保管することができます。このTerraformソリューションは、KMSキーを作成し、それを使用してSageMaker StudioのEFSボリュームを暗号化します。
SageMakerドメインライフサイクル設定によるアイドルなスタジオノートブックの自動シャットダウン
ライフサイクル設定は、Amazon SageMaker Studioのライフサイクルイベント(新しいスタジオノートブックの開始など)によってトリガされるシェルスクリプトです。ライフサイクル設定を使用して、スタジオ環境のカスタマイズを自動化することができます。
このTerraformソリューションは、自動シャットダウンJupyter拡張機能を使用して、スタジオ内でコストを発生させるアイドルなリソースを検出および停止するためのSageMakerライフサイクル設定を作成します。具体的な実現方法として、以下のリソースが作成または設定されます:
- S3バケットを作成し、最新バージョンの自動シャットダウン拡張機能
sagemaker_studio_autoshutdown-0.1.5.tar.gz
をアップロードします。後で自動シャットダウンスクリプトはJupyter Serverの起動時にS3バケットから拡張機能ファイルをダウンロードするためにs3 cp
コマンドを実行します。自動シャットダウン拡張機能と自動シャットダウンスクリプトに関する詳細については、以下のGitHubリポジトリを参照してください。 auto_shutdown
というaws_sagemaker_studio_lifecycle_configリソースを作成します。このリソースはautoshutdown-script.sh
をBase64でエンコードし、SageMakerドメインのライフサイクル設定を作成します。- SageMakerドメインのデフォルトユーザー設定に、ライフサイクル設定のARNを指定し、デフォルトに設定します。
SageMaker実行ロールのIAM権限
SageMakerは、SageMakerが管理するAWSハードウェア上でユーザーの代わりに操作を実行します。SageMakerは、ユーザーが許可した操作のみを実行できます。
SageMakerユーザーはIAMロール(実行ロールとも呼ばれます)でこれらの権限を付与できます。SageMaker Studioドメインを作成する際、SageMakerはデフォルトで実行ロールを作成することができます。SageMakerユーザープロファイルのロールを変更することで、ユーザープロファイルへのアクセスを制限することができます。このTerraformソリューションは、SageMaker実行ロールに以下のIAMポリシーをアタッチします:
- 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 CLIを使用してスクリプトを簡単に実行したり、AWS CLIを使用してサービスAPIを試したり、他のツールを使用して生産性を向上させたりすることができます。
Terraformソリューションを展開するには、次の手順を実行してください:
CloudShellの起動設定
- AWS管理コンソールにサインインし、CloudShellサービスを選択します。
- ナビゲーションバーで、リージョンセレクターでUS East (N. Virginia)を選択します。
ブラウザがCloudShellターミナルを開きます。
Terraformのインストール
次の手順は、CloudShellターミナルで実行する必要があります。
Amazon Linux向けのTerraformのインストール手順については、Hashicorpのガイドを参照してください:
- リポジトリを管理するために
yum-config-manager
をインストールします。
sudo yum install -y yum-utils
- 公式のHashiCorp Linuxリポジトリを追加するために
yum-config-manager
を使用します。
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
- auto-shutdown拡張機能をダウンロードし、
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
デプロイを確認する際には、「yes」と入力してください。
デプロイが成功した場合、次のような出力が表示されます:
Apply complete! Resources: X added, 0 changed, 0 destroyed.
SageMaker StudioとCanvasへのアクセス
現在、VPCに関連付けられたStudioドメインと、このドメイン内のユーザープロファイルがあります。
SageMaker Studioコンソールを使用するには、Studioコントロールパネルでユーザー名(defaultuser
であるはず)を見つけ、Open Studioを選択します。
成功です!これでブラウザを使用してSageMaker Studio環境に接続できます。数分後、Studioは環境の作成を完了し、ランチャースクリーンが表示されます。
SageMaker Canvasコンソールを使用するには、Canvasコントロールパネルでユーザー名(defaultuser
であるはず)を見つけ、Open Canvasを選択します。
成功です!これでブラウザを使用してSageMaker Canvas環境に接続できます。数分後、Canvasは環境の作成を完了し、ランチャースクリーンが表示されます。
SageMaker StudioとCanvasの全機能を自由に探索してください!詳細なワークショップやチュートリアルについては、SageMakerに関する追加情報セクションを参照してください。
クリーンアップ
リソースをクリーンアップするには、次のコマンドを実行してください:
terraform destroy
ヒント: Amazon EFSの保持ポリシーを「Retain
」(デフォルト)に設定した場合、「terraform destroy
」の実行中に問題が発生します。これは、TerraformがEFSボリュームとそれに関連するセキュリティグループ(SageMakerによって作成された)がまだ存在する状態で、サブネットとVPCを削除しようとしているためです。この問題を解決するには、まずEFSボリュームを手動で削除し、次にAWSコンソールでサブネットとVPCを手動で削除します。
結論
この投稿のソリューションでは、Terraformを使用してSageMaker StudioとSageMaker CanvasをサポートするSageMakerドメインを作成する機能を提供しています。SageMaker Studioは、MLプロセスでの重労働を排除する完全に管理されたIDEを提供します。SageMaker Canvasでは、ビジネスユーザーがコードを書かずに正確な予測を行うために、簡単にMLモデルを探索および構築できます。VPC内でStudioとCanvasを起動し、EFSボリュームを暗号化するためのKMSキーを使用することで、顧客はセキュリティを強化したSageMaker ML環境を利用できます。自動シャットダウンライフサイクル設定により、顧客はアイドル状態のStudioノートブックインスタンスに対してコストを節約することができます。
このソリューションを試してみて、ご意見をお聞かせください。SageMaker StudioとSagemaker Canvasの使用方法についての詳細は、以下を参照してください:
- Amazon SageMaker Immersion Day
- SageMaker Canvas Immersion Day
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- TIIのFalcon 180B基本モデルは、Amazon SageMaker JumpStartを通じて利用可能です
- 「Microsoftは、AIの著作権争いを引き起こした場合でも、有料のCopilotの顧客を保護します」
- MetaGPT 現在利用可能な最高のAIエージェントの完全ガイド
- 「LangChainとOpenAIを使用して、自己モデレートされたコメントシステムを作成する」
- 「Azure OpenAIを使用して、会社独自の安全でプライベートなChatGPTを展開しましょう」
- 「AIモデルと化学者の洞察を組み合わせて、一度のステップで逆合成を予測する」
- 「トップのGPTとAIコンテンツ検出器」