CodePipeline으로 소스를 배포하는 예제.
과정이 간단한 것이 아니라 구조가 간단한 것임.

일반적으로는 commit - build - deploy의 구조를 가지는데
build를 빼고 commit - deploy 만 codepipeline으로 묶음.

사용하는 AWS제품은
CodeCommit, CodeDeploy, CodePipeline, S3 bucket, EC2

소스를 push하면 CodeDeploy Agent가 설치된 EC2에 배포한다.
build라는 과정이 없기 때문에 간단과정이다.


이번 설명에서 AWS CodePipe라인은 다음 순서로 설정한다
1. CodeCommit
2. CodeDeploy
3. EC2
4. CodePipeline

CodeCommit Repository : simple-pipeline-repo
Region : 서울 ap-northeast-2

먼저 CodeCommit에 Repository를 생성한다.
. login


. codeCommit > repository > repository 생성 버튼 클릭


. repository 이름 넣고 "생성" 버튼 클릭. (simple-pipeline-repo)

*[참고]루트계정으로 작업하지 않는것을 권장하며
repository를 루트계정으로 생성하면 ssh로 작업을 할 수 없다
아래와 같이 https로만 연결 가능하므로 IAM 유저를 추가한 다음 작업하는 것을 추천.

root계정으로 repository 생성핼을 때.

 . Repository가 생성되면 "연결 단계" 설정을 해야한다.
   HTTPS, SSH, HTTPS(GRC) 세 가지가 있으며
   조금 복잡하지만 SSH 방식으로 진행한다.
   아래 그림과 같이 연결단계는 MacOS, Windows, Linux 별 설정이 다르니 해당 OS에 맞는 설정을 한다.
   MacOS 를 클릭하면 설정방법이 나타난다. 

  . 1단계로 : 사전요구사항인데. 작업할 PC에 git이 깔려있어야 하고 IAM 유저가 CodeCommit를 쓰기위한 권한이 있어야하고 팀원초대하는데. 우선은 혼자 작업할 예정이므로 스킵.
  . 2단계 : SSH 퍼블릭 키 등록. Repository의 source를 git clone, push를 하기위해 키 등록을 해야한다.
     적절한 권한이 없이 그냥 clone 하면 id/pass를 물어보고 권한이 없어서 안된다고 한다.

git clone https://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/simple-pipeline-epo
'simple-pipeline-repo'에 복제합니다...
Username for 'https://git-codecommit.ap-norththeast-1.amazonaws.com': noman
Password for 'https://noman@git-codecommit.ap-northeast-2.amazonaws.com':
fatal: unable to access 'https://git-codecommit.ap-norththeast-2.amazonaws.com/v1/repos/simple-pipeline-repo/': The requested URL returned error: 403


     - 터미널에서 작업
        #폴더 이동
        cd ~/.ssh
        #Key 생성 ssh-keygen명령을 실행하고 keypair 파일명 입력 passphrase는 생략가능하므로 그냥 엔터만 쳐도 된다.(엔터 2번)
        ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/user/.ssh/id_rsa): aws_seoul-codecommit-keypair
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in aws_seoul-codecommit-keypair
Your public key has been saved in aws_seoul-codecommit-keypair.pub
The key fingerprint is: xxxxx

 ** 다른 repository에서도 사용가능한지는 확인 안해봤으나 가능할 것으로 보고 이름을 좀 넓은 의미로 지음.

      # ls 를 해 보면 1쌍의 key pair파일이 생성되었다. ( xxx.pub, xxx)
      ls

      # xxx.pub파일의 내용 확인
      cat ~/.ssh/aws-seoul-codecommit-keypair.pub
      그러면 ssh-rsa ~~~ user-name@...
      이 내용을 모두 복사한다.
      ex)

ssh-rsa AAAA - 중 간 생 략 -0K2xI71eoVRMe6fbp13WJl8mrtdYgxglfOCMnV9K+OFyeQj7/cuiw5uK0QadZywSBReMDhN4RkHKMBe6wW7KrLPRCoBOlFqnvXP4kFGOko4 - 중 간 생 략 -D8/6TjIgT2A+MgNuM= noman@MYPC.local

    - AWS Console에서 작업 : SSH 퍼블릭 키 업로드
       . IAM > 좌측메뉴 사용자 > 사용자 목록에서 사용자 선택 > 보안 자격 증명 Tab

           . 아래로 scroll "AWS CodeCommit"에 대한 SSH 키 항목에 "SSH 퍼블릭 키 업로드" 버튼 클릭

        . xxx.pub파일에 있는 내용을 붙여 넣는다.

      . 생성하면 SSH KEY ID 가 생성된다. 사용하지 않을 때는 "비활성화"를 클릭하면 되고, 필요없을 때는 X 버튼을 누르면 된다.

      . 3단계 : ssh 구성 편집
        # config라는 파일을 생성하여 방금 생성한 ssh key id와 생성된 파일위치를 지정한다.
        vi config

Host git-codecommit.*.amazonaws.com
  User APKAQXV6Fxxxxx
  IdentityFile ~/.ssh/aws-seoul-codecommit-keypair

        # config 파일에 권한 변경 : 작업 디렉토리는 반드시 ~/.ssh 여야한다.
        chmod 600 config

      . 4단계 : Repository 복제
       # 로컬로 clone
       # 작업할 directory로 이동
       pwd
       cd ~/Documents/cicd
       # 접속Test : ssh key id 와 해당 region정보로
       ssh APKAQXV6Fxxxxx@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.


      # Clone : AWS console에서 해당 repository에 주소가 있으므로 그대로 복사.
      git clone ssh://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/simple-pipeline-repo

      # yes를 입력하면 현재 소스는 없이 repository만 만들었으므로 빈 것 같다는 말이 나옴.     

      # ls -al 해 보면 simple-pipeline-repo 폴더가 생겼고 .git만 하나 있음.
      cd simple-pipeline-repo
      ls -al
          

 

728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :