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

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

このセクションでは、AWS SageMaker を使用して FSx ONTAP をプライベート S3 バケットとして設定する方法について説明します。

はじめに

このページでは、SageMaker を例に、FSx ONTAP をプライベート S3 バケットとして設定する方法について説明します。

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

ユーザーガイド

サーバーの作成

SageMakerノートブックインスタンスを作成する

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

    AWSコンソールを開く

  2. [ノートブック] タブの [ノートブック インスタンス] を開き、オレンジ色のボタン [ノートブック インスタンスの作成] をクリックします。

    AWS SageMaker ノートブックインスタンスコンソール

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

    ノートブックインスタンスを作成する

FSx ONTAPファイルシステムを作成する

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

    FSxパネル

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

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

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

    ファイルシステムの種類を選択

  4. 詳細設定ページで。

    1. *標準作成*オプションを選択します。

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

    2. *ファイルシステム名*と*SSDストレージ容量*を入力します。

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

    3. SageMaker Notebook インスタンスと同じ VPCサブネット を使用するようにしてください。

      ネットワークとセキュリティの構成

    4. ストレージ仮想マシン 名を入力し、SVM (ストレージ仮想マシン) の パスワードを指定 します。

      デフォルトのストレージ仮想マシン構成

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

    Jupyter Labターミナル

  6. 次の順序でコマンドを実行します。 FSx ONTAPプライベート S3 バケット名 の名前として fsxn-ontap を使用します。 -vserver 引数には ストレージ仮想マシン名 を使用してください。

    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 にあることを確認します。

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

よくある質問(2023年9月27日現在)

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

A: プライベート S3 バケットとして、FSx ONTAP は最大 100 MB のファイルのアップロードをサポートします。 S3 プロトコルを使用する場合、100 MB を超えるファイルは 100 MB のチャンクに分割され、「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 サービスと互換性がありません。