[Nginx] Blue / Green 배포 전략으로 Spring 프로젝트 EC2 에 무중단 배포하기
·
개발 ━━━━━/Dev
무중단 배포 현재 연습하고 있는 프로젝트는 사진과 같은 단순 배포 방식으로 프로젝트가 배포 되고 있어 업데이트 사항이 있을 때 서버가 항상 종료가 되었다가 새로 시작하는 방식으로 운영되고 있었다. 종료가 된 상태에선 서비스 이용을 못할 뿐더러 새롭게 배포된 프로젝트에 문제가 있을시 수습되기 전까진 서비스 이용을 또 못하고 있는 상황이 연출되어 무중단 배포를 적용시켜보기로 했다. 무중단 배포 전략 1. Rolling Update (롤링 배포) 롤링 배포는 사용 중인 인스턴스 내에서 새 버전의 프로젝트를 점진적으로 교체하는 방식 서비스 중인 인스턴스 하나를 로드밸런서에 라우팅하지 않도록 한 뒤, 새 버전을 적용하여 라우팅하도록 한다. 새 버전을 배포할 때 인스턴스가 감소를 하므로 트래픽이 몰려 과부하가 발생..
[Docker] Docker Volume 을 이용한 MySQL 데이터 백업
·
개발 ━━━━━/Dev
Ubuntu 에서 Docker 로 띄워놓은 MySQL 컨테이너의 데이터를 Docker Volume 을 만들어 관리하려 한다. docker inspect mysql_컨테이너_ID 로 해당 컨테이너에 마운트 되어 있는 볼륨을 찾는다. "Mounts" 부분에서 찾을 수 있다. docker volume create 새로운_volume_이름 으로 새로운 볼륨을 생성해주고 docker run --rm -v 백업할_volume_이름:/from -v 새로_만든_volume_이름:/to alpine ash -c "cd /from && cp -av . /to" • 백업할_볼륨_이름을 /from 경로에 마운트합니다. • 새로_만든_볼륨_이름을 /to 경로에 마운트합니다. • alpine 컨테이너를 시작하고, /from에서 ..
[Redis] NOAUTH Authentication required
·
개발 ━━━━━/Troubleshoot
문제 상황 Docker-Compose 로 Spring + MySQL + Redis 컨테이너를 실행시키는데 Spring 컨테이너 로그를 살펴보니 NOAUTH Authentication required 이런 오류가 뜬다. 로컬에서 Redis 를 돌릴 땐 비밀번호가 필요 없었던 것 같아 프로젝트에서 삭제를 했더니 생긴 오류인 것 같다. 해결 우선 spring 프로젝트에서 비밀번호 부분을 다시 활성화시키고 Redis 컨테이너가 띄워진 상태로 // redis 컨테이너 접속 docker exec -it redis_컨테이너_ID bash // redis-cli 접속 redis-cli // Redis 비밀번호 확인 config get requirepass // Redis 비밀번호 설정 config set require..
[Docker] Spring + MySQL + AWS EC2 + Github Actions + Docker 를 활용한 프로젝트 진행하면서 발생했던 각종 오류들
·
개발 ━━━━━/Troubleshoot
글을 시작하기 전... 결론적으로 이 글은 Spring 프로젝트를 Dockerfile 로 빌드한 후 Github Actions 로 Docker Hub 에 올리고 EC2 환경에서 각종 컨테이너들을 Docker-Compose 로 관리하는 것을 목표로 이것 저것 해보면서 발생했던 모든 문제들을 다루는 글이라 내용이 다소 난잡하고 중구난방일 수 있다. 프로젝트 환경 진행했던 프로젝트가 있는데 성공적으로 끝마치고 나니 프로젝트 때 맡은 부분을 구현하느라 미처 해보지 못했던 서버 구성을 해보고 싶었고 이것 저것 실험해보고 싶은게 생겨 개인 서버를 구축해 프로젝트를 그대로 실행시켜 보기로 했다. 구 프로젝트는 1. Github Actions 로 jar 파일을 직접 배포하여 실행 2. MySQL 은 RDS 를 구성하여..
[Raspberry Pi] /usr/local/bin/docker-compose: line 1: Not: command not found
·
개발 ━━━━━/Troubleshoot
저번에 Raspberry Pi 에 docker-compose 를 설치하려고 했지만 arm 기반인 pi 에는 설치가 쉽지 않았다. https://gukjan9.tistory.com/118 [Raspberry Pi] Docker-Compose 설치시 Building wheel for crytography (PEP 517) ... error Raspberry pi 3b+ 에 Ubuntu 를 올려서 그 위에 Docker-Compose 를 설치하는 과정에서 마주한 오류... 처음엔 EC2 에 설치하듯이 설치해봤지만 sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compos gukjan9.tistory.com 이에 대한 ..
[Ubuntu] Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: read udp 127.0.0.1:37452->127.0.0.53:53: i/o timeout
·
개발 ━━━━━/Troubleshoot
문제 상황 docker-compose up 으로 이미지를 pull 받으려는데 같은 에러가 뜨면서 pull 에 계속 실패한다. 해결 https://forums.docker.com/t/ubuntu-22-04-error-response-from-daemon-get-https-registry-1-docker-io-v2-dial-tcp-lookup-registry-1-docker-io-on-127-0-0-53-read-udp-127-0-0-1-48086-127-0-0-53-read-connection-refused/138376 Ubuntu 22.04 Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registr..