Git 리포지토리를 Amazon SageMaker 노트북 인스턴스에 연결하는 문제를 해결하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2022년 11월 14일

Git 리포지토리를 Amazon SageMaker 노트북 인스턴스에 추가하려고 하는데 다음과 같은 오류가 하나 이상 발생합니다.

  • "fatal: unable to access : the requested URL returned error: 403"
  • "fatal: unable to access : failed to connect to …: port 443: connection timed out"
  • "fatal: unable to access could not resolve the host: …"
  • "fatal: could not read Username for : terminal prompts disabled"
  • "fatal: could not read Password for : terminal prompts disabled"
  • "fatal: authentication failed for "
  • "No space left on device while cloning Git repo. Please try using a larger volume"

해결 방법

SageMaker 노트북 인스턴스에 새 Git 리포지토리를 추가하려면 Amazon SageMaker 계정에 Git 리포지토리 추가를 참조하세요. AWS CodeCommit에서 호스팅되지 않은 Git 리포지토리를 추가하려고 하면 다음과 같은 오류가 발생할 수 있습니다.

연결 관련 오류

연결 문제가 있는 경우 다음과 같은 오류 중 하나가 발생할 수 있습니다.

  • "fatal: unable to access : the requested URL returned error: 403"
  • "fatal: unable to access : failed to connect to …: port 443: connection timed out"
  • "fatal: unable to access could not resolve the host: …"

이러한 오류를 해결하려면 다음을 수행합니다.

  • 노트북 인스턴스가 연결되어 있는지 확인합니다.
  • Git 리포지토리 URL이 정확한지 확인합니다.

노트북 인스턴스가 연결되어 있는지 확인

노트북 인스턴스가 Git 리포지토리에 성공적으로 연결되었는지 확인합니다. 이 리포지토리는 온프레미스 Git 리포지토리 서버 또는 퍼블릭 클라우드 서버(예: GitHub, Bitbucket 또는 GitLab)에 위치할 수 있습니다.

노트북 인스턴스에 사용되는 네트워크 구성을 확인합니다. 노트북 인스턴스는 다음과 같은 네트워크 구성 중 하나를 가질 수 있습니다.

  • 인스턴스가 Amazon Virtual Private Cloud(VPC)에 연결되어 있지 않습니다.
  • Amazon VPC가 인터넷에 직접 액세스할 수 있습니다.
  • VPC가 인터넷에 직접 액세스할 수 없습니다.

    VPC를 사용하는 경우 서브넷, 보안 그룹, 네트워크 ACL(액세스 제어 목록), NAT 게이트웨이, 인터넷 게이트웨이 및 라우팅 테이블이 올바르게 구성되어 있는지 확인하세요.

      Git 리포지토리 URL이 정확한지 확인

      추가하려는 Git 리포지토리 URL의 형식이 다음과 같아야 합니다.

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

      다음과 같이 항목을 바꿔야 합니다.

      • workspace를 Git 워크스페이스 이름으로 바꿉니다.
      • repository.git을 파일 확장명이*.git인 코드 리포지토리 이름으로 바꿉니다.

      예를 들어 Bitbucket을 Git 리포지토리로 사용하고 사용자의 워크스페이스 이름이 myworkspace이며 사용자의 Git 리포지토리가 myrepository.git인 경우 Git 리포지토리 URL은 https://bitbucket.org/myworkspace/myrepository.git이 되어야 합니다.

      인증 관련 오류

      인증 문제가 있는 경우 다음과 같은 오류 중 하나가 발생할 수 있습니다.

      • "fatal: could not read Username for : terminal prompts disabled"
      • "fatal: could not read Password for : terminal prompts disabled"
      • "fatal: authentication failed for "

      이러한 오류를 해결하려면 다음을 수행합니다.

      • 인증 세부 정보를 확인합니다.
      • AWS Secrets Manager에 액세스하는 데 필요한 권한이 AWS Identity and Access Management(IAM) 사용자 또는 역할에 있는지 확인합니다.

      인증 세부 정보가 정확한지 확인

      Secrets Manager에서 사용자 이름과 암호가 정확한지 확인합니다.

      • GitHub: 2단계 인증을 활성화한 경우 암호 대신 개인용 액세스 토큰을 사용해야 합니다. 이 토큰이 생성된 후에는 새로 생성된 토큰을 사용하여 Secrets Manager에서 암호를 업데이트해야 합니다.
      • Bitbucket: Bitbucket은 Git 인증을 위한 계정 암호를 지원하지 않습니다. 개인 설정을 사용하여 앱 암호를 생성하는 것이 가장 좋습니다. 앱 암호를 생성한 후에는 Secrets Manager에서 암호를 업데이트해야 합니다.
      • GitLab: 2단계 인증을 활성화한 경우 암호 대신 개인용 액세스 토큰을 사용해야 합니다. 이 토큰이 생성된 후에는 새로 생성된 토큰을 사용하여 Secrets Manager에서 암호를 업데이트해야 합니다.

      노트북 인스턴스의 IAM 역할에 필요한 권한이 있는지 확인

      노트북 인스턴스에 사용되는 IAM 역할의 IAM 정책secretsmanager:GetSecretValue 권한이 연결되어 있는지 확인합니다. IAM 역할에 필요한 권한이 없는 경우 다음과 같은 정책을 IAM 역할에 추가할 수 있습니다.

      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:GetSecretValue"
            ],
            "Resource": [
              "example-secret-ARN"
            ]
          },
          {
            "Effect": "Allow",
            "Action": "secretsmanager:ListSecrets",
            "Resource": "*"
          }
        ]
      }
      참고: example-secret-ARN은 Git 리포지토리 인증에 대한 보안 암호(사용자 이름 및 암호)가 있는 Secrets Manager의 ARN입니다.

      스토리지 관련 오류

      스토리지 관련 문제가 있는 경우 다음과 같은 오류가 발생할 수 있습니다.

      • "No space left on device while cloning Git repo. Please try using a larger volume"

      이 오류를 해결하려면 노트북 인스턴스에 충분한 스토리지가 있는지 확인하세요. 노트북 인스턴스 볼륨의 여유 공간 크기가 복제에 사용하는 Git 리포지토리의 여유 공간보다 커야 합니다. 디스크 공간이 부족할 경우 VolumeSizeInGB에 더 큰 값을 지정하세요. 자세한 내용은 Amazon SageMaker를 사용하여 노트북 볼륨 크기를 최대 16TB까지 사용자 지정을 참조하세요.