AWS CodeCommit은 무엇인가요? - AWS CodeCommit

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

AWS CodeCommit은 무엇인가요?

AWS CodeCommit은 Amazon Web Services에서 호스트하는 버전 관리 서비스입니다. 클라우드에서 자산(예: 문서, 소스 코드, 바이너리 파일)을 비공개로 저장하여 관리하는 데 사용할 수 있습니다. CodeCommit에 대한 요금 정보는 요금을 참조하세요.

참고

CodeCommit은 여러 규정 준수 프로그램의 요구 사항을 충족합니다. AWS 및 규정 준수 활동에 대한 자세한 내용은 규정 준수 프로그램 제공 AWS 범위 내 서비스 단원을 참조하세요.

이것은 HIPAA 적격 서비스입니다. AWS, 1996년 미국 HIPAA(Health Insurance Portability and Accountability Act) 및 AWS 서비스를 사용하여 보호되는 건강 정보(PHI)를 처리, 저장 및 전송하는 방법에 대한 자세한 내용은 HIPAA 개요를 참조하세요.

이 서비스 및 보안 관리 모범 사례를 지정하는 보안 관리 표준인 ISO 27001에 대한 자세한 내용은 ISO 27001 개요를 참조하세요.

이 서비스와 PCI DSS(Payment Card Industry Data Security Standard)에 대한 자세한 내용은 PCI DSS 개요 단원을 참조하세요.

이 서비스에 대한 자세한 내용 및 기밀 정보를 보호하는 암호 모듈의 보안 요건을 규정하고 있는 Federal Information Processing Standard(FIPS) Publication 140-2 US 정부 표준에 대한 정보는 Federal Information Processing Standard(FIPS) 140-2 개요Git 연결 엔드포인트 섹션을 참조하세요.

CodeCommit 소개

CodeCommit은 프라이빗 Git 리포지토리를 호스팅하는 안전하고 확장성 높은 소스 관리형 서비스입니다. CodeCommit을 사용하면 자체 소스 제어 시스템을 관리하거나 인프라 확장에 대해 걱정할 필요가 없습니다. CodeCommit을 사용하면 코드부터 바이너리까지 무엇이든 저장할 수 있습니다. CodeCommit은 Git의 표준 기능을 지원하므로 기존 Git 기반 도구와도 원활하게 연동됩니다.

CodeCommit을 사용하면 다음과 같은 것들이 가능합니다.

  • AWS에서 호스트하는 완전 관리형 서비스의 혜택을 누릴 수 있습니다. CodeCommit은 높은 서비스 가용성과 내구성을 제공하며 하드웨어와 소프트웨어를 자체적으로 관리해야 하는 부담을 덜어 줍니다. 하드웨어를 프로비저닝 및 확장하고 서버 소프트웨어를 설치, 구성, 업데이트할 필요가 없습니다.

  • 코드를 안전하게 저장할 수 있습니다. CodeCommit 리포지토리는 유휴 상태는 물론 전송 중에도 암호화됩니다.

  • 코드를 공동으로 작업할 수 있습니다. CodeCommit 리포지토리는 브랜치에 병합하기 전에 사용자들이 서로 코드 변경 내용을 검토하고 그에 대한 설명을 추가할 수 있는 풀 요청 기능과 풀 요청 및 주석에 대한 이메일을 사용자에게 자동으로 전송하는 알림 기능 등을 지원합니다.

  • 버전 제어 프로젝트를 손쉽게 확장할 수 있습니다. CodeCommit 리포지토리는 개발 요구 사항에 맞게 스케일 업을 할 수 있습니다. 서비스를 통해 대량 파일 또는 브랜치, 대용량 파일 크기 및 긴 개정 기록을 포함하는 리포지토리를 처리할 수 있습니다.

  • 무엇이든, 언제든 저장할 수 있습니다. CodeCommit은 저장할 수 있는 리포지토리 크기 또는 파일 형식에 제한이 없습니다.

  • 다른 AWS 및 타사 서비스와 통합할 수 있습니다. CodeCommit은 리포지토리를 AWS 클라우드의 다른 프로덕션 리소스와 밀접하게 유지하여 개발 수명 주기의 속도와 빈도를 높이는 데 도움이 됩니다. IAM과 통합되고 다른 AWS 서비스 및 다른 리포지토리와 함께 사용할 수 있습니다. 자세한 내용은 AWS CodeCommit과 제품 및 서비스 통합 섹션을 참조하세요.

  • 다른 원격 리포지토리에서 파일을 쉽게 마이그레이션할 수 있습니다. Git 기반 리포지토리에서 CodeCommit을 마이그레이션할 수 있습니다.

  • 이미 알고 있는 Git 도구를 사용할 수 있습니다. CodeCommit은 자체 AWS CLI 명령 및 API뿐만 아니라 Git 명령도 지원합니다.

CodeCommit과 Git, 그리고 필요에 맞는 올바른 AWS 서비스의 선택

CodeCommit은 Git 기반 서비스로서 대부분의 버전 관리 필요에 적합합니다. 파일 크기, 파일 형식 및 리포지토리 크기에 대한 임의적인 제한은 없습니다. 그러나 특정 종류의 작업 수행, 특히 시간에 따른 작업 수행에 부정적인 영향을 미칠 수 있는 Git에 대해서는 내재된 제약이 있습니다. 다른 AWS 서비스가 해당 작업에 더 적합한 사용 사례에 CodeCommit 리포지토리 수행을 사용하지 않게 함으로써 리포지토리 수행의 잠재적인 악화를 방지할 수 있습니다. 또한 복잡한 리포지토리에 대한 Git 성능을 최적화할 수 있습니다. 일부 사용 사례에서는 Git, 즉 CodeCommit가 최상의 솔루션이 아닐 수 있으며 Git를 최적화하기 위해 추가적인 조치를 취해야 할 수 있습니다.

사용 사례 설명 고려해야 할 다른 서비스
자주 변경되는 대용량 파일 Git는 Delta 인코딩을 사용하여 파일 버전 사이의 차이를 저장합니다. 예를 들어 문서의 몇 단어만을 변경하는 경우, Git는 이러한 변경된 단어만을 저장합니다. 변경이 많이 가해진 5MB 이상의 파일 또는 객체가 있는 경우 Git가 Delta 차이의 상당한 체인을 다시 구성해야 할 수 있습니다. 따라서 이러한 파일이 시간의 경과에 따라 증가하면서 로컬 컴퓨터와 CodeCommit 양쪽에서 컴퓨팅 리소스의 소비량이 늘어날 수 있습니다. 대용량 파일을 버전 관리하려면, Amazon Simple Storage Service(S3)를 고려해 보세요. 자세한 내용은 Amazon Simple Storage Service 사용 설명서에서 버전 관리 사용을 참조하세요.
데이터베이스 Git 리포지토리의 크기는 시간이 흐를수록 증가합니다. 버전 관리 트랙은 모두 변경되므로 모든 변경 사항이 리포지토리 크기를 증가시킵니다. 다시 말해 데이터를 커밋할 때 커밋에서 데이터를 삭제하더라도 데이터는 리포지토리에 추가됩니다. 처리하고 시간의 경과에 따라 전송해야 할 더 많은 데이터가 있으므로 Git의 속도가 느려집니다. 이러한 현상은 특히 데이터베이스 사용 사례에 불리한 영향을 줍니다. Git는 데이터베이스로서 설계되지 않았습니다. 크기와 상관 없이 일관된 성능을 지닌 데이터베이스를 생성해 사용하려면 Amazon DynamoDB를 고려해 보세요. 자세한 내용은 Amazon DynamoDB 시작 안내서를 참조하세요.
감사 추적 일반적으로 감사 추적은 긴 시간 동안 유지되며 빈도가 매우 높은 케이던스로 시스템 프로세스에 의해 지속적으로 생성됩니다. Git는 개발 주기에서 개발자 그룹에 의해 생성된 소스 코드를 안전하게 저장하도록 설계되었습니다. 프로그래밍 방식으로 생성된 시스템 변경을 지속적으로 저장하는 리포지토리를 빠르게 변경하면 시간이 흐름에 따라 성능 저하를 초래하게 됩니다. 감사 추적을 저장하려면 Amazon Simple Storage Service(S3)를 고려해 보세요.

사용 사례에 따라 AWS 활동을 감사하려면 AWS CloudTrail, AWS Config, Amazon CloudWatch 등의 사용을 고려해 보세요.

백업 Git는 개발자가 작성한 소스 코드 버전에 맞추어 설계되었습니다. 사용자는 백업 전략으로 CodeCommit 리포지토리를 포함한 두 개의 원격 리포지토리에 커밋을 푸시할 수 있습니다. 그러나 Git는 컴퓨터 파일 시스템, 데이터베이스 덤프 또는 유사한 백업 콘텐츠의 백업을 처리하도록 설계되지 않았습니다. 그렇게 하면 시스템의 속도를 둔화시키고 리포지토리를 복제하고 푸시하는 데 소요되는 시간이 증가할 수 있습니다. AWS 클라우드로의 백업에 대한 자세한 내용은 백업 및 복원 단원을 참조하십시오.
다수의 브랜치 또는 참조 Git 클라이언트가 리포지토리 데이터를 푸시하거나 가져올 때 단일 브랜치에만 관심이 있더라도, 원격 서버는 모든 브랜치와 태그 등의 참조를 전송해야 합니다. 수천 개의 브랜치와 참조가 있는 경우, 이를 처리하고 전송하는 데(팩 협상) 시간이 소요될 수 있으며 명백히 느린 리포지토리 응답을 초래할 수 있습니다. 브랜치와 태그가 많을수록 이러한 프로세스가 오래 걸릴 수 있습니다. CodeCommit을 사용하되 더 이상 필요하지 않은 브랜치와 태그는 삭제하는 것이 좋습니다. 필요치 않은 브랜치와 태그를 확인하기 위해 CodeCommit 리포지토리의 참조 수를 분석하려면 다음 명령 중 하나를 사용할 수 있습니다.
  • Linux, macOS, Unix, Windows의 Bash 에뮬레이터:

    git ls-remote | wc -l
  • Powershell:

    git ls-remote | Measure-Object -line

CodeCommit은 어떻게 작동하나요?

CodeCommit은 Git 기반 리포지토리 사용자에게 익숙한 서비스이지만, 익숙하지 않은 사용자라도 비교적 간단하게 CodeCommit으로 전환할 수 있습니다. CodeCommit은 리포지토리를 쉽게 생성하고 기존 리포지토리와 브랜치를 나열할 수 있는 콘솔을 제공합니다. 로컬 리포지토리를 생성하여 간단한 몇 단계로 리포지토리에 대한 정보를 찾아서 컴퓨터에 복제할 수 있습니다. 로컬 리포지토리에서 원하는 항목을 변경한 다음 변경 내용을 CodeCommit 리포지토리로 푸시할 수 있습니다. 로컬 컴퓨터의 명령줄에서 작업하거나 GUI 기반 편집기를 사용할 수 있습니다.

다음 그림에서는 개발 시스템, AWS CLI, CodeCommit 콘솔, CodeCommit 서비스 등을 사용하여 리포지토리를 생성하고 관리하는 방법을 보여 줍니다.


        일반적인 CodeCommit 워크플로

  1. AWS CLI 또는 CodeCommit 콘솔을 사용하여 CodeCommit 리포지토리를 생성합니다.

  2. 개발 시스템에서 Git을 통해 git clone을 실행하여 CodeCommit 리포지토리의 이름을 지정합니다. 그러면 CodeCommit 리포지토리에 연결되는 로컬 리포지토리가 생성됩니다.

  3. 개발 시스템에서 로컬 리포지토리를 사용하여 파일을 수정(추가, 편집, 삭제)한 다음 git add를 실행하여 수정된 파일을 로컬로 스테이징합니다. git commit을 실행하여 파일을 로컬로 커밋한 다음 git push를 실행하여 파일을 CodeCommit 리포지토리로 전송합니다.

  4. 다른 사용자가 변경한 내용을 다운로드합니다. git pull을 실행하여 CodeCommit 리포지토리의 파일을 로컬 리포지토리와 동기화합니다. 그러면 최신 버전의 파일을 사용하여 작업할 수 있습니다.

AWS CLI 또는 CodeCommit 콘솔을 사용하여 리포지토리를 추적 및 관리할 수 있습니다.

CodeCommit은 Amazon S3의 파일 버전 관리와 어떻게 다른가요?

CodeCommit은 팀 소프트웨어 개발용으로 최적화되었습니다. 여러 파일에 걸쳐 다른 개발자가 변경한 내용과 병렬로 발생할 수 있는 변경 사항들을 일괄 관리합니다. Amazon S3 버전 관리는 파일의 이전 버전에 대한 복구를 지원하지만, 소프트웨어 개발 팀에 필요한 협업 파일 추적 기능에는 초점을 맞추지 않습니다.

CodeCommit은 어떻게 시작할 수 있나요?

CodeCommit을 시작하려면 다음과 같이 합니다.

  1. 설정 의 단계에 따라 개발 시스템을 준비합니다.

  2. 시작하기의 자습서 하나 이상에 나오는 단계를 따르십시오.

  3. CodeCommit에서 버전 관리 프로젝트를 생성하거나, 버전 관리 프로젝트를 CodeCommit으로 마이그레이션합니다.

Git에 대해 더 학습하려면 어떻게 해야 하나요?

아직도 잘 모르겠다면 Git 사용 방법 배우기를 참조하십시오. 다음과 같은 몇 가지 유용한 자료가 있습니다.

  • Pro Git(Pro Git 서적의 온라인 버전). 작성자: Scott Chacon. 발행: Apress

  • Git Immersion(Git 사용에 대한 기초 정보를 안내하는 자습서). 발행: Neo Innovation, Inc.

  • Git Reference(상세한 Git 자습서로도 사용 가능한 온라인 빠른 참조). 발행: GitHub 팀

  • Git Cheat Sheet(기본 Git 명령 구문). 발행: GitHub 팀

  • Git Pocket Guide. 작성자: Richard E. Silverman 발행: O'Reilly Media, Inc.