일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- AWS
- docker network
- S3
- 앱테크
- built-in
- VPC
- 리뷰
- aws codecommit
- 커피머니불리기
- Container
- 토스카드
- python3
- mininet
- network
- 도커
- codecommit
- 리워드앱
- docker
- Linux
- MongoDB
- 재테크
- 실사용
- 포인트앱
- 후기
- Python
- 하나머니
- MongoEngine
- DocumentDB
- clone
- namespace
- Today
- Total
ㅍㅍㅋㄷ
AWS CodeCommit 어렵지 않아요 본문
AWS CodeCommit
AWS에서 출시한 서비스 중 하나이며, 개발자를 위한 코드 관리 서비스이다. 간단히 이야기 하면, Private git repository 서비스이다. 동작 방식은 git과 동일하다.
특별할 건 없다. 따로 git 서버를 구축하고 관리할 수고를 AWS 에게 맡기는 것 뿐이다.
codecommit은 사용자가 올린 소스를 s3에 암호화 해서 저장하기 때문에 안정성이 매우 높고 용량 걱정도 필요 없다. 또한 s3에 저장할때도 AWS의 KMS를 통해 암호화해서 저장하며, AWS의 IAM 인증을 통해 push/pull 에 대한 권한 관리가 가능하다.
가격 정책도 매우 좋은편.
IAM에서 codecommit을 이용하는 user를 기준으로 5명 이하는 무료. 5명 이상일 경우 추가 1명당 매달 1 USD 만 내면 된다. user 당 10GB 용량과 git 요청 2,000 회까지 가능하다. (해당 쿼터가 넘어가면 추가 요금)
참고로 github 의 private repository는 월 7달러 정도.
단점으로는 아직 codecommit 을 지원하는 region이 US EAST(Virginia) 밖에 없다는 점이다. 느리지만, 못쓰겠다 정돈 아니다.
아직 나온지 얼마 안되서 그런지 같은 카테고리에 있는 CodeDeploy와 연동이 되지 않는다. -_-.. (얼른해줘)
Codecommit을 사용하기 위한 User 생성
먼저 codecommit 을 사용하기 위해서는 IAM 에서 codecommit용 user를 생성해야한다.
user를 생성 후 codecommit을 위한 권한을 부여한다.
1. security Credential 메뉴로 go.
2. 사이드 메뉴 Users -> create user 뙇.
3. git_user 라는 이름으로 생성 후, access key와 secret key를 어딘가에 잘 복사해놓자.
4. git_user 가 생긴걸 볼 수 있다. ㅎ git_user를 클릭해서 codecommit을 할 수 있는 권한을 설정해 보자.
5. permission 탭 선택후, attach policy 뙇.
6. filter 에 codecommit 으로 검색 후 "AWSCodeCommitFullAccess" 선택!
git repository 생성
현재 codecommit은 us-east-1 리젼에서만 서비스 된다.
us-east-1 으로 이동 후 code commit 을 시작한다.
1. Management console 에서 codecommit 으로.
2. create new repository 뙇.
repository 명과 description을 작성해 준다.
소스 Pull/Push 를 위한 인증 설정
codecommit을 통해 소스를 pull/push 할 서버에도 설정이 필요하다.
위에서 생성한 user git_user 의 access key와 secret key를 이용해 인증을 받아야만 가능하다.
* Ubuntu를 기준으로 설명한다.
1. 먼저 aws cli를 설치한다.
apt-get install 로 awscli 가 설치 가능하지만, 버전이 낮아 codecommit 관련 명령어는 사용이 안된다.
( codecommit 을 이용하려면 aws cli 버전 1.7.38 이상이어야 된다. )
하지만 pip를 통해 설치 하면 됨ㅋ
그러하므로 pip 를 먼저 설치하자.
root@~~# apt-get install python-pip
pip를 통해 awscli 설치.
root@~~# pip install awscli
....(중략)
root@~~# aws --version
aws-cli/1.10.28 Python/2.7.6 Linux/3.13.0-74-generic botocore/1.4.19
버전 1.10.28이 된거 보니 사용가능하겠다.
(aws codecommit help 라고 쳤을때 man 페이지가 뜨면 사용 가능)
2. aws cli 설정
cli가 동작하기 위해서는 먼저 인증 정보를 설정해야한다. 위에서 만든 git_user의 access key와 secret key를 설정한다.
root@~~# aws configure
AWS Access Key ID [None]: YOURACCESSKEY
AWS Secret Access Key [None]: YOURSECRETKEY
Default region name [None]: us-east-1
Default output format [None]: json
3. git 설치
codecommit 의 git repository 에 접근하려면 동일하게 git을 이용한다.
root@~~# apt-get install git
4. git HTTPS 통신을 위한 credential 설정
codecommit은 HTTPS와 SSH 방식의 통신을 지원한다.
여기서는 HTTPS 방식으로 설정해보겠다. HTTPS 통신을 하려면 credential 설정을 해야 한다.
root@~~# git config --global credential.helper '!aws codecommit credential-helper $@'
root@~~# git config --global credential.Usehttppath true
git clone!
이제 소스를 repository에 올린 후 git clone 해보자.
repository URL 주소는 repository 클릭 후 clone URL 버튼을 누르면 확인 가능하다.
root@~~# git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/MYREPO
Cloning into 'MYREPO'...
remote: Counting objects: 428, done.
remote: g objects: 57% (244/428)
Receiving objects: 100% (428/428), 99.10 KiB | 0 bytes/s, done.
Resolving deltas: 100% (291/291), done.
Checking connectivity... done.
* git clone 이 제대로 동작 안할 수 있다. (필자는 그랬다 ㅠ)
git clone https://git-codecommit.us-east-1.amazonaws.com/v1/repos/MYREPO
Cloning into 'MYREPO'...
fatal: unable to access 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/MYREOI/': gnutls_handshake() failed: Illegal parameter
위와 같이 gnutls_handshake() 에러가 난다면, git을 다시 compile 해서 설치하길 권한다.
방법은 아래 링크로
: git gnutls_handshake() 에러 발생시 해결 방법
* 기존에 사용하던 git 서버에서 codecommit 으로 마이그레이션 하고 싶다면 아래 링크로
: Github 에서 AWS CodeCommit 으로 마이그레이션 - 어렵지 않아요
[참고]
- https://aws.amazon.com/ko/codecommit/details/
- http://docs.aws.amazon.com/codecommit/latest/userguide/getting-started.html
- http://docs.aws.amazon.com/codecommit/latest/userguide/cmd-ref.html
- http://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-https-unixes.html#setting-up-https-unixes-credential-helper
'IT > AWS' 카테고리의 다른 글
AWS Glacier는 뭐지? - AWS S3 와 Glacier 장단점 비교 (2) | 2016.05.16 |
---|---|
Github 에서 AWS CodeCommit 으로 마이그레이션 - 어렵지 않아요 (0) | 2016.05.13 |
AWS Storage Gateway 설치 (0) | 2016.04.28 |
AWS Storage Gateway (0) | 2016.04.27 |
goofys를 이용해 AWS S3 mount 해서 사용하기 (1) | 2016.04.27 |