아마존 클라우드

[클라우드] AWS CI/CD 사용하기 -2 Codepipeline 사용하기.

트리스탄1234 2023. 5. 9. 21:06
728x90
반응형

안녕하세요 이웃님들 ^.^

지난 포스팅에서는 레포지토리를 생성하고, public Key를 업로드 하고..

해당 Public Key와 Private Key의 ssh 연결 설정까지 진행을 했습니다.

이번 시간은 CI/CD를 위해 Codepipeline을 이용하여 Docker Image를 생성하고 이미지를 레포지토리에 저장하는 작업을 진행해 보겠습니다.

Codepipeline 사용하기

  1. 아래의 명령을 사용해서 git의 설정 정보를 변경 합니다.. 본인의 이메일, 이름 그리고 git branch main을 생성 합니다. 아래 명령은 AWS Codecommit에 Commit할때 필요 정보를 제공 합니다.
sh-4.2$ git config --global user.email "you@example.com"
sh-4.2$ git config --global user.name "Your Name"
sh-4.2$ git config --global init.defaultBranch main

2. 아래 명령을 사용해서 AWS에 있는 repogitory를 홈 디렉토리로 복제를 합니다. 앞서 생성한 k8s-testconfig를 복제 합니다.

sh-4.2$ cd ~ && git clone ssh://$KEYID@git-codecommit.us-west-2.amazonaws.com/v1/repos/k8s-testconfig
Cloning into 'k8s-testconfig'...
Warning: Permanently added the RSA host key for IP address '52.94.210.119' to the list of known hosts.
warning: You appear to have cloned an empty repository.

3. 아래 명령을 사용해서 복제한 홈 디렉토리로 이동을 합니다.

sh-4.2$ cd k8s-testconfig/
sh-4.2$

4. 아래 명령을 이용해서 사용할 어플리케이션 파일들을 website-example에서 복사 합니다.(실제로는 배포할 어플리케이션들의 파일을 해당 디렉토리에서 작성)

cp -R /lab/task3/website-example/* ./

5. 복제 완료 후 아래 명령을 이용해서 복제한 파일을 살펴 보면 Docker Image를 생성할 DockerFile과 필요한 파일들을 확인 합니다.

h-4.2$ ls -al
total 4
drwxr-xr-x 4 ssm-user ssm-user 47 May 1 10:51 .
drwxr-xr-x 6 ssm-user root 86 May 1 10:48 ..
drwxr-xr-x 7 ssm-user ssm-user 119 May 1 10:48 .git
-rw-r--r-- 1 ssm-user ssm-user 181 May 1 10:51 Dockerfile
drwxr-xr-x 2 ssm-user ssm-user 42 May 1 10:51 src

6. 이제 website-example에서 복사한 파일을 우리가 사용하는 k8s-testconfig 레포지토리로 아래 명령을 이용해서 복사를 합니다.

sh-4.2$ git add .
sh-4.2$ git commit -am "Initial commit"
[main (root-commit) ea829f5] Initial commit
3 files changed, 39 insertions(+)
create mode 100644 Dockerfile
create mode 100644 src/hello.conf
create mode 100644 src/index.html
sh-4.2$ git push
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 2 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 849 bytes | 849.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Validating objects: 0%
remote: Validating objects: 100%
To ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/k8s-testconfig
* [new branch] main -> main

7. AWS Console화면으로 돌아가서 서비스 검색창에 Codeppeline을 검색 하고 클릭을 합니다.

8. fail 상태인 application-pipeline을 클릭 합니다.(미리 생성해 놓았음)

9. 화면 상단 중간에 있는 편집 버튼을 클릭 합니다.

10. 편집:source 오른쪽에 있는 스테이지 편집 버튼 후

편집 아이콘 을 클릭 합니다.

 

반응형

작업 공급자는 AWS CodeCommit를 선택 하고, 리포지토리 이름은 k8s-testconfig로 선택하고 브렌치 이름에 main을 선택 합니다.

변경 감지 옵션은 AWS CodePipeline을 선택 하고 완료를 클릭 합니다.

11. 아래 화면에서 저장을 클릭 합니다.저장을 누르고 나면 Docker Image Build를 시작을 합니다. 이 Pipiline은 DockerFIle을 기반으로 Image를 생성한 후 k8s-testconfig 레포지토리에 image를 push를 합니다.

12. 저장을 누르고 나면 Application-Pipeeline은 아래 그립처럼 build를 하기 시작합니다. 이 작업은 시간이 좀 걸립니다. 대략 20분 정도...

화면 우측 중간에 버튼이 활성화 표시가 될때가지 대기 합니다.

13. 그럼 이제 생성된 이미지가 레포지토리에 있는지 확인을 위해 AWS Console에의 서비스 창에서 Elastic Registry container를 선택 합니다.

위의 그림 처럼 image 태그가 생성이 되어 있습니다. Pipeline을 통해 성공적으로 이미지를 빌드하고, 저장을 하였습니다.

그럼 오늘 포스팅을 여기까지 하겠습니다.

다음 포스팅은 EKS에서 클러스터를 구성하고, 위에서 생성한 이미지를 배포하는 작업을 진행 하겠습니다.

그럼 행복하고 즐거운 하루 되세요

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형