[AWS] CodeCommit 사용법
AWS CodeCommit이란? + GRC
- AWS에서 호스팅하는 버전 관리 서비스
- AWS에서 관리하는 GitHub이라고 생각하면 쉽다
- CodeCommit Repository를 만들고 사용하는건 Git으로 하는거라 어렵진 않지만, HTTPS 방식이나 SSH 방식이 아닌 HTTPS (GRC)라는
git-remote-codecmmit
이란 유틸을 사용하는 새로운 방식이 있다 - 이는 아마존에서 권장하는 방법이며, Git 자격 증명 설정 필요 없이 IAM 또는 SSO 사용자로 바로 접근할 수 있다
- 자세한 내용 : https://docs.amazonaws.cn/en_us/codecommit/latest/userguide/setting-up-git-remote-codecommit.html
GRC (git-remote-codecommit) 사용 조건
Python 3버전 이상 + pip 9.0.3버전 이상 + Git 1.7.9버전 이상
IAM User/Role : AWSCodeCommitFullAccess
or AWSCodeCommitPowerUser
권한 가져야 함
(PowerUser는 Repository 삭제 권한이 없음)
1) Windows 설정
Python 설치 : https://www.python.org/
Git 설치 : http://git-scm.com/downloads
AWSCLI 설치 : https://awscli.amazonaws.com/AWSCLIV2.msi
(AWS 자격 증명을 위한 것이라 Role이 붙어있는 EC2라면 생략해도 무관)
# GRC 설치
> pip install git-remote-codecommit
# AWS 자격증명
> aws configure
2) Linux 설정
# pip이 없거나 update가 필요한 경우
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py --user
# git, grc 설치
$ sudo yum install -y git
$ pip3 install git-remote-codecommit
# awscli - aws 자격증명용이라 Role이 붙은 EC2인 경우 없어도 됨
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
$ sudo ./aws/install
$ aws configure
# root로 GRC를 설치한 경우 - PATH 추가를 해줘야 함
$ PATH=$PATH:/usr/local/bin
CodeCommit Repository 생성 & 사용
AWS Console > CodeCommit > Repositories > Create repository
이름만 정해주고 Create 눌러주면
이런 Connection steps가 뜬다. 우측의 Clone URL > Clone HTTPS (GRC) 를 눌러 GRC용 URL을 복사해두자
이젠 해당 URL을 Git을 통해 사용하기만 하면 된다
$ touch 1.txt
$ git init
$ git remote add origin codecommit::ap-northeast-1://honglab-test-repository
$ git add .
$ git commit -m "1.txt"
$ git push origin master
push가 잘된걸 확인할 수 있다
좌측의 사이드바엔 Pull requests, Commits, Branch 등을 확인하고 관리할 수 있는 탭도 보인다
+ 빈 Repository에(브랜치가 없는 경우) 콘솔에서 파일을 하나 업로드하는 경우, 자동으로 main branch가 생성되어 사용되니 참고하도록 하자
++ GRC가 아닌 HTTPS나 SSH를 사용하는 경우, IAM User > Security credentials에서 HTTPS Git credentials 또는 SSH keys를 설정해줘야 한다 - GRC를 설치하지 않아도 되지만 자격 증명이 이중으로 필요해서 좀 귀찮다
참고 : https://docs.amazonaws.cn/en_us/codecommit/latest/userguide/setting-up.html
끝!