AWS CodeCommit 는 더 이상 신규 고객이 사용할 수 없습니다. AWS CodeCommit 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
액세스 오류 및 AWS CodeCommit문제 해결
다음 정보는 AWS CodeCommit 리포지토리 연결 시 발생하는 액세스 오류를 해결하는 데 도움이 될 수 있습니다.
주제
액세스 오류: Windows에서 CodeCommit 리포지토리에 연결할 때 사용자 이름과 암호를 묻는 메시지가 나타납니다.
문제: Git을 사용하여 CodeCommit 리포지토리와 통신을 시도할 때 사용자 이름과 암호를 묻는 대화 상자가 나타납니다.
수정 방법: 이것은 Windows의 기본 제공 보안 인증 정보 관리 시스템일 수 있습니다. 구성에 따라 다음 중 하나를 수행합니다.
-
Git 보안 인증 정보와 함께 HTTPS를 사용하려는 경우 Git 보안 인증 정보가 시스템에 아직 저장되어 있지 않습니다. Git 보안 인정 정보를 제공하고 계속 진행합니다. 다시 메시지가 표시되지 않습니다. 자세한 내용은 Git 보안 인증 정보를 사용하는 HTTPS 사용자의 경우 섹션을 참조하세요.
HTTPS를 AWS CodeCommit용 보안 인증 도우미와 함께 사용하려는 경우, Windows 보안 인증 정보 관리 시스템과 호환되지 않습니다. 취소를 선택합니다.
또한 Windows용 Git를 설치할 때 Git 보안 인증 정보 관리자를 설치했음을 표시한 것일 수 있습니다. Git 보안 인증 정보 관리자는 AWS CLI에 포함된 CodeCommit용 보안 인증 도우미와 호환되지 않습니다. Git 보안 인증 정보 관리자를 제거하는 것을 고려하십시오. CodeCommit용 보안 인증 도우미를 사용하는 대신 git-remote-codecommit를 설치하고 구성할 수도 있습니다.
자세한 내용은 git-remote-codecommit을 사용하여 AWS CodeCommit에 대한 HTTPS 연결을 위한 설정 단계, AWS CLI 보안 인증 도우미를 사용하여 Windows에서 HTTPS 연결, Windows용 Git: Windows용 Git을 설치했지만 내 리포지토리에 액세스가 거부되었습니다(403). 섹션을 참조하세요.
액세스 오류: CodeCommit 리포지토리에 연결할 때 퍼블릭 키가 거부됩니다.
문제: SSH 엔드포인트를 사용하여 CodeCommit 리포지토리와 통신을 시도할 때 Error: public key denied
문구가 포함된 오류 메시지가 나타납니다.
수정 방법: SSH 연결을 위한 설정을 완료하지 않은 것이 이 오류의 가장 일반적인 원인입니다. 퍼블릭 또는 프라이빗 SSH 키 페어를 구성한 다음 퍼블릭 키를 IAM 사용자와 연결합니다. SSH 구성에 대한 자세한 내용은 Linux, macOS, Unix에서 SSH 연결 및 Windows에서 SSH 연결 섹션을 참조하세요.
액세스 오류: CodeCommit 리포지토리에 연결할 때 “Rate Exceeded” 또는 “429” 메시지가 표시됩니다.
문제: CodeCommit 리포지토리와 통신을 시도할 때 “Rate Exceeded” 또는 오류 코드 “429”가 포함된 메시지가 표시됩니다. 통신 속도가 상당히 느려지거나 통신에 실패합니다.
원인: CodeCommit에 대한 모든 호출은 애플리케이션의 호출이든 AWS CLI, Git 클라이언트, AWS Management Console 등의 호출이든 전체 활성 요청에 걸쳐 초당 최대 요청 수에 좌우됩니다. 어떤 AWS 리전에서도 Amazon Web Services 계정에 허용된 최대 요청 빈도는 초과할 수 없습니다. 최대 요청 빈도를 넘길 경우, 오류가 수신되며 그 이상의 호출은 Amazon Web Services 계정에 대해 일시적으로 병목 현상을 일으킵니다. 제한이 존재하는 동안에는 CodeCommit에 대한 연결 속도가 느려지거나 연결이 실패할 수 있습니다.
가능한 해결 방법: CodeCommit에 대한 연결 수 또는 호출 수를 낮추거나 요청을 분산시키는 조치를 취합니다. 고려해야 할 몇 가지 접근 방식:
-
요청에, 특히 정기적인 폴링 요청에 지터 실행
CodeCommit을 정기적으로 폴링하는 애플리케이션이 여러 Amazon EC2 인스턴스에서 실행되는 경우, 1초 단위의 시간 내에 서로 다른 Amazon EC2 인스턴스가 폴링하지 않도록 지터(무작위적인 양의 지연)를 도입합니다. 1분의 시간에 걸쳐 폴링 메커니즘을 균등하게 배포하는 데에는 0초~59초 사이의 임의 숫자가 좋습니다.
-
폴링보다는 이벤트 기반 아키텍처 사용
이벤트가 발생할 때 호출만 생성되도록, 폴링이 아닌 이벤트 기간 아키텍처를 사용합니다. AWS CodeCommit 이벤트에 대해 CloudWatch Events 알림을 사용하여 워크플로를 트리거하는 것을 고려하세요.
-
오류 재시도 실행과 API 및 자동화된 Git 작업에 대한 지수 백오프
오류 재시도 및 지수 백오프를 통해 호출 속도를 제한할 수 있습니다. 각 AWS SDK는 자동 재시도 로직과 지수 백오프 알고리즘을 구현합니다. 자동화된 Git 푸시 및 Git 가져오기에 대해서는 자체적인 재시도 로직을 실행해야 할 수 있습니다. 자세한 내용은 AWS의 오류 재시도 및 지수 백오프를 참조하세요.
-
AWS 지원 센터에 CodeCommit 서비스 할당량 증가 요청
서비스 제한 증가 혜택을 누리려면 오류 재시도 또는 지수 백오프의 실행 등 여기에 제시된 제안을 이미 따랐음을 확인해야 합니다. 요청을 통해 AWS 리전, Amazon Web Services 계정, 제한 문제에 영향받는 기간 등의 정보도 제공해야 합니다.