[Sagemaker]ノートブックインスタンスのネットワーク構成について特徴とユースケースをまとめてみた

2020.07.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

どーもsutoです。

今回はSagemakerノートブックインスタンスを作成する際のVPCの設定について、ネットワーク構成およびルーティングの違いとユースケースについての内容です。以下3パターンとなります。

  1. No VPC(非VPC)
  2. VPCアタッチ有、直接インターネット接続有
  3. VPCアタッチ有、直接インターネット接続無

※上記ネットワークオプションは、インスタンス作成後に変更が出来ないのでご注意ください。

今回はSagemakerサービスの使い方や概要、ノートブックインスタンスの立て方についてはお話しませんので、それらは他の方の記事でわかりやすく説明されているのでご覧ください。

1.No VPC

自分のAWSアカウント内に作成しているVPCと接続がないSagemakerとしてデフォルトの構成になります。

SagemakerノートブックインスタンスはAWSが管理するSagemaer Service ManagedのVPC上に起動し、他AWSマネージドサービスや外部接続もそのVPCからのインターネット接続となります。

ノートブックインスタンスへのログインもManaged VPC内にあるENI経由で接続するため、SSHアクセス制限を設定したい場合、特定のIPアドレスやVPCからのアクセスのみを許可するIAMポリシーを作成し、IAMグループやロールにアタッチすることでセキュリティを高めることができます。

ユースケース

  • ノートブックインスタンス→S3、AWS以外の外部リソースの接続がインターネット経由で十分
  • 社内環境サーバ→AWSサービスへの通信要件に制限がなく、検証目的などで利用する

2.VPCアタッチ有、直接インターネット接続有

こちらは自身のアカウントのVPC内にENIが設置される構成で、ノートブックインスタンス とVPC内のリソースを接続できるようになります。

S3、AWS以外の外部リソースの接続は”1.No VPC”と同様なので、別の経路でプライベート接続をしたいサーバやリソースがある場合はこのオプションで「VPCプライベートサブネット、直接インターネット有効化」を選択してインスタンスを作成しましょう。

自身のアカウント内のVPCに接続できれば、その先にあるVPCピアリング先のサブネット、DirectConnectやVPNを経由した社内サーバの接続が可能です。また、プライベートサブネットにENIがあるため、EFSをノートブックインスタンスにアタッチしたい場合はVPCのアタッチを選択しましょう(EFS ファイルシステムを Amazon SageMaker ノートブックに (ライフサイクル設定を含めて) マウントする)。

このようにノートブックインスタンス間でスクリプト共有を容易にしたい場合にEFSのマウントが使われますが、AWS re:Invent2019で発表されたSagemaker Studioを使用してインスタンスやSagemakerユーザを管理するほうが便利かと思います。(Studioが開発環境を作る際にバックエンドでEFSの作成とマウントを自動でやってくれます)ただし、Studioは現時点で(2020/7/15)使用できるリージョンが限られている他、他VPCへのネットワーク接続もできない点にご注意ください。

Sagemaker Studioに関してはDevelopers.IO 2020 Connectで非常にわかりやすく解説しているセッションの動画がありますのでご覧ください。

ユースケース

  • ノートブックインスタンスとプライベートVPC内のリソース(EC2、EFS等)を接続したい
  • 社内サーバとの接続でDirecrConnectやVPN等によるプライベート通信が必要である

3.VPCアタッチ有、直接インターネット接続無

こちらは上記2パターンと違い、マネージドVPCからのENIがなく、プライベートVPCへの接続のみの構成となります。上述のパターン2で紹介したVPCエンドポイント接続のほか、プライベートVPC内のリソース以外の他のAWSサービスに接続するにはVPCエンドポイント、インターネットアクセスを実現するにはNATゲートウェイ or NATインスタンスを設定する必要があります。

Sagemaker Managed VPC側のリソースをユーザは管理できないので、通常のVPCのようなSG等を用いて外部通信とのしたい場合は、VPCアタッチ有効化に加え直接インターネット接続無効化を設定し、トラフィックをすべてプライベートVPC経由にする必要があります。

ユースケース

  • インターネット接続をさせたくない、またはインターネット接続をプロキシやNATサーバ経由としたい
  • S3バケットポリシーや社内のファイアーウォールなどの事情から、IPアドレスによる制限やエンドポイント 指定のアクセス制限を実現したい
  • Sagemakerの利用環境をプライベートネットワークで完結させたい

まとめ

今回はとある案件でSagemaker環境の構築を検討する機会があったため、Sagemakerを利用する上でのネットワークをどう考えればよいかを記事にしてみました。ノートブックインスタンスのセキュリティを考慮する際の考え方や制限のレベルを検討する参考になれば幸いです。

参考