티스토리 뷰

1. Github  Actions → AWS EC2

[장점]

- 설정이 간단하고 빠르게 구현할 수 있다.

[단점]

- EC2에서 코드를 직접 가져와 빌드하는 방식이므로,빌드 속도가 느려지고 네트워크 비용이 발생할 수 있다.

- EC2가 저사양일 경우, Docker 빌드 속도가 느려지고 네트워크 병목 현상이 발생할 수 있다.

- git pull을 EC2에서 실행해야 하므로, GitHub Actions가 EC2에 SSH로 접근해야 하는데, 보안 이슈가 발생할 수 있다.

- .env 파일을 직접 관리해야하며, Docker를 재시작하면 .env 파일이 유실 될 수 있다.

 

2. Github  Actions → Docker hub → AWS EC2

[장점]

- EC2에서 직접 Docker를 빌드 할 필요없이, Github Actions에서 미리 빌드 후 Docker Hub로 푸시하면 되기 때문에 EC2에서는 이미지를 pull하기만 하면 되므로 배포 속도가 더 빠르다.

- GithubAction이 EC2에 SSH로 직접 접근할 필요가  없어 보안적으로 더 안전하다.

[단점]

- Docker Hub의 Public repository를 사용할 경우 이미지가 누구에게나 공개되어 보안 문제가 발생할 수 있다.

- 무료 플랜에서 Docker Hub는 한 개의 private repository만 지원한다.

- 이미지 크기가 클 경우 다운로드 시간이 길어지고 배포 속도가 저하된다.

- Docker Hub에 직접 .env를 저장할 수 없으며, EC2에서 직접 관리해야 한다.

 

3. Github Actions → AWS ECR → AWS EC2

[장점]

- AWS 서비스와 연동이 용이하다.

- ECR은 AWS 네트워크 내부에서 동작하므로 EC2와 동일한 리전에 있을 경우 빠르게 이미지를 가져올 수 있다.

- AWS IAM 정책을 활용하여 ECR에  대한 접근 권한을 EC2에만 부여할 수 있다.

-Docker Hub처럼 공개될 위험이 없고, repository의 갯수 제한이 없다.

[단점] 

- (1~3 공통) 파일 변경시, 기존 컨테이너를 종료하고, 새 컨테이너를 띄우는 과정에서 일시적인 서비스 중단이 발생할 수 있다.

 

4. 무중단 배포

1) Rolling Update(점진적 배포)

- 기존 컨테이너를 유지하면서 새로운 컨테이너를 실행한 후, 정상적으로 실행되면 기존 컨테이너를 종료

docker-compose up -d --remove-orphans

 

2) Blue-Green 배포

- 현재 실행중인 컨테이너(Blue)와 새로운 컨테이너(Green)를 동시에 유지,

- Green 컨테이너가 완전히 실행되면, 트래픽을 Green으로 전환 후 Blue 컨테이너를 종료

- Nginx 또는 AWS ALB를 사용

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함