해당 포스팅은 기본적인 GIT 사용 및 리눅스 서버 구축 경험이 있는 사람을 대상으로 작성되었습니다.
만일 GIT 버전관리 시스템 구축 경험이 없다면 아래
[Linux] CentOS7 - GIT을 이용한 버전관리 시스템 구축 포스팅의 내용을 한번 확인하고 진행하는것을 권합니다.
#1. 「원격」 AWS - IAM 그룹 생성 및 사용자 등록
AWS 관리 콘솔 페이지의 ▼ 모든 서비스 > 보안, 자격 증명 및 규정 준수 > IAM 메뉴를 선택한다.
01) IAM 엑세스 관리 - 그룹 생성
화면 좌측 IAM( Identity and Access Management ) 카테고리에서 그룹 항목을 선택하고
새로운 그룹을 생성한다.
단계 1 : 그룹 이름
사용할 그룹 이름을 작성하고 다음 단로 넘어간다
단계 2 : 정책 연결
GIT 사용을 위한 정책은 아래 3가지가 사용된다.
정책 이름 | 설명 |
AWSCodeCommitFullAccess | 사용자에게 모든 접속 권한을 부여 |
AWSCodeCommitPowerUser | 사용자에게 CodeCommit 및 리포지토리 관련 리소스의 모든 기능에 접속 할 수 있는 권한을 부여 |
AWSCodeCommitReadOnly | 리포지토리 내용읽기 기능은 부여하되, 내용에 대한 변경을 허용하지 않음 |
해당 포스팅에서는 AWSCodeCommitFullAccess를 선택하고 다음단계로 진행한다.
단계 3 : 검토
단계 1 : 그룹 이름, 단계 2 : 정책 연결이 선택한 값과 동일하니 확인하고 그룹을 생성한다.
그럼 아래와 같이 지정한 이름의 그룹이 생성되는것을 확인 할 수 있다.
02) IAM 엑세스 관리 - 그룹 생성
그룹 생성이 완료 되었다면 다음으로 그룹에 추가할 사용자를 생성해야 한다.
추가할 사용자의 정보 설정 및 AWS 엑세스 유형을 선택해 주어야 한다.
① 사용자 이름 | 사용자 이름 지정 |
② 엑세스 유형 - 프로그래밍 방식 엑세스 | ✓ |
③ 엑세스 유형 - AWS Management Console 엑세스 | ✓ |
④ 콘솔 비밀번호 | 사용자 지정 비밀번호 등록 |
⑤ 비밀번호 재설정 필요 | ✓ |
이제 위에서 생성한 그룹에 방금 생성한 사용자를 추가해 주도록 한다.
특별히 태그를 지정하지 않을 것이다. 다음 : 검토를 눌러 작업을 계속 진행한다.
이제 사용자 만들기 버튼을 클릭하면 AWS IAM 엑세스할 사용자 생성이 마무리 된다.
아래와 같은 화면이 나타나면 사용자 생성이 완료된 것이다.
※ 실 사용을 한다면, 나중을 위해 꼭 비밀 엑스시 키를 확인하고 별도로 보관하도록 한다.
다시 AWS - IAM 페이지 에서 사용자 카테고리를 선택하면 생성한 사용자 이름과 지정한 그룹명을 확인 할 수 있다.
#2. 「로컬」 SSH-KEY 생성 하기
프로젝트의 작업 결과가 저장될 로컬 Windows 컴퓨터에 설치한 Git Bash.exe 프로그램을 실행하하고.
$ cd ~/.ssh
OpenSSH에 포함된 SSH 키 페어를 만드는 도구( 명령어 )인 ssh-keygen 명령을 사용하여
AWS -CodeCommit 사용 권한을 가진 계정과 연결시킬 개인키 or 공개키 RSA 키페어를 만들어준다.
$ ssh-keygen -t rsa -b 2048 -C "aws-code-commit"
Generating public/private rsa key pair.
① KEY 파일명 지정
Enter file in which to save the key (/c/Users/사용자계정/.ssh/id_rsa): 키페어_파일명
② 생성한 KEY 파일에 대한 비밀번호를 지정( Enter 키를 눌러 생략가능 )
Enter passphrase (empty for no passphrase): 키페어_비밀번호_설정
③ 생성한 KEY 파일에 대한 비밀번호 재확인( Enter 키를 눌러 생략가능 )
Enter same passphrase again: 키페어_비밀번호_설정
Your identification has been saved in aws-code-commit
Your public key has been saved in aws-code-commit.pub
The key fingerprint is:
SHA256:cDeM3Gn8F9L19VQyQQ0nFRuQskb+tr/AoG8Dh2Qf8t4 aws-code-commit
The key's randomart image is:
+---[RSA 2048]----+
| oXBX|
| . = + o BB|
| . + @ + o.o|
| o * B . . |
| S *.+ . |
| o.+o+ |
| .+ oo. |
| .+ E. |
| ... .o.|
+----[SHA256]-----+
① KEY 파일명 지정
Enter file in which to save the key (/c/Users/사용자/.ssh/id_rsa): 키페어_파일명( 필수 )
② 생성한 KEY 파일에 대한 비밀번호를 지정( Enter 키를 눌러 생략가능 )
Enter passphrase (empty for no passphrase): 비밀번호( 해당 포스팅은 Enter키를 눌러 생략 함 )
③ 생성한 KEY 파일에 대한 비밀번호 재확인( Enter 키를 눌러 생략가능 )
Enter same passphrase again: 비밀번호( 해당 포스팅은 Enter키를 눌러 생략 함 )
생성된 폴더를 확인해 보면 키페어_파일명 과 키페어_파일명.pub
이렇게 2개의 파일이 생성된 것을 확인 할 수 있다.
$ ls -al
total 0
drwxr-xr-x 1 saakmiso (이하생략) ./
drwxr-xr-x 1 saakmiso (이하생략) ../
-rw-r--r-- 1 saakmiso (이하생략) 키페어_파일명
-rw-r--r-- 1 saakmiso (이하생략) 키페어_파일명.pub
-rw-r--r-- 1 saakmiso (이하생략) known_hosts
※ 주의 : 키페어_파일명, 키페어_파일명.pub 파일 2가지다 각자의 역할이 다르기 때문에
이후 내용에서 2파일중 어느 파일을 가리키는지 확인하고 진행해야 한다.
그럼 생성된 키페어_파일명.pub 파일의 내용을 cat 명령을 통해 확인해 보도록 하자.
$ cat 키페어_파일명.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDw0/cqf8BfEUVuBTFBATPKWNCWJpIrhQtbW1AdocJV5JOLZ+buAbiCDi7Q/IaGNg4KyZKFlyd17AEZoRVJlqLBxqfYHuwmKsx0odHGE4kF/k2Ay7+z3OH64J0jweNUsFowFjZhg786aBVdvCbhknDWD9LaAf5nV+4Ffc6tasUIdQvSnUYW1YSo5SxwxHlJaDVukk1Ou+04HQV8QMiTf4mR9fLjUybbgo/02Eu+ZCdXJxXSWVVKDN78IEHQsy0BG7E4zIpMGNyDT2vILBQBs7Ez4KmYcxe2kaailIMa56PEwRViAN4y1FRMGSmSQ8/3VWFv6h1AJWptL1gy5qYp7cB5 aws-code-commit
키페어_파일명.pub의 출력 내용을 복사하자.
복사한 키페어_파일명.pub의 내용은 AWS IAM 사용자 공개키에 등록에 사용할 것이다.
P.S 사용자 정보
이제막 Git을 설치했다면 사용자 이름과 이메일 주소를 설정해 주어야 한다.
Git은 커밋할 때마다 이 정보를 사용하는데, 한 번 커밋한 후에는 정보를 변경할 수 없다.
$ git config --global user.name "사용자_아이디" $ git config --global user.email "아이디@도메인주소.com"
--global 옵션으로 설정하는 것은 딱 한번만 하면 된다.
#3. 「원격」 AWS - IAM 사용자 공개키 등록
이번엔 AWS - IAM 페이지에서 생성한 사용자의 이름을 클릭한다
다음으로 보안자격 증명 탭 메뉴에서, SSH 퍼블릭 키를 업로드 할 것이다.
$ cat 키페어_파일명.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDw0/cqf8BfEUVuBTFBATPKWNCWJpIrhQtbW1AdocJV5JOLZ+buAbiCDi7Q/IaGNg4KyZKFlyd17AEZoRVJlqLBxqfYHuwmKsx0odHGE4kF/k2Ay7+z3OH64J0jweNUsFowFjZhg786aBVdvCbhknDWD9LaAf5nV+4Ffc6tasUIdQvSnUYW1YSo5SxwxHlJaDVukk1Ou+04HQV8QMiTf4mR9fLjUybbgo/02Eu+ZCdXJxXSWVVKDN78IEHQsy0BG7E4zIpMGNyDT2vILBQBs7Ez4KmYcxe2kaailIMa56PEwRViAN4y1FRMGSmSQ8/3VWFv6h1AJWptL1gy5qYp7cB5 aws-code-commit
SSH 퍼블릭키 업로드 창이 나타나면 방금 위에서 cat 명령어로 내용을 복사한 키페어_파일명.pub 파일의 내용을
복사 붙여넣기 하여준다.
그럼 아래와 같이 SSH 키 ID가 생성되는것을 확인 할 수 있다.
해당 SSH키 ID를 복사하여 둔다.
#4. 「로컬」 접속 호스트 설정
다시 Git Bash.exe 터미널을 열고 .ssh 디렉터리로 이동한다.
$ cd ~/.ssh
.ssh 디렉터리 내에 vi 에디터를 통해 config 파일을 생성( or 수정 ) 할 것이다.
$ vi config
Host git-codecommit.*.amazonaws.com
User AWS_SSH_KEY_아이디
IdentityFile ~/.ssh/키페어_파일명( 확장자 *.pub 은 입력하지 않는다. )
User에는 방금 AWS에서 등록한 AWS_SSH_KEY_아이디 를 입력하고
IdentityFile은 SSH-KEY 생성에서 만든 키페어_파일명을 입력해주면된다.
config 파일이 생성( or 수정 )을 마쳤다면 파일의 권한도 수정해 주도록 하자.
$ chmod 600 config
이제 다음 명령을 실행하여 SSH 구성을 테스트하여준다.
$ ssh git-codecommit.ap-northeast-2.amazonaws.com
You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.ap-northeast-2.amazonaws.com closed by remote host.
Connection to git-codecommit.ap-northeast-2.amazonaws.com closed.
위와같이 첫줄에 You have successfully authenticated over SSH.라는 문구가 출력된다면
성공적으로 AWS 접속 호스트 설정을 완료한 것이다.
#5. 「원격」 AWS - CodeCommit 리포지토리 저장소 생성
이제 GIT 버전관리를 위한 실질적인 물리적 공간 생성을 위해
AWS 관리 콘솔 페이지의 ▼ 모든 서비스 > 개발자 도구 > CodeCommit 메뉴를 선택한다.
개발자 도구 페이지의 CodeCommit 메뉴의 카테고리 리포지토리를 선택하고
리포지 토리 생성 버튼을 클릭하여 준다.
리포지토리 생성을 위한 설정을 묻는데 리포지토리 이름은 필수 이니 꼭 입력하여 준다.
리포지 토리 이름과, 부연 설명을 다 입력하고 나서 생성 버튼을 선택하면 아래와 같이 리포지토리가 생성된다.
여기서 지정한 리포지토리의 이름을 로컬 저장소의 디렉토리 명으로도 사용됨을 유의하자.
신규 리포티토리의 생성이 확인되었다면 리포지토리의 SSH값을 복하여 준다.
복사한 SSH값은 바로 아래 진행과정에서 사용할 것이다.
#6. 「로컬」 - GIT 저장소 생성 및 소스코드 PUSH
#6-1. 로컬 작업환경에 복제 GIT 저장소 생성
위에서 복사한 SSH키를 통해 AWS - CodeCommit Git 저장소를
Local 작업 환경에 그대로 복사할 것이다.
다시 Git Bash 터미널을 열고 Local 컴퓨터의 Git 저장소 디렉터리로 이동한다.
$ cd ~
$ pwd
/c/Users/사용자_계정
※ 해당 포스팅은 C://User/사용자 계정/ 경로에서 진행하였다.
그럼 이제 Local 작업환경에도 AWS - CodeCommit 레파지토리와 동기화 시킬
clone 명령을 사용하여 Local - Git 저장소를 생성할 것이다.
위 리포지토리를 생성하고 SSH 버튼을 클릭하여 복사한 SSH_URL을 복사하고
clone 명령을 진행하도록 하자.
$ git clone ssh://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/repository
Cloning into 'git-repository'...
remote: Counting objects: 3, done.
Receiving objects: 100% (3/3), 221 bytes | 221.00 KiB/s, done.
생성한 리포지토리가 잘 생성되었는지 확인해 보자.
해당 포스팅은 C:\User\사용자_계정 경로에 AWS_Git_리포지토리명 디렉토리를 생성했다.
#6-2. 작업내역 원격지 AWS - CodeCommit 저장소로 PUSH하기
위와같이 Local - Git 저장소 클론의 생성이 완료되면 해당 경로로 이동하자.
$ cd ./Git_저장소_이름
01) Git Remote 저장소 확인하기
remote 명령으로 현재 프로젝트에 등록된 리모트 저장소를 확인할 수 있다.
이 명령은 리모트 저장소의 단축 이름을 보여준다.
저장소를 Clone 하면 `origin`이라는 리모트 저장소가 자동으로 등록되기 때문에
`origin`이라는 이름을 볼 수 있다.
$ git remote -v
origin ssh://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/repository (fetch)
origin ssh://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/repository (push)
-v 옵션을 주어 단축이름과 URL을 함께 볼 수 있다.
AWS - CodeCommit 페이지에서 설정한 SSH_URL 정보가 출력되는것을 확인할 수 있다.
다음으로 status 명령을 통해 Local에 복제한 Git 저장소의 상태를 확인해보자.
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
02) 소스코드 Commit 하고 원격저장소에 Push하기
이제 테스트용 파일을 하나 생성하고 해당 내용을 AWS - CodeCommit 원격 저장소로 Push 해보자.
vi 에디터를 통해 테스트용 텍스트( *.txt ) 파일을 하나 생성한다.
$ vi 테스트_파일.txt
Welcome to Git, Hello World
이제 다시 status 명령을 실행하여 변경사항을 확인해 보면
테스트_파일.txt 가 새로 생성된 것을 확인 할 수 있다.
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
"테스트_파일.txt"
nothing added to commit but untracked files present (use "git add" to track)
add . 명령을 통해 생성( or 수정 )된 파일을 스테이지위로 전부 올린다.
$ git add .
warning: LF will be replaced by CRLF in 테스트_파일.txt.
The file will have its original line endings in your working directory
한번더 status 명령을 실행하여 스테이지위에 테스트_파일.txt 이 등재된것을 확인 할수 있다.
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: 테스트_파일.txt
이제 원격 Git 저장소에 올리기전 commit 명령을 통해 새로운 버전을 만들어 보자.
$ git commit -m "AWS GIT 연결 테스트"
[master dfaa158] update ssh test
1 file changed, 1 insertion(+), 1 deletion(-)
-m "AWS GIT 연결 테스트" 라고 작성하였다.
어떤 내용인지 짤막한 설명을 작성해 주면 된다.
모든 작업이 완료되었다면 push 명령을통해
위에서 생성한 AWS - CodeCommit 저장소에 업로드 시켜보자.
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 262 bytes | 262.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To ssh://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/git-repository
7baeb80..dfaa158 master -> master
위와 같이 출력 된다면 성공적으로 push 명령이 실행되어 원격 저장소에 업로드 된 것이다.
AWS - CodeCommit 저장소에 등록이 잘 되었는지 직접 살펴보자
#7. 「로컬」 - GIT 저장소 생성 및 소스코드 PUSH
원격 저장소의 GIT 리포지토리와, 로컬 저장소의 연결이 성공적으로 마무리 되었다면
이제 GUI Tool인 SourceTree를 실행하여 관리 할 수 있게 작업해 보자.
SourceTree가 실행되면 작성한 텍스트 파일의 내용을 수정하고
스테이지위에 올려놓고 Commit 작업을 수행한다.
Push 버튼을 클릭하여 AWS - CodeCommit 리포지토리 원격 저장소에 등록을 진행해 보자.
아래와 같은 결과를 출력한다면 모든 작업은 완료된 거이다.
'AWS' 카테고리의 다른 글
[AWS] Lmabda + DynamoDB 사용하기 (0) | 2024.04.30 |
---|---|
[AWS] 데이터 베이스 환경 생성 - MariaDB (0) | 2021.12.23 |
[AWS] EC2 - Amazon Linux 2 SSL / TLS 인증 (0) | 2021.11.29 |
[AWS] EC2 - Amazon Linux 2 AMI 서버 구축 (0) | 2021.07.06 |