deploy

· AWS
다들 아시고 계시겠지만 GitHub Actions가 무엇인지, Amazon ECS Fargate가 무엇인지 간단히 정리해보았습니다. GitHub Actions란? GitHub Actions는 GitHub에서 호스팅하는 CI/CD 툴입니다. 개발자가 코드 변경을 자동으로 빌드, 테스트, 배포하는 프로세스를 자동화하기 위한 워크플로우 생성할 수 있습니다. 이는 프로젝트에서 이슈를 해결하고 배포를 관리하는 데 유용합니다. GitHub Actions는 저장소에 이벤트가 발생할 때 트리거가 됩니다. 예를 들어, 코드 푸시, 풀 리퀘스트, 이슈 등록, 릴리스 발행 등의 이벤트가 트리거가 될 수 있습니다. 이러한 이벤트에 대한 트리거를 설정하고, 트리거를 받으면 실행되는 작업을 작성할 수 있습니다. GitHub Ac..
업무 상 Docker와 Nginx를 통해 Blue Green 무중단 배포를 구축하려고 한다. OS는 Centos 7.x 기준이고 Application은 Spring Boot 기준으로 정리하였다. 현재 서버는 NCP에 Server를 사용하고 있고 Container Registry에 이미지를 저장해 사용하고 있다. 1. Centos에 Nginx 설치 먼저 yum 업데이트한다. $ sudo yum update 업데이트가 다 되었으면 yum 저장소에는 nginx가 없기 때문에 외부 저장소를 추가해서 설치해야 한다. $ sudo vi /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basea..
· ETC
이전 글에서는 Jenkins을 이용해 jar파일 자동화 배포를 해보았다. 이번에는 소스코드를 도커 이미지 화 후 서버에서 해당 이미지를 받아 구동시키는 파이프라인을 구축하려고 한다. Blue Ocean 플러그인을 사용해 빌드가 되는 상태를 시각화하고 파이프라인을 쉽게 만들어보겠다. 이전 글과 마찬가지로 Jenkins 서버는 Docker로 로컬에서 구동했고, Jenkins 서버 구축 방법은 이전 글을 참고 바란다. 배포할 서버는 Naver Cloud Platform Server를 사용했고, 컨테이너 저장소는 Naver Container Registry를 사용했으므로 AWS EC2나 ECR을 사용하는 경우 설정법이 조금 다를 수 있다. 대략 진행되는 단계를 그림으로 나타내면 아래와 같다. 구축 예제 1. J..
· ETC
보통 Blue/Green 자동화 배포 파이프라인을 구축할 때 Jenkins를 많이 이용한다. Aws에서 제공하는 Code Pipeline을 사용해 구축할 수 도 있지만 배포할 때마다 비용이 발생하므로, 자주 배포가 일어난다면 서버 비용만 나오는 Jenkins를 사용하는 것이 이득일 수 있다. 아래 예제는 Bitbucket Repository 안에 있는 소스를 배포해야 하므로 Bitbucket과 연동하는 법으로 정리하였고 젠킨스 서버는 Local에서 Docker 컨테이너를 띄어 진행했다. 간단히 그림으로 표현하자만 아래와 같다. 1. 젠킨스 이미지 다운로드 및 실행 아래 명령어로 젠킨스 도커 이미지를 다운로드해 컨테이너를 실행한다. docker run -itd --name jenkins -p 8090:80..
컨트롤러에 의한 파드 실행 kubectl run에 옵션을 지정하면 파드를 디플로이먼트 컨트롤러의 제어하에 실행하는하려면 옵션 --restart=Always을 주면된다.(기본값 Always) 파드만 독립적으로 실행하고 싶을 때는 --restart=Never 옵션을 주면된다. 파드가 정지되었을 때 재기동 시킬 필요가 있는지에 따라 옵션을 정하면 되겠다. 디플로이먼트 컨트롤러에 의해 파드가 기동될때는 백그라운드로 실행되기 때문에 -it 옵션은 무시된다. kubectl run 서브 커맨드의 기능이 지나치게 방대해지는 것을 막기 위해 파드 자체를 만들때만 run을 사용하는 것이 추천되고 있다. 디플로이먼트를 먼들 때는 kubectl create deployment --image hello-world hello-w..
컨트롤러란? 컨트롤러는 파드를 제어한다. 파드에게 부여할 워크로드의 타입, 즉 처리에 따라서 적절한 컨트롤러를 선택해야 한다. 워크로드 타입 프런트엔드 처리 스마트폰, IoT기기, 컴퓨터 등의 클라이언트로부터 요청을 직접 받아들이는 워크로드를 총칭한다. 이 타입의 워크로드는 대량의 클라이언트 요청에 대해 짧은 시간에 응답을 반환하는 것이 중요하다. 실시간으로 반응해야 하고 사용자들이 답답합을 느껴선 안된다. IoT 기기로부터의 요청은 기기로 부터 끈임없이 만들어지는 데이터를 받아들여서 처리해야 한다. 이러한 워크로드 특성에 대응하기 위해서는 요청에 대응하는 처리를 복수의 파드에 분담하도록 설계해야 한다. 또한, 24시간 무정지로 서비스를 제공하면서도 빠르게 신기능을 배포할 수 있어야 한다. 백엔드 처리 ..
beekei
'deploy' 태그의 글 목록