LoginSignup
3
1

More than 1 year has passed since last update.

クラウドやAWSに詳しくない人向けSageMaker Studio導入ガイド

Posted at

Amazon SageMakerを利用して機械学習モデルのトレーニングを行ってきたものの、実験管理ツールとして用いていたWandBの接続が不安定な点に若干不便を感じていました。

そんな中、SageMaker StudioのExperiments機能ならこの問題を解消できそうだと思い、まずはStudioを導入してみることにしました。

Studioを構築するにあたって、VPCやサブネットなどの基本的なネットワーク構成を設定する必要があるのですが、私のようなクラウド素人にはかなりの手間だったので、初心者向けに導入手順をまとめました。

間違った点がありましたら、コメントでご指摘いただけますと幸いです。

構成

以下の構成でSageMaker Studioを構築します。

導入手順

以下の順番でネットワーク構成とSageMaker Studioの設定を行います。

  1. VPC
  2. プライベートサブネット
  3. VPCエンドポイント
  4. ルートテーブル
  5. セキュリティグループ
  6. SageMaker Studio ドメイン
  7. ユーザープロファイル

VPC

アプリケーションを展開している他のVPCと将来的にVPCピアリングで接続することを考慮し、互いのVPCのCIDRブロックが重複しないようにCIDRブロックを設定します。

プライベートIPv4アドレス空間には以下の3つの範囲が定義されているのですが(RFC 1918)、既存のVPCで10.0.0.0/16が使用済なので、今回は同じ10.0.0.0/8範囲内の異なるサブネット(10.1.0.0/24)を使用します。

  • 10.0.0.0 - 10.255.255.255 (10.0.0.0/8)
  • 172.16.0.0 - 172.31.255.255 (172.16.0.0/12)
  • 192.168.0.0 - 192.168.255.255 (192.168.0.0/16)

※同じ10.0.0.0/8範囲内の異なるサブネットであれば、10.2.0.0/16などでも大丈夫です。
※別のプライベートアドレス範囲(172.16.0.0/16や192.168.0.0/16など)を使用しても大丈夫です。

10.1.0.0/16でもCIDRブロックの重複を避けられるのですが、SageMaker Studioを配置するには範囲が広すぎるので、今回はより限定された範囲の10.1.0.0/24(利用可能なIPアドレスは251個)を選択します。

プライベートDNSの有効化

後の手順でECR API用およびECR Docker Registry用にインターフェースVPCエンドポイントを作成するのですが、VPC内でプライベートDNSが有効になっていないと作成時にエラーが起こります。

VPC内でプライベートDNSを有効にするために、VPCの編集画面から以下のVPC属性を両方ともtrueに設定します。

  • DNS解決を有効化(enableDnsSupport)
  • DNSホスト名を有効化(enableDnsHostnames)

プライベートサブネット

VPCダッシュボードで、Studioを配置する新しいプライベートサブネットを作成します。
サブネットの範囲は10.1.0.0/25で指定します。

VPCエンドポイント

学習データの取得先およびモデルのアップロード先であるS3や、Dockerイメージの取得先であるECRとの接続を考慮し、それぞれのVPCエンドポイントをVPCダッシュボードから作成し、新しいプライベートサブネットと関連付けます。

S3用のゲートウェイVPCエンドポイント

VPCエンドポイントsagemaker-studio-s3を作成します。

S3へのアクセスをVPC内からプライベートアクセスに制限するために、ゲートウェイVPCエンドポイントを使用します。
ゲートウェイVPCエンドポイントは、S3エンドポイントサービス(今回はcom.amazonaws.ap-northeast-1.s3)と関連付けられます。

S3用のゲートウェイVPCエンドポイントは、インターフェースVPCエンドポイントとは異なり、VPCにアタッチされます。
そのため、サブネットやセキュリティグループを直接関連付けることはありません。
その代わりに、ゲートウェイVPCエンドポイントは、VPCのルートテーブルにエントリを追加することで機能します。

ルートテーブルは後ほど設定するため、初期設定のチェックは空で大丈夫です。

また、同じ名前のサービスcom.amazonaws.ap-northeast-1.s3が2つありますが、タイプ: Gatewayを選択してください。

ECR用のインターフェースVPCエンドポイント

VPCエンドポイントsagemaker-studio-ecr-api sagemaker-studio-ecr-dkrを作成します。

ECRでは、インターフェースVPCエンドポイントを使用します(ゲートウェイVPCエンドポイントをつかうサービスはS3とDynamoDB)。

インターフェースVPCエンドポイントは、ECRの2つのエンドポイントサービスと関連付けられます。

  • ECR API用(com.amazonaws.ap-northeast-1.ecr.api)
  • ECR Docker Registry用(com.amazonaws.ap-northeast-1.ecr.dkr)

インターフェースVPCエンドポイントの実体はENI(Elastic Network Interface)であるため、サブネット内で構成されます。
そのため、ゲートウェイVPCエンドポイントと異なり、初期設定でサブネットの選択も行う必要があります。

ルートテーブル

サブネットは一つのルートテーブルに関連付けられ、そのルートテーブルのルーティング設定に従ってトラフィックが転送されます。
今回、VPC内のサブネットは1つであるため、VPC外のネットワークへのトラフィックのルーティングを制御するための設定を行います。

インターフェースVPCエンドポイントの場合、ルートテーブルには、特別なルートを追加する必要はありません。
これは、インターフェースVPCエンドポイントがDNSを利用して対象のサービスとの通信を制御するためです。
AWSが提供するエンドポイントのサービス用に、プライベートDNSエントリが自動的に作成され、これを利用してサービスにアクセスします。

ゲートウェイVPCエンドポイントの場合、関連付けられたプライベートサブネットのルートテーブルには、エンドポイントサービスへのトラフィックがゲートウェイエンドポイントにルーティングされるように設定を追加します。

セキュリティグループ

ECR用のインターフェースVPCエンドポイントのセキュリティグループを新しく作成します。

エンドポイントの画面で作成したセキュリティグループをアタッチします。

SageMaker Studio ドメイン

AWSSageMakerFullAccessを含むロールをアタッチし、VPCとサブネットはこれまでに作成したものを選択します。

ユーザープロファイル

複数のユーザーがSageMaker Studioを使用する場合、それぞれのユーザーに対して個別のユーザープロファイルを作成することが推奨されます。
これにより、各ユーザーが独自のワークスペースとリソースにアクセスでき、他のユーザーとの競合が発生しにくくなります。

ユーザープロファイルを作成することで、以下の利点があります。

  • 各ユーザーが独自の開発環境を持てる
  • ユーザーごとにリソースの割り当てや使用制限を設定できる
  • ユーザーごとにアクセス権限を管理できる

ユーザープロファイルを作成すると、Studioを開く際に選択できるようになります。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1