
실습과정은 좋은 글이있어서 인용하기로 하겠습니다. 이분은 자체적으로 Github Actions 를 활용해 Spring 자동 빌드를 완성하였고, 그 글을 기반으로 충분히 읽고 이해하여 실습하였습니다.
(1)
https://rnclf1005.tistory.com/entry/ASAC04Docker-Github-Actions%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-Spring-%EC%9E%90%EB%8F%99-%EB%B9%8C%EB%93%9C-Docker-Image-pushCI-1
(2)
https://rnclf1005.tistory.com/entry/ASAC04Docker-Github-Actions%EC%9D%84-%ED%99%9C%EC%9A%A9%ED%95%9C-Spring-%EC%9E%90%EB%8F%99-%EB%B0%B0%ED%8F%AC-Docker-Image-runCD-2
수동 실습 : Github Action 으로 CI + 개발자가 직접 CD을 하면서 느낀점은,
매번 배포할때마다 Github Action 이 빌드마치고 나의 Docker Hub 에 Docker 이미지를 Push 한 뒤 개발자가 EC2 에 직접 접속하여 수동으로 해당 이미지를 Pull 받아 Run 하기에는 너무 귀찮고, 번거롭습니다.
그래서 Github Action 이 빌드 후 나의 Docker Hub 에 Push 한 뒤에 Github Action 이 개발자 대신 EC2 에 접속하여 자동으로 해당 이미지를 Pull 받아 Run 하도록 하는것이 제일 수월하고 편할것입니다. 따라서 이번에는
자동 실습 : Github Action 으로 CI + CD 모두 자동 처리을 해보면서 만나게된 에러들을 저의 깃허브를통해 살펴볼까합니다.
언제나 그렇듯 에러는 개발자의 영원한 숙제가 아닐까싶습니다. 😄
에러메세지 보겠습니다.
# (1) 프로그램 빌드 (Java 빌드) 3) Java 빌드
- name: Spring Boot Build
run: ./gradlew clean build

Github Action의 Repository secrets에서 AWS_SECRET_ACCESS_KEY 를 제대로 설정하지 않아서 발생한 오류이다. 올바른 값을 넣고 error을 해결하였다.

서버에서 스프링이 필요로하는 unbescape라이브러리를 maven서버로 부터 다운로드 받던중 503 Service Unavailable 발생. 우리의 문제가 아니라 외부 서버에 문제로 판단 됩니다.

AWS IAM의 엑세스키 또는 비밀 엑세스키의 secrets가 제대로 설정되지 않아 생긴 오류이다. 변수를 제대로 설정하여 해결하였으며, 키와 같이 사소한것에서 잘못되면 꽤 많은 시간을 소모한단걸 깨달았다.
다음부터 주의할것

Github Action 에서 EC2 SSH 접속하기 위해 ID/PW 를 사용하는데, ID/PW 가 잘못설정되어 접속이 끊긴 오류로 판단된다. 혹은 포트가 막혀있거나(SK 공유기로 인해) 아이피 설정을 잘못했거나 해당 아이피에서 나를 막은 경우로 판단된다.