카테고리 없음

[서평] 클라우드 서비스 개발자를 위한 AWS로 구현하는 CI/CD 배포 입문

개발자_이훈규 2023. 3. 14. 14:12

리눅스를 다뤄보지 않은 개발자 && 자바를 다루는 개발자에게 딱 맞는 입문서가 될 것입니다.
리눅스에 대한 내용으로 책의 1/3이 구성되어 있고 AWS 내용 중간에도 컴퓨터 기본 개념에 대한 자세한 설명이 수록되어 있습니다.

 

리눅스를 다뤄보지 않은 개발자의 기준은 아래의 구분이 이해가 되는지, 안되는지로 파악할 수 있습니다.

$ mkdir test
$ cd test
$ touch test.txt
$ chown hklee:dev test.txt
$ cd ..
$ rm -rf test

그리고 책의 내용중에는 엘라스틱빈스톡에 대한 부분이 중점적으로 다루었기 때문에 엘라스틱빈스톡으로 jar파일을 분배하고 프로세스를 실행하는 실습을 해볼 수 있습니다.

 

그리고 이 책의 특장점은 무료 동영상 강의가 포함되어 있는 것입니다. 실습을 하기 전에 '무료'강의에 한하여 QR을 통해 동영상 강의를 보면서 따라서 AWS설정을 할 수 있습니다.
https://www.youtube.com/playlist?list=PL93mKxaRDidFjQjPAzi9UxCdo2gtR-fue

 

또다른 장점은 실습환경이 저자와 동일할 수 있도록 소스를 공유하고 있습니다. 실습을 하기전에 github에서 repository를 다운받아서 책과 동영상을 보면서 Java프로젝트를 AWS로 올릴 수 있습니다.
https://github.com/codingspecialist/Aws-Deploy-EasyupClass

 

이 책을 실습하기 가장 좋은 환경은 AWS의 프리티어가 남은 독자일 것입니다. 프리티어는 12개월 간 무료로 AWS를 사용할 수 있는 권한이라 부담없이 AWS를 다뤄볼 수 있습니다.
https://aws.amazon.com/ko/free/

 

이 책의 제목에 맞게 CI/CD 배포는 257p에 수록되어 있습니다. 배포 과정은 [코드 수정]->[github push]->[github action]->[AWS beanstalk로 분배] 로 이루어져있습니다. 이 과정의 자세한 설명은 270p부터 수록되어 있습니다.

 

하지만 리눅스의 경험이 많거나 AWS의 특정 부분이나 아키텍처를 고려하는 독자와는 맞지 않습니다.

Github Action 실습

CI/CD 중에 github의 Actions내용을 실습해봤습니다.
실습은 Repository를 새로 만들고 난 후에 actions를 yml로 정의하고 commit을 만들어서 push를 발생시킵니다.
그러고나면 정의된 actions에 따라 build가 실행되는 과정입니다.

1. github repository 생성

github에 새로운 repository를 추가합니다.

2. Github Actions 활성화

빈 Repository에 Actions을 정의합니다.
Actions의 종류는 많은데 그 중에 가장 기본이 되는 'Simple workflow'를 선택했습니다.

3. yml 생성

이름과 상관없이 yml 확장자를 갖은 파일이면 정의된대로 actions이 발생하면 실행이 됩니다.
자세한 내용은 아래 링크를 참조하면 좋습니다.
https://fe-developers.kakaoent.com/2022/220106-github-actions/

4. github로 commit push

Github Actions이 정의가 된 상태에서 push를 발생시키면 정의된 동작이 자동으로 실행이 됩니다.

$ github % git clone git@github.com:leehunkyu00/github_action_tutorial.git
'github_action_tutorial'에 복제합니다...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
오브젝트를 받는 중: 100% (5/5), 완료.
$ github % cd github_action_tutorial 
$ github_action_tutorial % echo 'hello world!' > README.md
$ github_action_tutorial % git add README.md 
$ github_action_tutorial % git commit -m 'add README.md file'
[main e38582c] add README.md file
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

$ github_action_tutorial % git push origin main
오브젝트 나열하는 중: 4, 완료.
오브젝트 개수 세는 중: 100% (4/4), 완료.
Delta compression using up to 8 threads
오브젝트 압축하는 중: 100% (2/2), 완료.
오브젝트 쓰는 중: 100% (3/3), 297 bytes | 297.00 KiB/s, 완료.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:leehunkyu00/github_action_tutorial.git
   de6f102..e38582c  main -> main

5. github actions 결과확인

commit push가 발생한 후에 github actions이 잘 동작한 것을 확인할 수 있습니다.

 

 

'앤써북'에서 도서를 무상 제공받아 작성하였습니다
https://cafe.naver.com/answerbook