로컬 또는 버전 관리 미사용 콘텐츠를 AWS CodeCommit으로 마이그레이션 - AWS CodeCommit

AWS CodeCommit 신규 고객은 더 이상 사용할 수 없습니다. 의 기존 고객은 정상적으로 서비스를 계속 이용할 AWS CodeCommit 수 있습니다. 자세히 알아보기”

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

로컬 또는 버전 관리 미사용 콘텐츠를 AWS CodeCommit으로 마이그레이션

이 주제에서는 컴퓨터에 있는 기존 프로젝트 또는 로컬 콘텐츠를 CodeCommit 리포지토리로 마이그레이션하는 방법을 안내합니다. 이 절차의 일부로써 다음을 수행합니다.

  • CodeCommit에 필요한 초기 설정 완료.

  • CodeCommit 리포지토리를 생성합니다.

  • 로컬 폴더를 Git 버전 관리 하에 두고 이 폴더의 콘텐츠를 CodeCommit 리포지토리로 푸시합니다.

  • CodeCommit 리포지토리에서 파일을 봅니다.

  • 소속 팀과 CodeCommit 리포지토리를 공유합니다.

로컬 프로젝트를 CodeCommit으로 마이그레이션

0단계: CodeCommit 액세스에 필요한 설정

로컬 콘텐츠를 CodeCommit으로 마이그레이션하기 전에, 먼저 CodeCommit에 IAM 사용자를 생성 및 구성하고 액세스를 위해 로컬 컴퓨터를 구성해야 합니다. 또한 CodeCommit을 관리하기 위해 AWS CLI를 설치해야 합니다. AWS CLI가 없어도 대부분의 CodeCommit 작업을 수행할 수 있지만, 만약 있으면 Git으로 작업할 때 융통성을 발휘할 수 있습니다.

CodeCommit에 대한 설정을 이미 마친 경우에는 1단계: CodeCommit 리포지토리 생성로 건너뛸 수 있습니다.

CodeCommit에 액세스할 IAM 사용자를 생성 및 구성하려면
  1. http://aws.amazon.com에서 가입을 선택하여 Amazon Web Services 계정을 만듭니다.

  2. Amazon Web Services 계정에서 IAM 사용자를 생성하거나 기존 사용자를 사용합니다. 액세스 키 ID가 있고 해당 IAM 사용자와 연결된 비밀 액세스 키가 있는지 확인합니다. 자세한 내용은 Amazon Web Services 계정에서 IAM 사용자 생성하기를 참조하세요.

    참고

    CodeCommit에는 AWS Key Management Service가 필요합니다. 기존 IAM 사용자를 사용할 경우, CodeCommit에 필요한 AWS KMS 작업을 명시적으로 거부하는 정책이 해당 사용자에게 연결되어 있지 않은지 확인합니다. 자세한 내용은 AWS KMS 및 암호화 섹션을 참조하세요.

  3. AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  4. IAM 콘솔의 탐색 창에서 사용자를 선택한 다음 CodeCommit 액세스에 대해 구성할 IAM 사용자를 선택합니다.

  5. 권한 탭에서 권한 추가를 선택합니다.

  6. 권한 부여에서 기존 정책 직접 연결을 선택합니다.

  7. 정책 목록에서, CodeCommit 액세스에 대한 AWSCodeCommitPowerUser 또는 다른 관리형 정책을 선택합니다. 자세한 내용은 AWS 관리형 정책은 다음과 같습니다. CodeCommit 섹션을 참조하세요.

    연결할 정책을 선택한 후 다음: 검토를 선택하여 IAM 사용자에게 연결할 정책의 목록을 검토합니다. 목록이 올바르면 권한 추가를 선택합니다.

    CodeCommit 관리형 정책, 그리고 리포지토리에 대한 액세스를 다른 그룹 및 사용자와 공유하는 방법에 대해 자세히 알아보려면 리포지토리 공유, AWS CodeCommit에 대한 인증 및 액세스 제어 섹션을 참조하세요.

AWS CLI 설치 및 구성
  1. 로컬 컴퓨터에서 AWS CLI를 다운로드하고 설치합니다. 이는 명령줄에서 CodeCommit과 상호 작용하기 위한 사전 조건입니다. AWS CLI 버전 2를 설치하는 것이 좋습니다. 이는 AWS CLI의 최신 메이저 버전이며 모든 최신 기능을 지원합니다. 또한 git-remote-codecommit으로 루트 계정, 페더레이션 액세스 또는 임시 보안 인증 정보 사용하는 것을 지원하는 유일한 AWS CLI 버전입니다.

    자세한 내용은 AWS 명령줄 인터페이스로 설정 단원을 참조하세요.

    참고

    CodeCommit은 AWS CLI 버전 1.7.38 이상에서만 작동합니다. AWS CLI를 설치하거나 최신 버전으로 업그레이드하는 것이 가장 좋습니다. 설치한 AWS CLI의 버전을 확인하려면 aws --version 명령을 실행합니다.

    이전 버전의 AWS CLI를 최신 버전으로 업그레이드하려면 AWS Command Line Interface 설치를 참조하세요.

  2. 이 명령을 실행하여 AWS CLI용 CodeCommit 명령이 설치되었는지 확인합니다.

    aws codecommit help

    이 명령은 CodeCommit 명령 목록을 반환합니다.

  3. 다음과 같이 configure 명령을 사용하여 AWS CLI를 프로파일로 구성합니다.

    aws configure

    메시지가 표시되면, CodeCommit에서 사용할 IAM 사용자의 AWS 액세스 키 및 AWS 비밀 액세스 키를 지정합니다. 또한 리포지토리가 존재하는 AWS 리전(예: us-east-2)도 반드시 지정해야 합니다. 기본 출력 형식을 묻는 메시지가 표시되면 json을 지정합니다. 예를 들어, IAM 사용자의 프로필을 구성하는 경우에는 다음과 같이 합니다.

    AWS Access Key ID [None]: Type your IAM user AWS access key ID here, and then press Enter AWS Secret Access Key [None]: Type your IAM user AWS secret access key here, and then press Enter Default region name [None]: Type a supported region for CodeCommit here, and then press Enter Default output format [None]: Type json here, and then press Enter

    AWS CLI에서 사용할 프로파일 생성 및 구성에 대한 자세한 내용은 다음을 참조하세요.

    다른 AWS 리전에 있는 리포지토리 또는 리소스에 연결하려면 기본 리전 이름을 사용하여 AWS CLI를 다시 구성해야 합니다. CodeCommit에서 지원되는 기본 리전 이름은 다음과 같습니다.

    • us-east-2

    • us-east-1

    • eu-west-1

    • us-west-2

    • ap-northeast-1

    • ap-southeast-1

    • ap-southeast-2

    • ap-southeast-3

    • me-central-1

    • eu-central-1

    • ap-northeast-2

    • sa-east-1

    • us-west-1

    • eu-west-2

    • ap-south-1

    • ap-south-1

    • ca-central-1

    • us-gov-west-1

    • us-gov-east-1

    • eu-north-1

    • ap-east-1

    • me-south-1

    • cn-north-1

    • cn-northwest-1

    • eu-south-1

    • ap-northeast-3

    • af-south-1

    • il-central-1

    CodeCommit 및 AWS 리전에 대한 자세한 내용은 리전 및 Git 연결 엔드포인트 섹션을 참조하세요. IAM, 액세스 키, 비밀 키에 대한 자세한 내용을 확인하려면 보안 인증 정보 얻는 방법IAM 사용자의 액세스 키 관리를 참조하십시오. AWS CLI 및 프로필에 대한 자세한 내용은 명명된 프로필을 참조하세요.

그 다음에는 Git을 설치해야 합니다.

  • Linux, macOS, Unix의 경우:

    CodeCommit 리포지토리에서 파일과 커및 및 기타 정보를 사용하려면 로컬 시스템에 Git을 설치해야 합니다. CodeCommit은 Git 버전 1.7.9 이상을 지원합니다. Git 버전 2.28에서는 초기 커밋을 위한 브랜드 이름을 구성할 수 있습니다. 최신 버전의 Git를 사용하는 것이 좋습니다.

    Git 설치를 위해서는 Git 다운로드와 같은 웹 사이트를 권장합니다.

    참고

    Git은 계속 개선되며 정기적으로 업데이트되는 플랫폼입니다. 기능 변경에 따라 사용 방식이 달라지는 경우가 있습니다. Git과 CodeCommit의 특정 버전에서 문제가 발생할 경우 문제 해결의 내용을 검토합니다.

  • Windows의 경우:

    CodeCommit 리포지토리에서 파일과 커및 및 기타 정보를 사용하려면 로컬 시스템에 Git을 설치해야 합니다. CodeCommit은 Git 버전 1.7.9 이상을 지원합니다. Git 버전 2.28에서는 초기 커밋을 위한 브랜드 이름을 구성할 수 있습니다. 최신 버전의 Git를 사용하는 것이 좋습니다.

    Git를 설치하려면 Git for Windows 등의 웹 사이트를 사용하는 것이 좋습니다. 이 링크를 사용하여 Git을 설치하는 경우 다음을 제외한 설치 기본 설정을 모두 수락할 수 있습니다.

    참고

    Git은 계속 개선되며 정기적으로 업데이트되는 플랫폼입니다. 기능 변경에 따라 사용 방식이 달라지는 경우가 있습니다. Git과 CodeCommit의 특정 버전에서 문제가 발생할 경우 문제 해결의 내용을 검토합니다.

CodeCommit은 HTTPS 및 SSH 인증을 모두 지원합니다. 설정을 완료하려면, CodeCommit에 대한 Git 보안 인증 정보(HTTPS, 대부분의 사용자에게 권장), CodeCommit에 액세스할 때 사용할 SSH 키 페어(SSH), git-remote-codecommit(페더레이션 액세스를 사용하는 사용자에게 권장) 또는 AWS CLI에 포함된 보안 인증 도우미 등을 구성해야 합니다.

1단계: CodeCommit 리포지토리 생성

이 섹션에서는 CodeCommit 콘솔을 사용하여 이 자습서의 나머지 부분에서 사용할 CodeCommit 리포지토리를 생성합니다. AWS CLI를 사용하여 리포지토리를 생성하려면 리포지토리 생성 (AWS CLI) 단원을 참조하세요.

  1. https://console.aws.amazon.com/codesuite/codecommit/home에서 CodeCommit 콘솔을 엽니다.

  2. 리전 선택기에서, 리포지토리를 만들 AWS 리전을 선택합니다. 자세한 내용은 리전 및 Git 연결 엔드포인트 섹션을 참조하세요.

  3. 리포지토리 페이지에서 리포지토리 생성을 선택합니다.

  4. 리포지토리 생성 페이지의 리포지토리 이름에 리포지토리 이름을 입력합니다.

    참고

    리포지토리 이름은 대소문자를 구분합니다. 이 이름은 Amazon Web Services 계정이 속한 AWS 리전에서 고유해야 합니다.

  5. (선택 사항) 설명에 리포지토리에 대한 설명을 입력합니다. 그러면 사용자들이 리포지토리의 용도를 식별하는 데 도움이 됩니다.

    참고

    설명 필드에는 콘솔의 마크다운이 표시되며, 모든 HTML 문자와 유효한 Unicode 문자를 모두 사용할 수 있습니다. GetRepository 또는 BatchGetRepositories API를 사용하는 애플리케이션 개발자인 경우 웹 브라우저에 리포지토리 설명 필드를 표시하려면 CodeCommit API 참조를 참조하십시오.

  6. (선택 사항) 태그 추가를 선택하여 하나 이상의 리포지토리 태그(AWS 리소스를 구성하고 관리하는 것을 도와주는 사용자 지정 속성 레이블)를 리포지토리에 추가합니다. 자세한 내용은 리포지토리에 태그 지정 AWS CodeCommit 섹션을 참조하세요.

  7. (선택 사항) 추가 구성을 확장하여 이 리포지토리의 데이터를 암호화하고 복호화하는 데 기본 AWS 관리형 키를 사용할지 또는 자체 고객 관리형 키를 사용할지 지정합니다. 자체 고객 관리형 키를 사용하기로 선택한 경우, 리포지토리를 만드는 AWS 리전에서 해당 키를 사용할 수 있는지 그리고 해당 키가 활성 상태인지 확인해야 합니다. 자세한 내용은 AWS CodeCommit 리포지토리에 대한 AWS Key Management Service 및 암호화 섹션을 참조하세요.

  8. (선택 사항) 이 리포지토리에 Java나 Python 코드가 들어가고 CodeGuru Reviewer로 해당 코드를 분석하려 한다면, Java 및 Python용 Amazon CodeGuru Reviewer 활성화를 선택합니다. CodeGuru Reviewer는 다양한 기계 학습 모델을 사용하여 풀 요청의 코드 결함을 찾아내고 개선점과 해결책을 제안합니다. 자세한 내용은 Amazon CodeGuru Reviewer 사용 안내서를 참조하세요.

  9. 생성을 선택합니다.

리포지토리를 생성하면 생성된 리포지토리가 리포지토리 목록에 표시됩니다. URL 열에서 복사 아이콘을 선택한 후 CodeCommit에 접속할 때 사용할 프로토콜(HTTPS 또는 SSH)을 선택합니다. URL을 복사합니다.

예를 들어 리포지토리의 이름을 MyFirstRepo로 짓고 HTTPS를 사용하는 경우, URL은 다음과 같습니다.

https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyFirstRepo

이 URL은 나중에 2단계: 로컬 콘텐츠를 CodeCommit 리포지토리로 마이그레이션에서 필요합니다.

2단계: 로컬 콘텐츠를 CodeCommit 리포지토리로 마이그레이션

현재 CodeCommit 리포지토리가 있으므로 로컬 컴퓨터에서 로컬 Git 리포지토리로 변환할 디렉터리를 선택할 수 있습니다. git init 명령을 사용해 기존의 버전 관리 미사용 콘텐츠를 Git 리포지토리로 변환하거나, 파일 또는 콘텐츠가 아직 없는 경우에는 비어 있는 새 리포지토리를 초기화할 수 있습니다.

  1. 로컬 컴퓨터의 터미널 또는 명령줄에서 디렉터리를 해당 리포지토리의 소스로 사용할 디렉터리로 변경합니다.

  2. 다음 명령을 실행하여 main이라는 기본 브랜치를 사용하도록 Git을 구성합니다.

    git config --local init.defaultBranch main

    이 명령을 실행하여, 새로 생성한 모든 리포지토리의 기본 브랜치 이름을 main으로 설정할 수도 있습니다.

    git config --global init.defaultBranch main
  3. git init 명령을 실행하여 디렉터리에서 Git 버전 관리를 초기화합니다. 이렇게 하면 디렉터리의 루트에 버전 관리 추적을 가능케 하는 .git 하위 디렉터리가 생성됩니다. 또한 .git 폴더에는 리포지토리에 필요한 모든 메타데이터가 들어 있습니다.

    git init
  4. 다음 명령을 실행하여 초기화된 디렉터리의 상태를 확인합니다.

    git status

    버전 관리에 추가하고 싶은 파일을 추가합니다. 이 자습서에서는 . 지정자와 함께 git add 명령을 실행하여 이 디렉터리에 있는 모든 파일을 추가해 보겠습니다. 다른 옵션에 대해서는 해당 Git 문서를 참조하십시오.

    git add .
  5. 커밋 메시지와 함께 추가된 파일에 대한 커밋을 생성합니다.

    git commit -m "Initial commit"
  6. 대상 CodeCommit 리포지토리의 URL과 이름, --all 옵션을 지정하여 git push 명령을 실행합니다. (여기서 URL은 1단계: CodeCommit 리포지토리 생성에서 복사해 놓은 것입니다.)

    예를 들어 리포지토리의 이름을 MyFirstRepo로 짓고 HTTPS를 사용하도록 설정된 경우, 다음 명령을 실행합니다.

    git push https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyFirstRepo --all

3단계: CodeCommit에서 파일 보기

디렉터리의 콘텐츠를 푸시한 후에는 CodeCommit 콘솔을 사용하여 리포지토리의 모든 파일을 빠르게 열람할 수 있습니다.

  1. https://console.aws.amazon.com/codesuite/codecommit/home에서 CodeCommit 콘솔을 엽니다.

  2. 리포지토리의 목록에서 해당 리포지토리의 이름을 선택합니다(예: MyFirstRepository).

  3. 해당 리포지토리에 있는 파일에서 브랜치, 복제 URL, 설정 등을 조회합니다.

4단계: CodeCommit 리포지토리 공유

CodeCommit에 리포지토리를 생성하면 엔드포인트가 두 개 생성되는데, 하나는 HTTPS 접속을 위한 것이고 다른 하나는 SSH 접속을 위한 것입니다. 둘 다 네트워크를 통한 안전한 접속이 가능합니다. 사용자는 둘 중 한 가지 프로토콜을 사용할 수 있습니다. 사용자에게 어떤 프로토콜을 권장하든 두 엔드포인트 모두 활성화된 상태를 유지합니다. 자신의 리포지토리를 다른 사람과 공유하기 전에, 먼저 다른 사용자가 자신의 리포지토리에 액세스하도록 허용하는 IAM 정책을 생성해야 합니다. 그러한 액세스 지침을 해당 사용자들에게 전달하세요.

리포지토리에 대한 고객 관리형 정책 생성
  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 대시보드 탐색 영역에서 정책을 선택한 다음 정책 생성을 선택합니다.

  3. 정책 생성 페이지에서 관리형 정책 가져오기를 선택합니다.

  4. 관리형 정책 가져오기 페이지의 필터 정책에서 AWSCodeCommitPowerUser를 입력합니다. 정책 이름 옆에 있는 버튼을 선택한 다음 가져오기를 선택합니다.

  5. 정책 생성 페이지에서 JSON을 선택합니다. 다음과 같이 CodeCommit 작업에 대한 Resource 라인의 ‘*’ 부분을 CodeCommit 리포지토리의 Amazon 리소스 이름(ARN)으로 바꿉니다.

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo" ]
    작은 정보

    CodeCommit 리포지토리의 ARN을 찾으려면, CodeCommit 콘솔로 이동하여 목록에서 리포지토리 이름을 선택한 다음 설정을 선택합니다. 자세한 내용은 리포지토리 세부 정보 보기 섹션을 참조하세요.

    이 정책을 둘 이상의 리포지토리에 적용하려면, ARN을 지정하여 각 리포지토리를 리소스로 추가합니다. 다음과 같이 각 리소스 명령문 사이에 쉼표를 넣습니다.

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo", "arn:aws:codecommit:us-east-2:111111111111:MyOtherDemoRepo" ]

    편집이 완료되면 정책 검토를 선택합니다.

  6. 정책 검토 페이지의 이름에 정책의 새 이름을 입력합니다(예: AWSCodeCommitPowerUser-MyDemoRepo). 선택 사항으로 이 정책에 대한 설명을 제공할 수 있습니다.

  7. 정책 생성을 선택합니다.

자신의 리포지토리에 대한 액세스를 관리하려면, 리포지토리 사용자에 대한 IAM 그룹을 생성하고, 해당 그룹에 IAM 사용자를 추가한 다음, 이전 단계에서 생성한 고객 관리형 정책을 연결합니다. IAMSelfManageServiceSpecificCredentials 또는 IAMUserSSHKeys와 같이 액세스에 필요한 기타 정책을 연결합니다.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 대시보드 탐색 영역에서 그룹을 선택한 다음 새 그룹 생성을 선택합니다.

  3. 그룹 이름 설정 페이지의 그룹 이름에 그룹 이름(예: MyDemoRepoGroup)을 입력한 다음 다음 단계를 선택합니다. 그룹 이름에 리포지토리 이름을 포함시키는 것을 고려해 보세요.

    참고

    이 이름은 Amazon Web Services 계정 전체에서 고유해야 합니다.

  4. 이전 섹션에서 생성한 고객 관리형 정책(예: AWSCodeCommitPowerUser-MyDemoRepo) 옆의 상자를 선택합니다.

  5. 검토 페이지에서 그룹 생성을 선택합니다. IAM은 지정된 정책이 이미 연결된 상태로 이 그룹을 생성합니다. 해당 그룹이 Amazon Web Services 계정에 연결된 그룹 목록에 나타납니다.

  6. 목록에서 그룹을 선택합니다.

  7. 그룹 요약 페이지에서 사용자 탭을 선택한 다음 그룹에 사용자 추가를 선택합니다. Amazon Web Services 계정과 연결된 모든 사용자를 표시하는 목록에서, CodeCommit 리포지토리에 대한 액세스를 허용할 사용자 옆의 상자를 선택한 다음 사용자 추가를 선택합니다.

    작은 정보

    검색 상자를 사용하여 이름별로 사용자를 빠르게 찾을 수 있습니다.

  8. 사용자를 추가했으면 IAM 콘솔을 닫습니다.

직접 구성한 정책 그룹과 정책을 사용하여 CodeCommit에 액세스하는 데 사용할 IAM 사용자를 생성한 후에, 해당 사용자에게 리포지토리에 접속하는 데 필요한 정보를 전송합니다.

  1. https://console.aws.amazon.com/codesuite/codecommit/home에서 CodeCommit 콘솔을 엽니다.

  2. 리전 선택기에서, 해당 리포지토리를 생성한 AWS 리전을 선택합니다. 각 리포지토리는 하나의 AWS 리전에 국한됩니다. 자세한 내용은 리전 및 Git 연결 엔드포인트 섹션을 참조하세요.

  3. 리포지토리 페이지에서 공유할 리포지토리를 선택합니다.

  4. URL 복제에서 사용자가 사용하게 할 프로토콜을 선택합니다. 그러면 연결 프로토콜에 대한 복제 URL이 복사됩니다.

  5. AWS CLI 설치, 프로파일 구성 또는 Git 설치와 같은 기타 지침과 함께 복제 URL을 사용자에게 전송합니다. 연결 프로토콜(예: HTTPS)에 대한 구성 정보를 포함해야 합니다.