SageMaker 노트북에서 대화형 세션 사용 - AWS Glue

SageMaker 노트북에서 대화형 세션 사용

SageMaker 노트북에서 대화형 세션을 실행하려면 단계에 따라 새 수명 주기 구성 및 SageMaker 노트북 인스턴스를 생성합니다.

기존 SageMaker 노트북 인스턴스에 설치

참고

기존 SageMaker 노트북 인스턴스에 대화형 세션 설치는 현재 지원되지 않습니다. 기존 SageMaker 노트북 인스턴스에서 수명 주기 구성을 실행할 수 있지만, 기존 SageMaker 노트북 인스턴스에 대화형 세션을 설치하면 KernelSpec 관리자 클래스가 수정되어 다른 워크로드에 문제가 발생할 수 있습니다.

대화형 세션을 사용하여 새 수명 주기 구성 및 SageMaker 노트북 인스턴스 생성

SageMaker Console 설정

  1. 수명 주기 구성을 생성합니다.

    1. SageMaker Console에서 수명 주기 구성(Lifecycle configurations) 페이지를 엽니다.

      
                    수명 주기 구성(Lifecycle configurations) 옵션이 선택되어 있는 것을 보여주는 스크린샷입니다.
    2. 구성 생성(Create Configuration)을 선택합니다.

    3. 이름(Name) 필드에 'AWSGlueInteractiveSessionsPreview'를 입력합니다.

      
                    수명 주기 구성 생성(Create lifecycle configuration) 페이지를 보여주는 스크린샷입니다.
    4. 스크립트(Scripts) 섹션에서 노트북 생성(Create notebook) 탭을 선택합니다. 다음을 복사하여 텍스트 상자에 붙여 넣고 구성 만들기(Create configuration)를 선택합니다.

      #!/bin/bash set -ex sudo -u ec2-user -i <<'EOF' ANACONDA_DIR=/home/ec2-user/anaconda3 # Create and Activate Conda Env echo "Creating glue_pyspark conda enviornment" conda create --name glue_pyspark python=3.7 ipykernel jupyter nb_conda -y echo "Activating glue_pyspark" source activate glue_pyspark # Install Glue Sessions to Env echo "Installing AWS Glue Sessions with pip" pip install aws-glue-sessions # Clone glue_pyspark to glue_scala. This is required because I had to match kernel naming conventions to their environments and couldn't have two kernels in one conda env. echo "Cloning glue_pyspark to glue_scala" conda create --name glue_scala --clone glue_pyspark # Remove python3 kernel from glue_pyspark rm -r ${ANACONDA_DIR}/envs/glue_pyspark/share/jupyter/kernels/python3 rm -r ${ANACONDA_DIR}/envs/glue_scala/share/jupyter/kernels/python3 # Copy kernels to Jupyter kernel env (Discoverable by conda_nb_kernel) echo "Copying Glue PySpark Kernel" cp -r ${ANACONDA_DIR}/envs/glue_pyspark/lib/python3.7/site-packages/aws_glue_interactive_sessions_kernel/glue_pyspark/ ${ANACONDA_DIR}/envs/glue_pyspark/share/jupyter/kernels/glue_pyspark/ echo "Copying Glue Spark Kernel" mkdir ${ANACONDA_DIR}/envs/glue_scala/share/jupyter/kernels cp -r ${ANACONDA_DIR}/envs/glue_scala/lib/python3.7/site-packages/aws_glue_interactive_sessions_kernel/glue_spark/ ${ANACONDA_DIR}/envs/glue_scala/share/jupyter/kernels/glue_spark/ echo "Changing Jupyter kernel manager from EnvironmentKernelSpecManager to CondaKernelSpecManager" JUPYTER_CONFIG=/home/ec2-user/.jupyter/jupyter_notebook_config.py sed -i '/EnvironmentKernelSpecManager/ s/^/#/' ${JUPYTER_CONFIG} echo "c.CondaKernelSpecManager.name_format='conda_{environment}'" >> ${JUPYTER_CONFIG} echo "c.CondaKernelSpecManager.env_filter='anaconda3$|JupyterSystemEnv$|/R$'" >> ${JUPYTER_CONFIG} EOF systemctl restart jupyter-server
  2. 새 수명 주기 구성을 사용하여 SageMaker 노트북 인스턴스를 생성합니다.

    1. 노트북 인스턴스(Notebook Instances)를 선택합니다.

      
                    노트북 인스턴스(Notebook Instances) 옵션이 선택되어 있는 것을 보여주는 스크린샷입니다.
    2. 노트북 인스턴스 생성을 선택합니다.

    3. '노트북 인스턴스 이름(Notebook instance name)' 필드에 이름을 입력합니다.

      
                    노트북 인스턴스 생성(Create notebook instance) 페이지를 보여주는 스크린샷입니다.
    4. 플랫폼 식별자(Platform identifier)로 'notebook-al2-v1'을 선택합니다.

    5. 추가 구성(Additional configuration)을 선택하여 수명 주기 구성(Lifecycle configuration) - 선택 사항(optional) 드롭다운 메뉴를 표시합니다.

    6. AWS GlueInteractiveSessionsPreview를 선택합니다.

    7. 권한 및 암호화(Permissions and encryption) 섹션에서 AWS Glue 대화형 세션을 실행하는 데 필요한 권한이 있는 IAM 역할을 선택합니다. 자세한 내용은 IAM을 사용하여 AWS Glue 대화형 세션 보호를 참조하세요.

    8. 필요에 따라 추가 옵션 선택을 완료합니다. 완료했으면 노트북 인스턴스 생성(Create notebook instance)을 선택합니다.

  3. SageMaker 노트북 인스턴스에서 대화형 세션을 시작합니다.

    1. 노트북이 프로비저닝된 후 노트북 인스턴스 페이지에서 Jupyter Lab을 선택합니다.

    2. 노트북(Notebook) 섹션에서 conda_glue_pyspark 또는 conda_glue_scala 아이콘을 선택하여 새 노트북을 생성합니다.

      
                    노트북 인스턴스 생성(Create notebook instance) 페이지를 보여주는 스크린샷입니다.
  4. 코드 전에 셀에서 매직을 실행하여 AWS Glue 세션을 구성합니다. 사용 가능한 모든 매직을 찾으려면 첫 번째 셀에서 %help를 실행합니다. ~/.aws/configure에서 구성하지 않은 경우 %iam_role을 실행합니다.

  5. 대화형 세션을 구성하고 사용하는 방법에 대한 자세한 내용은 AWS Glue 대화형 세션 구성을 참조하세요.