내용으로 건너뛰기

SageMaker AI 노트북 인스턴스에 코드 리포지토리를 추가하려면 어떻게 해야 합니까?

2분 분량
0

Amazon SageMaker AI 인스턴스에 코드 리포지토리를 추가하려고 합니다.

해결 방법

SageMaker AI는 GitHub 코드 리포지토리와의 통합을 지원합니다. HTTPS의 경우 SageMaker AI에 내장된 Git 통합을 사용합니다. 가상 프라이빗 클라우드(VPC)를 통해 액세스하는 SSH 리포지토리 또는 내부 Git 서버의 경우 수명 주기 구성을 사용합니다.

HTTPS에 SageMaker AI Git 통합 사용

SageMaker AI 계정에 Git 리포지토리를 추가합니다.

리포지토리에 들어갈 때는 다음 형식을 사용합니다.

  • GitHub URL: https://github.com/workspace/repository.git
  • Bitbucket URL: https://bitbucket.org/workspace/repository.git
  • GitLab URL: https://gitlab.com/workspace/repository.git

SageMaker AI는 리포지토리를 **/home/ec2-user/SageMaker/**에 복제합니다.

SSH 기반 Git 통합에 수명 주기 구성 사용

다음 단계를 완료합니다.

  1. AWS Secrets Manager에 SSH 프라이빗 키를 저장합니다.

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

  3. 노트북 시작 편집기에서 다음 스크립트를 입력하고 Git 서버 및 보안 정책에 맞게 사용자 지정합니다.

    bash
    #!/bin/bash
    python << EOF
    import boto3
    import base64
    
    
    secret_name = "your_secret_name"
    region_name = "your_region"
    
    
    session = boto3.session.Session()
    client = session.client(service_name='secretsmanager', region_name=region_name)
    get_secret_value_response = client.get_secret_value(SecretId=secret_name)
    
    
    if 'SecretString' in get_secret_value_response:
     secret = get_secret_value_response['SecretString']
     with open('/home/ec2-user/.ssh/id_rsa', 'wt') as tmp:
     tmp.write(secret)
    else:
     decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])
     with open('/home/ec2-user/.ssh/id_rsa', 'wt') as tmp:
     tmp.write(decoded_binary_secret)
    EOF
    
    
    echo "Host github.com " >> /home/ec2-user/.ssh/config
    echo " StrictHostKeyChecking no" >> /home/ec2-user/.ssh/config
    echo " IdentityFile /home/ec2-user/.ssh/id_rsa" >> /home/ec2-user/.ssh/config
    
    
    chmod 600 /home/ec2-user/.ssh/config
    chmod 600 /home/ec2-user/.ssh/id_rsa
    chown ec2-user:ec2-user /home/ec2-user/.ssh/config
    chown ec2-user:ec2-user /home/ec2-user/.ssh/id_rsa
    
    
    cd /home/ec2-user/SageMaker
    sudo su ec2-user -c "git clone git@github.com:myAccount/SageMakerNotebook.git"
    
    
    rm /home/ec2-user/.ssh/config
  4. 노트북 인스턴스의 AWS Identity and Access Management(IAM) 역할에 Secrets Manager에 액세스할 수 있는 다음 권한 정책이 있는지 확인합니다.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "secretsmanager:GetSecretValue",
          "Resource": "arn:aws:secretsmanager:region:account-id:secret:secret-name"
        }
      ]
    }

관련 정보

Amazon SageMaker AI 노트북 인스턴스 생성

ID 기반 정책

Git 리포지토리를 SageMaker AI 노트북 인스턴스에 연결하는 것과 관련된 문제를 해결하려면 어떻게 해야 합니까?

AWS 공식업데이트됨 8달 전