AWS Glue Studio에서 노트북 시작하기 - AWS Glue Studio

AWS Glue Studio에서 노트북 시작하기

AWS Glue Studio를 통해 노트북을 시작하는 경우 데이터를 탐색하고 몇 초 만에 작업 스크립트 개발을 시작할 수 있도록 모든 구성 단계가 완료됩니다.

다음 섹션에서는 AWS Glue Studio를 사용하여 ETL 작업용 노트북을 생성하는 방법을 설명합니다.

IAM 역할에 권한 부여

AWS Glue Studio 설정은 노트북을 사용하기 위한 전제 조건입니다. AWS Glue Studio의 역할 설정에 대한 자세한 내용은 AWS Glue Studio 사용자에게 필요한 IAM 권한 검토 섹션을 참조하세요.

노트북을 사용하기 위해 사용할 역할에는 다음 세 가지가 필요합니다.

  • sts:AssumeRole 작업(및 태그 지정을 원할 경우 sts:TagSession 작업)을 수행하기 위한 AWS Glue와의 신뢰 관계

  • 노트북, AWS Glue 및 대화형 세션에 대한 모든 API 작업을 포함하는 IAM 정책

  • 전달 역할에 대한 IAM 정책(역할이 노트북에서 대화형 세션으로 전달될 수 있어야 하기 때문)

AWS Glue와의 신뢰 관계에 필요한 작업

노트북 세션을 시작할 때 노트북에 전달되는 역할의 신뢰 관계에 sts:AssumeRole을 추가해야 합니다. 세션에 태그가 포함되어 있는 경우 sts:TagSession 작업도 전달해야 합니다. 이러한 작업이 없으면 노트북 세션을 시작할 수 없습니다.

노트북에 대한 API 작업을 포함하는 정책

다음 샘플 정책은 노트북에 대한 필수적인 AWS IAM 권한을 설명합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:StartNotebook", "glue:TerminateNotebook", "glue:GlueNotebookRefreshCredentials", "glue:DeregisterDataPreview", "glue:GetNotebookInstanceStatus", "glue:GlueNotebookAuthorize" ], "Resource": "*" } ] }

다음 IAM 정책을 사용하여 특정 리소스에 대한 액세스를 허용할 수 있습니다.

  • AwsGlueSessionUserRestrictedNotebookServiceRole: 세션을 제외한 모든 AWS Glue 리소스에 대한 전체 액세스 권한을 제공합니다. 사용자가 자신과 연결된 노트북 세션만 생성하고 사용할 수 있도록 허용합니다. 이 정책에는 다른 AWS 서비스에서 AWS Glue 리소스를 관리하는 데 AWS Glue에서 필요한 기타 권한도 포함됩니다.

  • AwsGlueSessionUserRestrictedNotebookPolicy: 사용자가 자신과 연결된 노트북 세션만 생성하고 사용할 수 있도록 허용하는 권한을 제공합니다. 이 정책에는 제한된 AWS Glue 세션 역할을 사용자가 전달할 수 있도록 명시적으로 허용하는 권한도 포함되어 있습니다.

전달 역할에 대한 IAM 정책

역할이 있는 노트북을 생성하면 해당 역할이 대화형 세션으로 전달되므로 두 위치에서 동일한 역할을 사용할 수 있습니다. 따라서 iam:PassRole 권한은 역할의 정책의 일부여야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::090000000210:role/<role_name>" } ] }

AWS Glue Studio에서 노트북을 사용하여 ETL 작업 생성

AWS Glue Studio 콘솔에서 노트북 사용을 시작하려면

  1. AWS Glue Studio에 대한 IAM 권한 설정에 설명된 것처럼 AWS Identity and Access Management 정책을 AWS Glue Studio 사용자에게 연결하고 ETL 작업 및 노트북에 대한 IAM 역할을 생성합니다.

  2. IAM 역할에 권한 부여에 설명된 대로 노트북에 대한 추가 IAM 보안을 구성합니다.

  3. https://console.aws.amazon.com/gluestudio/에서 AWS Glue Studio 콘솔을 엽니다.

    참고

    브라우저가 서드 파티 쿠키를 차단하지 않는지 확인합니다. 브라우저가 기본값 또는 사용자가 지정한 설정으로 서드 파티 쿠키를 차단하는 경우 노트북이 실행되지 않습니다. 쿠키 관리에 관한 자세한 내용은 다음을 참조하세요.

  4. 왼쪽 탐색 메뉴에서 작업(Jobs) 링크를 선택합니다.

  5. Jupyter Notebook(Jupyter notebook)을 선택한 다음 생성(Create)을 선택하여 새 노트북 세션을 시작합니다.

  6. Jupyter Notebook에서 작업 생성 페이지에서 작업 이름을 제공하고 사용할 IAM 역할을 선택합니다. 작업 생성(Create job)을 선택합니다.

    잠시 후에 노트북 편집기가 나타납니다.

  7. 코드를 추가한 후 셀을 실행하여 세션을 시작해야 합니다. 다음과 같은 여러 가지 방법으로 셀을 실행할 수 있습니다.

    • 재생 버튼을 누릅니다.

    • 키보드 단축키를 사용합니다.

      • MacOS에서 Command + Enter를 눌러 셀을 실행합니다.

      • Windows에서 Shift + Enter를 눌러 셀을 실행합니다.

    Jupyter Notebook 인터페이스를 사용하여 코드를 작성하는 방법에 대한 자세한 내용은 Jupyter Notebook 사용 설명서를 참조하세요.

  8. 스크립트를 테스트하려면 전체 스크립트 또는 개별 셀을 실행합니다. 모든 명령 출력은 셀 아래 영역에 표시됩니다.

  9. 노트북 개발을 마친 후 작업을 저장하고 실행할 수 있습니다. 스크립트(Script) 탭에서 스크립트를 찾을 수 있습니다. 노트북에 추가한 모든 매직은 제거되고 생성된 AWS Glue 작업의 스크립트의 일부로 저장되지 않습니다. AWS Glue Studio는 노트북 내용에서 생성된 스크립트의 끝에 job.commit()을 자동으로 추가합니다.

    작업 실행 방법에 대한 자세한 내용은 작업 실행 시작 섹션을 참조하세요.

노트북 편집기 구성 요소

노트북 편집기 인터페이스에는 다음과 같은 기본 섹션이 있습니다.

  • 노트북 인터페이스(기본 패널) 및 도구 모음

  • 작업 편집 탭

노트북 편집기

AWS Glue Studio 노트북 편집기는 Jupyter Notebook 애플리케이션을 기반으로 합니다. AWS Glue Studio 노트북 인터페이스는 노트북 사용자 인터페이스 섹션에 설명된, Juypter Notebook에서 제공하는 인터페이스와 비슷합니다. 대화형 세션에서 사용하는 노트북은 Jupyter Notebook입니다.

AWS Glue Studio 노트북은 Juptyer 노트북과 비슷하지만 다음과 같은 몇 가지 주요 차이점이 있습니다.

  • 현재 AWS Glue Studio 노트북은 확장을 설치할 수 없습니다.

  • 여러 탭을 사용할 수 없습니다. 작업과 노트북 간에 1:1 관계입니다.

  • AWS Glue Studio 노트북에는 Jupyter Notebook에 있는 것과 같은 상단 파일 메뉴가 없습니다.

  • 현재 AWS Glue Studio 노트북은 AWS Glue 커널에서만 실행됩니다. 커널은 직접 업데이트할 수 없습니다.

AWS Glue Studio 작업 편집 탭

ETL 작업을 조작하는 데 사용하는 탭은 노트북 페이지 상단에 있습니다. AWS Glue Studio의 시각적 작업 편집기에 표시되는 탭과 비슷하며, 동일한 작업을 수행합니다.

  • 노트북(Notebook) - 노트북 인터페이스를 사용하여 작업 스크립트를 보려면 이 탭을 사용합니다.

  • 작업 세부 정보(Job details) - 작업 실행의 환경과 속성을 구성합니다.

  • 실행(Runs) - 이 작업의 이전 실행 정보를 봅니다.

  • 일정(Schedules) - 특정 시간에 작업 실행 일정을 구성합니다.

노트북 및 작업 스크립트 저장

생성 중인 작업 스크립트와 노트북을 언제든지 저장할 수 있습니다. 시각적 편집기나 스크립트 편집기를 사용하는 경우와 마찬가지로, 오른쪽 위에 있는 저장(Save) 버튼을 선택하면 됩니다.

저장을 선택하면 노트북 파일이 기본 위치에 저장됩니다.

  • 기본적으로 작업 스크립트는 작업 세부 정보 탭의 고급 속성 아래 작업 세부 정보 속성 스크립트 경로에 표시된 Amazon S3 위치에 저장됩니다. 작업 스크립트는 Scripts라는 하위 폴더에 저장됩니다.

  • 기본적으로 노트북 파일(.ipynb)은 작업 세부 정보 탭의 고급 속성 아래 작업 세부 정보 스크립트 경로에 표시된 Amazon S3 위치에 저장됩니다. 노트북 파일은 Notebooks라는 하위 폴더에 저장됩니다.

참고

작업을 저장하면 작업 스크립트에는 노트북의 코드 셀만 포함됩니다. 마크다운 셀 및 매직은 작업 스크립트에 포함되지 않습니다. 그러나 .ipynb 파일에는 마크다운과 매직이 포함됩니다.

작업을 저장한 후 노트북에서 생성한 스크립트를 사용하여 작업을 실행할 수 있습니다.

노트북 세션 관리

AWS Glue Studio의 노트북은 AWS Glue의 대화형 세션 기능을 기반으로 합니다. 대화형 세션을 사용하면 비용이 발생합니다. 비용을 관리하기 위해 계정에 대해 생성된 세션을 모니터링하고 모든 세션의 기본 설정을 구성할 수 있습니다.

모든 노트북 세션의 기본 시간 제한 변경

기본적으로 프로비저닝된 AWS Glue Studio 노트북은 노트북이 시작되고 셀이 실행되지 않은 경우 12시간 후에 시간 초과됩니다. 관련된 비용이 없으며 제한 시간을 구성할 수 없습니다.

셀을 실행하면 대화형 세션이 시작됩니다. 이 세션의 기본 제한 시간은 48시간입니다. 셀을 실행하기 전에 %idle_timeout 매직을 전달하여 이 제한 시간을 구성할 수 있습니다.

AWS Glue Studio에서 노트북의 기본 세션 시간 제한을 수정하려면

  1. 노트북의 셀에 %idle_timeout 매직을 입력하고 시간 제한 값을 분 단위로 지정합니다.

  2. 예: %idle_timeout 15는 기본 시간 제한을 15분으로 변경합니다. 15분 내에 세션을 사용하지 않으면 세션이 자동으로 중지됩니다.

추가 Python 모듈 설치

pip를 사용하여 세션에 추가 모듈을 설치하려는 경우 %additional_python_modules를 사용하여 세션에 추가하면 됩니다.

%additional_python_modules awswrangler, s3://mybucket/mymodule.whl

additional_python_modules에 대한 모든 인수가 pip3 install -m <>에 전달됩니다.

사용 가능한 Python 모듈 목록을 보려면 AWS Glue에서 Python 라이브러리 사용을 참조하세요.

AWS Glue 구성 변경

매직을 사용하여 AWS Glue 작업 구성 값을 제어할 수 있습니다. 작업 구성 값을 변경하려면 노트북에서 적절한 매직을 사용해야 합니다.

AWS Glue는 다양한 작업자 유형을 지원합니다. %worker_type을 사용하여 작업자 유형을 설정할 수 있습니다. 예: %worker_type G.2X . 기본값은 G.1X입니다.

%number_of_workers를 사용하여 작업자 수도 지정할 수 있습니다. 예를 들어 40개의 작업자를 지정하려면 %number_of_workers 40을 사용합니다.

자세한 내용은 작업 속성 수정을 참조하세요.

노트북 세션 중지

노트북 세션을 중지하려면 %stop_session 매직을 사용합니다.

AWS 콘솔에서 노트북을 나가는 경우 경고 메시지가 표시되며, 여기서 세션 중지를 선택할 수 있습니다.