
#1에 이어 Gateway도 작성해보자. Gateway build.gradle ext { set('springCloudVersion', "2021.0.3") } dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-gateway' testImplementation 'org.springframework.boot:spring-boot-starter-test' //eureka implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' } dependencyManagement { imports { mavenBom "org.spring..

Spring Cloud Gateway와 Eureka를 활용하여 간단하게 API Gateway를 만들어보자. 전체적인 흐름은 위 그림과 같다. Spring Cloud Gateway가 클라이언트와 서버 사이에 라우팅을 해주는 미들웨어 역할을 하고 있고, Eureka는 서버(MicroService)들의 정보들을 가지고 있고 헬스체크를 해준다. 예시를 들어보자. 만약 사용자가 Order 서비스를 사용하고자 한다면 아래와 같은 순서로 흘러간다. 사용자가 Order 서버에 보낼 요청을 Gateway로 전달 Gateway는 Eureka로부터 Order 서버 정보 획득 Gateway가 Order 서버로 요청 이러한 구조를 가지면 다음과 같은 장점들을 가지게된다. 모든 요청은 Gateway를 거치기 때문에 인증과 로깅 ..

젠킨스 CI 설정하기 github의 main 브랜치에 변화가 생기면 자동으로 가져오는 CI를 구축하자. 우선 자신의 깃허브로 접속한 후, 프로필을 클릭해 Settings를 누른다. 그리고 하단에 있는 Developer settings를 클릭한다. Personal access tokens에 들어간 후 Generate new token을 클릭한다. 그리고 아래 사진과 같이 설정한 후 토큰을 발급 받는다. 발급된 토큰은 꼭 복사해서 잘 저장해두자. 그리고 깃허브 리포지토리의 Settings 눌러 webhook 탭을 클릭하고 Add webhook 버튼을 누른다. Payload URL에 젠킨스 서버 IP 또는 DNS를 적고 뒤에 github-webhook/을 추가로 적는다. 그리고 아래 그림과 같이 설정후 Upd..

간단하게 EC2와 Jenkins를 활용하여 CI/CD를 구축하고 테스트 해보자! 흐름은 아래와 같다. 1. github에 Merge&Push 2. main 브런치에 변동이 있으면 github가 webhook을 통해 젠킨스 호출, 호출된 젠킨스는 main 브랜치를 가져와 빌드 3. 빌드된 jar파일을 배포서버로 전송하고 배포 어플리케이션 작성 Springboot&Gradle 간단하게 컨트롤러만 작성해보자. @RestController public class Controller { @RequestMapping("/test") public String test() { return "Hello Jenkins!"; } } 그리고 application.properties에서 포트번호도 바꿔주자. server.por..

EC2 프리티어에 젠킨스를 설치하여 사용하면 서버가 멈추는 경우가 있다. 이는 EC2 프리티어 메모리 용량이 너무 작아 발생하는 현상이다. $ free -h 위 명령어로 메모리 용량을 확인해보자. 위 사진처럼 메모리가 1GB 인것을 볼 수 있다. Swap 공간을 활용하여 메모리를 늘려보자. Swap 메모리 할당 1. dd 명령으로 swap 메모리영역 할당 (4GB(128MB x 32)를 할당했다) $ sudo dd if=/dev/zero of=/swapfile bs=128M count=32 2. 스왑 파일의 읽기 및 쓰기 권한 업데이트 $ sudo chmod 600 /swapfile 3. Linux 스왑 영역 설정 $ sudo mkswap /swapfile 4. 스왑 공간에 스왑 파일을 추가하여 스왑 파..