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が必要です:

  1. 高可用性を確保するために、異なる可用性ゾーンにそれぞれ2つ以上のプライベートサブネット。
  2. サブネットに必要なIPアドレスの数を確保してください。ユーザーごとに2〜4つのIPアドレスを推奨します。スタジオドメインの合計IPアドレス容量は、ドメイン作成時に指定された各サブネットの利用可能なIPアドレスの合計です。
  3. 次のトラフィックを許可する、インバウンドおよびアウトバウンドのルールを持つ1つ以上のセキュリティグループを設定してください:
    • ドメインとAmazon EFSボリューム間のTCPのNFSトラフィック(ポート2049で)。
    • セキュリティグループ内のTCPトラフィック。これは、JupyterServerアプリとKernelGatewayアプリ間の接続に必要です。8192〜65535の範囲の少なくともポートへのアクセスを許可する必要があります。
  4. Amazon Simple Storage Service(Amazon S3)のゲートウェイエンドポイントを作成してください。SageMaker Studioは、VPCを介してAmazon S3にアクセスするためにゲートウェイVPCエンドポイントを使用する必要があります。ゲートウェイエンドポイントを作成した後、VPCからAmazon S3へのトラフィックのルートテーブルでターゲットとして追加する必要があります。
  5. インターフェース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 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ライフサイクル設定を作成します。具体的な実現方法として、以下のリソースが作成または設定されます:

  1. S3バケットを作成し、最新バージョンの自動シャットダウン拡張機能sagemaker_studio_autoshutdown-0.1.5.tar.gzをアップロードします。後で自動シャットダウンスクリプトはJupyter Serverの起動時にS3バケットから拡張機能ファイルをダウンロードするためにs3 cpコマンドを実行します。自動シャットダウン拡張機能と自動シャットダウンスクリプトに関する詳細については、以下のGitHubリポジトリを参照してください。
  2. auto_shutdownというaws_sagemaker_studio_lifecycle_configリソースを作成します。このリソースはautoshutdown-script.shをBase64でエンコードし、SageMakerドメインのライフサイクル設定を作成します。
  3. 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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

「トップ40+の生成AIツール(2023年9月)」

ChatGPT – GPT-4 GPT-4はOpenAIの最新のLLMであり、従来のモデルよりも創造的で正確かつ安全です。また、画像、PDF、CSVなど...

AIニュース

「Googleのグリーンライトプロジェクトは、30%減の停止時間で信号を制御します」

「Googleのプロジェクトグリーンライトは、世界中の12の都市と提携し、人工知能に基づく信号のタイミングの推奨を提供してい...

AIニュース

「ロボットのセンシングと移動のためのアルゴリズム」

「カリフォルニア大学ロサンゼルス校の研究者たちは、自律型ロボットの航法能力を向上させるアルゴリズムを作りました」

AI研究

「韓国のAI研究がマギキャプチャを紹介:主題とスタイルの概念を統合して高解像度のポートレート画像を生成するための個人化手法」

人々はよく、履歴書や結婚式などに適した高品質の肖像写真を作成するために、写真スタジオに通ったり、高価で時間のかかる画...

機械学習

新しいAIの研究がコンピュータビジョンを通じてリチウムイオン電池の秘密を解き明かす

充電可能なリチウムイオン電池の電極に密に詰められた数十億の微粒子は、エネルギーの貯蔵と供給において重要な役割を果たし...

AIニュース

「GoogleがCloud TPU v5pとAIハイパーコンピューターを発表:AI処理能力の飛躍」

Googleは、AIハイパーコンピュータと呼ばれる画期的なスーパーコンピューターアーキテクチャと共に、テンサープロセッシング...