Wisdom’s Cloud

[AWS] 32. AWS CodeCommit 본문

AWS/Beginner

[AWS] 32. AWS CodeCommit

지혜로운지혜쓰 2022. 3. 29. 14:18

구분 내용
서비스명 AWS CodeCommit
설명 뛰어난 확장성의 프라이빗 Git 리포지토리를 안전하게 호스팅하며, 협업 방식으로 코드 작업 수행
주요 특징 - 안전한 Git 기반 리포지토리를 호스팅하는 완전 관리형 소스 제어 서비스
- 뛰어난 확장성의 안전한 에코시스템으로 여러 팀이 협업하여 코드 작업 수행
- 자체 소스 제어 시스템 운영이나 인프라 확대/축소 불필요
- 소스 코드에서 바이너리까지 모든 항목을 안전하게 저장
- 기존 Git 도구와 원활하게 연동 가능
프리티어(Free Tier) - 최초 5명의 활성 사용자에 대해 무제한 리포지토리, 매달 50GB의 스토리지, 매달 10,000건의 Git 요청 제공
- 최초 12개월 이후에도 Free Tier 사용 가능

 

 

CodeCommit의 이점
  • 관리형 서비스
  • 높은 보안 수준
  • 공동 작업
  • 손쉬운 확장
  • 타서비스 통합
  • 손쉬운 이전

 

 

CodeCommit의 주요 기능
  • Repository: CodeCommit의 기본 버전 관리를 위한 객체이며, 프로젝트에 대한 코드 및 파일을 저장하는 저장소다. 리포지토리의 좋은 점은 파일의 버전 관리를 통해 소스의 변경 사항에 대한 이력을 관리할 수 있다는 점이다. 또한 리포지토리를 다른 사용자와 공유할 수 있으므로 프로젝트에 대해 공동 작업을 할 수 있다.
  • Push: 내 PC의 로컬 저장소에서 변경된 내역을 원격의 저장소로 공유하려면, 로컬 저장소에서 원격 저장소로 업로드 해야 한다. 로컬 저장소에서 원격 저장소로 파일을 업로드하는 작업을 푸시라고 하며, 푸시를 수행하면 원격 저장소와 로컬 저장소의 파일이 동기화된다.
  • Pull: 원격 저장소를 여러 사람이 공유하는 경우, 원격 저장소에 저장된 내역을 로컬 저장소로 적용할 필요가 있다. 원격 저장소의 파일을 로컬 저장소로 동기화하는 작업을 풀이라고 하며, 풀을 실행하면 원격 저장소를 통째로 다운로드하여 로컬에서 개발을 수행할 수 있다.
  • Clone: 다른 사람이 작성한 이력이 저장된 원격 저장소가 있다면, 저장소를 통째로 복제하여 내 PC에서 작업할 수 있다. 즉, 복제를 통해 원격 저장소를 통째로 다운로드하여 로컬에서 개발을 수행할 수 있다.
  • Commit: 파일 및 폴더의 변경 사항을 저장소에 기록하려면 커밋을 수행해야 한다. 커밋은 변경 사항에 대해 시간 순으로 저장되며, 수정된 이력이 변경 사항으로 저장되고, 이때 변경 사항에 대한 이력을 남길 수 있다.
  • Branch: 브랜치는 독립적으로 어떤 작업을 진행하기 위한 개념이다. 필요에 의해 만들어지는 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있도록 해주며, 이렇게 만들어진 브랜치는 다른 브랜치와 병합함으로써 작업한 내용을 다시 새로운 하나의 브랜치로 모을 수 있다. 즉, 여러 명이 동시에 작업할 때 다른 사람의 작업에 영향을 주거나 받지 않도록 메인 브랜치에서 자신의 작업 전용 브랜치를 만들고, 각자 작업을 진행한 후 작업이 끝난 사람은 메인 브랜치에 자신의 브랜치 변경 사항을 적용한다.

 

 

CodeCommit의 동작 방식
  1. AWS CLI 또는 CodeCommit 콘솔을 사용하여 CodeCommit 리포지토리를 생성한다.
  2. 로컬 저장소에서 Git을 통해 git clone을 실행하여 CodeCommit 리포지토리의 이름을 지정한다. 이를 통해 CodeCommit 리포지토리에 연결되는 로컬 Repo가 생성된다.
  3. 로컬 저장소에서 로컬 Repo를 사용하여 파일을 수정/추가/편집/삭제한 후, git add를 실행하여 수정된 파일을 로컬로 스테이징한다. git commit을 실행하여 파일을 로컬로 커밋한 후, git push를 실행하여 파일을 CodeCommit 리포지토리로 전송한다.
  4. 다른 사용자가 변경한 내용을 다운로드한다. git pull을 실행하여 CodeCommit 리포지토리의 파일을 로컬 Repo와 동기화한다. 그러면 최신 버전의 파일을 사용하여 작업할 수 있다.

 

 

실습: CodeCommit의 Git HTTP 접속을 위한 자격 증명 생성

 

* 여러 파일이나 브랜치 전반의 파일에 대해 직접적인 작업을 수행하기 위해서는

로컬 컴퓨터에서 CodeCommit에 접속할 수 있도록 인증을 위한 설정을 수행하는 것이 필요하다.

이를 위해 Git 자격 증명을 사용하여 CodeCommit을 연결할 수 있도록 설정해야 한다. *

 

1. 콘솔에 로그인한 후, AWSCodeCommitFullAccess 권한을 가진 사용자의 보안 자격 증명 탭으로 이동한다.
2. AWS CodeCommit에 대한 HTTPS Git 자격 증명 항목에서 [자격 증명 생성] 버튼을 클릭하여 다운로드한다.

 

 

실습: Cloud9과 CodeCommit을 활용한 코드 버전 관리

 

1. CodeCommit 설정을 진행하기 위해 [서비스] -> [개발자 도구] -> [CodeCommit] -> [리포지토리]로 이동하여 [리포지토리 생성] 버튼을 클릭한다.
2. 리포지토리 생성 페이지에서 리포지토리 이름을 입력한 후, [생성] 버튼을 클릭한다.
3. 리포지토리 생성 완료 후, HTTPS 연결 방법을 확인한다.
4. Cloud9을 이용한 CodeCommit 작업 진행을 위해 [서비스] -> [개발자 도구] -> [Cloud9]으로 이동하여 [Open IDE] 버튼을 클릭한다. 기존에 생성된 Cloud9이 없다면 [Create environmnet] 버튼을 눌러 Cloud9 콘솔을 실행한다.
5. Cloud9 콘솔을 실행한 후, AWS CLI 설치 여부와 Git 설치 여부를 확인한다.
6. AWS CLI 설정을 진행하기 위해 AWS Configure 명령을 실행한다.
7. git config를 실행하여 AWS 자격 증명 프로필로 Git 자격 증명 헬퍼 사용을 지정하고, Git 자격 증명 헬퍼가 경로를 리포지토리로 전송할 수 있도록 한다.
8. CodeCommit 콘솔 화면에서 [URL 복제] -> [HTTPS 복제] 버튼을 눌러 Git URL을 복사한다.
9. git clone 명령과 함께 복사된 Git URL을 추가하여 CodeCommit의 리포지토리를 clone한다.
10. 왼쪽에 clone된 test-repo 폴더에 'Index.html'이라는 새로운 파일을 생성한 후, 본문에 'Hello Wolrd'를 입력하여 저장한다.
11. clone된 test-repo에 대해 해당 로컬 리포지토리에 생성된 Index.html 파일을 git add하고, status를 통해 상태 정보가 'new file'임을 확인한다.
12. 변경된 사항을 commit하고, 전체 내용을 CodeCommit으로 push한다.
13. Cloud9에서 push된 Index.html이 정상적으로 리포지토리에 등록되었음을 확인한다.

 

 

실습: Github의 소스를 CodeCommit으로 마이그레이션

 

1. CodeCommit 설정을 진행하기 위해 [서비스] -> [개발자 도구] -> [CodeCommit] -> [리포지토리]로 이동하여 [리포지토리 생성] 버튼을 클릭한다.
2. 리포지토리 생성 페이지에서 리포지토리 이름을 입력한 후, [생성] 버튼을 클릭한다.
3. 생성된 리포지토리 화면에서 [URL 복제] -> [HTTPS 복제] 버튼을 눌러 Git URL을 복사한다.
4. Cloud9 콘솔에서 git clone 명령과 함께 복사된 Git URL을 추가하여 CodeCommit의 리포지토리를 clone한다.
5. 소스를 이전할 Github로 이동한 후, Clone HTTPS URL을 복사한다.
6. 임시로 소스를 다운로드할 폴더를 생성한 후, git clone을 실행하여 소스를 git-migration 폴더로 동기화한다.
7. 동기화된 폴더로 이동하여 git push를 수행하면서 저장할 리포지토리를 이전에 CodeCommit에 생성한 리포지토리 URL로 원격 push를 수행한다.
8. CodeCommit 리포지토리로 이동한 후, push된 소스 코드를 확인한다.

'AWS > Beginner' 카테고리의 다른 글

[AWS] 34. AWS CodeDeploy  (0) 2022.04.01
[AWS] 33. AWS CodeBuild  (0) 2022.03.30
[AWS] 31. AWS Cloud9  (0) 2022.03.27
[AWS] 30. 클라우드 용어 정리(12)  (0) 2022.03.27
[AWS] 29. Amazon CloudWatch  (0) 2022.03.24