Github Actions CI/CD를 사용하여 SpringBoot 어플리케이션을 Elastic Beanstalk에 배치하는 방법


위의 그림은 본문의 개술을 제시하였다.
Java와 Maven을 사용하여 스프링 부트 응용 프로그램을 구축하고 AWS Elastic Beanstalk에 배치할 것입니다.GitHub 작업으로 응용 프로그램을 AWS에 수동으로 배치하는 것이 아니라 CI/CD 파이프라인을 만들 것입니다.
이전 글을 읽으셨다면, EC2에 배치된 실례 SaaS application 를 알고 계실 것입니다. 본 논문의 같은 코드를 다시 사용하지만, 스프링 boot 프로그램을 사용해서 이 절차를 시도할 수 있습니다.
실현되기 전에 어떻게 일을 했는지 다시 생각해 봅시다.(본 문서에서는 GitHub 작업의 작동 방식에 대해 설명하지 않음)

구현
첫 번째 단계: Spring 시작 응용 프로그램을 만들거나 다운로드합니다.
토마토캣이 실행하는 기본 포트가 8080인 것을 알고 있습니다. 바로springboot 프로그램에 접근하는 포트입니다.등록표를 사용하거나 로컬에서 여러spring boot 프로그램을 실행하기 시작할 때, 프로그램 속성이나yml 파일에 서버 포트를 명확하게 정의합니다.코드를 AWS beanstalk에 배치할 때 비슷한 작업을 수행해야 합니다.AWS의 Nginx는 포트 80에서 실행되며 기본적으로 내부는 포트 5000을 가리킵니다.따라서 Google 응용 프로그램에서 서버 포트가 5000이라는 것을 명확히 언급할 것입니다.

2단계: Elastic Beanstalk에 새 응용 프로그램 만들기


AWS 계정을 만들지 않았다면 관리자 사용자가 아닌 IAM 사용자를 만드는 것을 권장합니다


계정을 만든 후 다음 설정으로 새 프로그램을 만듭니다




프로그램 만들기 버튼을 클릭


프로그램을 설정하는 데 몇 분 걸려요



가 완성되면 아래 페이지를 볼 수 있습니다



예시 프로그램이 AWS에서 시작되었습니다. 이 페이지의 단점을 복사할 수 있습니다. 왜냐하면 이 단점을 사용해서 접근할 수 있기 때문입니다.


3단계: CI/CD 구현


지난 글에서 우리는 기본 개념과 모든 키워드의 의미를 이해했다.이제 그 중 일부를 사용하자


GitHub 저장소에서.GitHub/workflows 폴더 아래에yml 파일을 만듭니다.우리는 이미 우리의yml 파일을 명명했다 — 배치하다.하지만 당신은 다른 적당한 이름을 선택할 수 있습니다





여기서 두 가지 업무를 정의했습니다. 하나는 구축이고, 다른 하나는jar


구축 중인 경로를 "target/.jar"로 바꾸고 패키지 필드의 이름을 바꾸십시오


배치 이벤트의 프로그램 이름과 환경 이름은 빈스토크 프로그램과 환경에 제공하는 이름과 일치해야 합니다


AWS 접근 키와 비밀번호는 개인 정보 아래의 AWS 포털에서 - >안전 증명서 - >CLI, SDK 및API 액세스 - >액세스 키 만들기


이 값을 GitHub 저장소의'설정'- >에 저장합니다.비밀


변경이 완료되면 파일을 제출합니다.이렇게 하면 워크플로우가 트리거되므로 작업 탭에서 상태를 확인할 수 있습니다



현재 "autocluck"코드 라이브러리를 사용하고 있다면, EC2 실례에 MongoDB를 설정해야 합니다. 그러나 DB 의존 관계가 없는 간단한 프로그램을 사용하고 있다면 다음 단계를 건너뛰십시오


단계 4: EC2에서 Mongo DB 설정(옵션)


"autocluck"저장소를 사용하는 사람에게는 EC2에 새로운 실례를 만들고 Mongo DB를 설치해야 합니다.my previous article에서 언급한 절차에 따라 설정을 완성합니다


이(가) 완료되면 EC2 인스턴스의 공용 IP를 확인하고 응용 프로그램의 "DatabaseConfig"java 클래스에서 연결 문자열을 업데이트합니다



final ConnectionString connectionString = new ConnectionString("mongodb://xx.xxx.xx.xxx:27017/test");

파일 제출


단계 5: 응용 프로그램 테스트


Health check API를 클릭하여 애플리케이션을 테스트합니다



curl --location --request GET '<beanstalk -endpoint>:80/api/tweet/health' \

--header 'Content-Type: application/json' \

--data-raw '{}'

응답




200 좋아요




결론


스프링 boot 응용 프로그램의 배치 과정을 방금 자동화했습니다.Github 작업이 있으면 테스트를 실행하기 위해 더 많은 작업 흐름을 추가할 수 있습니다. 그러면 손상된 코드를 생산 환경에 배치하지 않고 코드 덮어쓰기 도구를 추가하여 코드 표준을 유지할 수 있습니다.여러 사용자와 협력하여 제품을 신속하게 시장에 내놓는 것도 쉽다



좋은 웹페이지 즐겨찾기