Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

パート1 - Amazon FSx for NetApp ONTAP(FSx ONTAP)をプライベートS3バケットとしてAWS SageMakerに統合する

共同作成者

このセクションでは、AWS SageMakerを使用して、FSx ONTAPをプライベートS3バケットとして設定するためのガイドを提供します。

作成者:
NetAppシニアデータ&アプリケーションサイエンティスト、Jian Jian(Ken)

はじめに

このページでは、SageMakerを例に、FSx ONTAPをプライベートS3バケットとして設定するためのガイダンスを示します。

FSx ONTAPの詳細については、こちらのプレゼンテーションをご覧ください("ビデオリンク"

ユーザーガイド

サーバの作成

SageMakerノートブックインスタンスの作成

  1. AWSコンソールを開きます。検索パネルで、SageMakerを検索し、サービス* Amazon SageMaker *をクリックします。

    AWSコンソールを開く

  2. Notebookタブの* Notebook Instances を開き、オレンジ色の Create notebook instance *ボタンをクリックします。

    AWS SageMaker Notebookインスタンスコンソール

  3. 作成ページで、ノートブックインスタンス名*を入力します。*ネットワーク*パネルを展開し、その他のエントリをデフォルトのままにして、 VPC*、サブネットセキュリティグループ*を選択します。(この VPC Subnet は後でFSx ONTAPファイルシステムの作成に使用します)右下のオレンジ色のボタン[Create notebook instance]*をクリックします。

    ノートブックインスタンスの作成

FSx ONTAPファイルシステムの作成

  1. AWSコンソールを開きます。検索パネルでFSxを検索し、サービス* FSX *をクリックします。

    FSxパネル

  2. [ファイルシステムの作成]*をクリックします。

    ファイルシステムを作成します

  3. 最初のカード* FSx ONTAP を選択し、 Next *をクリックします。

    ファイルシステムタイプの選択

  4. をクリックします。

    1. [標準作成(Standard create)]*オプションを選択します。

      "[ファイルシステムの作成パネル"]

    2. [File system name]*と[SSD storage capacity]*を入力します。

      ファイルシステムの詳細を指定

    3. 必ず* VPC と*サブネット*を SageMaker Notebook *インスタンスと同じにしてください。

      ネットワークとセキュリティの設定

    4. Storage Virtual Machine *の名前を入力し、SVM(Storage Virtual Machine)の*パスワードを*指定してください。

      Storage Virtual Machineのデフォルト設定

    5. [その他のエントリ]はデフォルトのままにして、右下のオレンジ色のボタン*[次へ]*をクリックします。

      設定の確認

    6. レビューページの右下にあるオレンジ色の*ファイルシステムの作成*ボタンをクリックします。

      構成を確認して作成を確認

  5. FSxファイルシステムのスピンアップには約* 20~40分*かかる場合があります。

    FSxコンソールの点検

サーバの設定

ONTAPの設定

  1. 作成したFSxファイルシステムを開きます。ステータスが*利用可能*であることを確認してください。

    バックエンドの作成を待機する

  2. [管理]タブを選択し、[管理エンドポイント- IPアドレス]*と[ ONTAP管理者のユーザー名]*のままにします。

    ファイルシステム詳細コンソール

  3. 作成した* SageMaker Notebookインスタンス*を開き、*[JupyterLab]*をクリックします。

    AWS SageMaker Notebookインスタンスコンソール

  4. Jupyter Labページで、新しい*ターミナル*を開きます。

    Jupyter Labのようこそページ

  5. sshコマンドssh < admin user name >@< ONTAP server IP >を入力し、FSx ONTAPファイルシステムにログインします。(ユーザ名とIPアドレスは手順2で取得)* Storage Virtual Machine *の作成時に使用したパスワードを使用してください。

    Jupyter Lab端末

  6. 次の順序でコマンドを実行します。FSx ONTAPプライベートS3バケット名*の名前には* fsxn- ONTAP を使用します。SVM *引数には Storage Virtual Machine名*を使用してください。

    vserver object-store-server create -vserver fsxn-svm-demo -object-store-server fsx_s3 -is-http-enabled true -is-https-enabled false
    
    vserver object-store-server user create -vserver fsxn-svm-demo -user s3user
    
    vserver object-store-server group create -name s3group -users s3user -policies FullAccess
    
    vserver object-store-server bucket create fsxn-ontap -vserver fsxn-svm-demo -type nas -nas-path /vol1

    Jupyter Lab端末出力

  7. 以下のコマンドを実行して、FSx ONTAPプライベートS3のエンドポイントIPとクレデンシャルを取得します。

    network interface show -vserver fsxn-svm-demo -lif nfs_smb_management_1
    
    set adv
    
    vserver object-store-server user show
  8. あとで使用できるように、エンドポイントのIPとクレデンシャルを保持します。

    Jupyter Lab端末

クライアント設定

  1. SageMaker Notebookインスタンスで、新しいJupyterノートブックを作成します。

    新しいJupyterノートブックを開く

  2. FSx ONTAPプライベートS3バケットにファイルをアップロードする回避策として、以下のコードを使用してください。包括的なコード例については、このノートブックを参照してください。"fsxn_demo.ipynb"

    # Setup configurations
    # -------- Manual configurations --------
    seed: int = 77                                              # Random seed
    bucket_name: str = 'fsxn-ontap'                             # The bucket name in ONTAP
    aws_access_key_id = '<Your ONTAP bucket key id>'            # Please get this credential from ONTAP
    aws_secret_access_key = '<Your ONTAP bucket access key>'    # Please get this credential from ONTAP
    fsx_endpoint_ip: str = '<Your FSx ONTAP IP address>'        # Please get this IP address from FSx ONTAP
    # -------- Manual configurations --------
    
    # Workaround
    ## Permission patch
    !mkdir -p vol1
    !sudo mount -t nfs $fsx_endpoint_ip:/vol1 /home/ec2-user/SageMaker/vol1
    !sudo chmod 777 /home/ec2-user/SageMaker/vol1
    
    ## Authentication for FSx ONTAP as a Private S3 Bucket
    !aws configure set aws_access_key_id $aws_access_key_id
    !aws configure set aws_secret_access_key $aws_secret_access_key
    
    ## Upload file to the FSx ONTAP Private S3 Bucket
    %%capture
    local_file_path: str = <Your local file path>
    
    !aws s3 cp --endpoint-url http://$fsx_endpoint_ip /home/ec2-user/SageMaker/$local_file_path  s3://$bucket_name/$local_file_path
    
    # Read data from FSx ONTAP Private S3 bucket
    ## Initialize a s3 resource client
    import boto3
    
    # Get session info
    region_name = boto3.session.Session().region_name
    
    # Initialize Fsxn S3 bucket object
    # --- Start integrating SageMaker with FSXN ---
    # This is the only code change we need to incorporate SageMaker with FSXN
    s3_client: boto3.client = boto3.resource(
        's3',
        region_name=region_name,
        aws_access_key_id=aws_access_key_id,
        aws_secret_access_key=aws_secret_access_key,
        use_ssl=False,
        endpoint_url=f'http://{fsx_endpoint_ip}',
        config=boto3.session.Config(
            signature_version='s3v4',
            s3={'addressing_style': 'path'}
        )
    )
    # --- End integrating SageMaker with FSXN ---
    
    ## Read file byte content
    bucket = s3_client.Bucket(bucket_name)
    
    binary_data = bucket.Object(data.filename).get()['Body']

これで、FSx ONTAPとSageMakerインスタンスの統合は終了です。

便利なデバッグチェックリスト

  • SageMaker NotebookインスタンスとFSx ONTAPファイルシステムが同じVPC内にあることを確認します。

  • ONTAPで* set dev コマンドを実行して、特権レベルを dev *に設定することを忘れないでください。

FAQ(2023年9月27日現在)

Q:FSX ONTAPにファイルをアップロードするときに、CreateMultipartUpload操作を呼び出したときに「エラーが発生しました(NotImplemented):要求したs3コマンドが実装されていません」というエラーが表示されるのはなぜですか?

A:プライベートS3バケットとして、FSx ONTAPは最大100MBのファイルのアップロードをサポートしています。S3プロトコルを使用する場合、100MBを超えるファイルは100MBのチャンクに分割され、「CreateMultipartUpload」関数が呼び出されます。ただし、FSx ONTAPプライベートS3の現在の実装では、この機能はサポートされていません。

Q: FSx ONTAPにファイルをアップロードする際に、「* PutObject操作を呼び出したときにエラーが発生しました(AccessDenied)」というエラーが表示されるのはなぜですか?

A:SageMaker NotebookインスタンスからFSx ONTAPプライベートS3バケットにアクセスするには、AWSのクレデンシャルをFSx ONTAPのクレデンシャルに切り替えます。ただし、インスタンスに書き込み権限を付与するには、バケットをマウントし、「chmod」シェルコマンドを実行して権限を変更する 回避策 解決策 が必要です。

Q:FSx ONTAPプライベートS3バケットを他のSageMaker MLサービスと統合するにはどうすればよいですか。

A:残念ながら、SageMakerサービスSDKは、プライベートS3バケットのエンドポイントを指定する方法を提供していません。そのため、FSx ONTAP S3はSagemaker Data Wrangler、Sagemaker Clarify、Sagemaker Glue、Sagemaker Athena、Sagemaker AutoMLなどのSageMakerサービスと互換性がありません。