AI VIDEO BRIEFING
AWS CI/CD 파이프라인 직접 구축 가이드: VPC·Forgejo·Jenkins·Nginx로 자동 배포
코드를 푸시하면 1분 만에 프로덕션에 배포되는 CI/CD 파이프라인을 AWS에서 직접, 무료로 자체 호스팅하는 방법. VPC, EC2, Forgejo, Jenkins, Nginx, 웹훅, SSH 브리지로 이어지는 전체 흐름을 정리했다.

핵심 메시지
쉽게 이해하기
영상은 도발적인 질문으로 시작한다. 가장 빠르게 출시하는 회사의 개발자는 파일을 저장해 푸시하면 1분 뒤 코드가 프로덕션에 살아 있다. 배포 버튼을 누르거나 서버에 접속하거나 파일을 손으로 복사하는 일은 전혀 없다. 이 전 과정을 스스로 굴러가게 하는 것이 CI/CD 파이프라인이며, 대형 플랫폼만의 마법이 아니라 AWS에서 직접, 자체 호스팅으로, 무료로 똑같이 만들 수 있다는 것이 핵심 메시지다.
기반 구조는 하나의 AWS 리전 안에 자리한 VPC, 즉 클라우드 속 사설 네트워크다. 인터넷 게이트웨이가 외부로 나가는 문 역할을 한다. 그 안에 우분투를 올린 EC2 인스턴스를 'CI/CD 서버'로 두는데, 이것이 파이프라인 전체의 관제실이다. 모든 도구가 컨테이너로 돌기 때문에 여기에는 도커를 설치한다. 인터넷에 열린 서버인 만큼 보안 그룹으로 감싸 포트 80(웹 인터페이스), 22(SSH 접속), 2222(SSH를 통한 깃) 세 개만 열고 나머지는 모두 막는다.
CI/CD 서버 안에서는 세 개의 컨테이너가 돈다. 첫째 Forgejo는 자신만의 사설 깃허브로 코드를 호스팅하면서, 동시에 빌드한 도커 이미지를 저장하는 컨테이너 레지스트리 역할도 한다. 둘째 Jenkins는 변경을 감시하다 파이프라인을 실행하는 자동화의 두뇌다. 셋째 Nginx는 앞단의 리버스 프록시로, 하나의 주소에서 Jenkins 경로는 Jenkins로, 나머지는 Forgejo로 라우팅한다.
흐름은 이렇게 시작된다. 개발자가 코드를 커밋해 SSH로 Forgejo에 푸시하면, 그 순간 Forgejo가 비밀 토큰을 담은 웹훅(작은 HTTP 신호)을 Jenkins로 쏜다. Jenkins는 바로 그 토큰을 기다리고 있다가 일치하면 아무도 빌드를 누르지 않았는데도 파이프라인을 시작한다. Jenkins는 저장소 안의 Jenkinsfile이라는 '레시피'를 읽고, 1단계로 앱의 도커 이미지를 빌드하고, 2단계로 그 이미지를 Forgejo 안의 레지스트리에 버전별로 저장한다.
3단계는 배포다. 같은 VPC 안 두 번째 EC2인 '웹 서버'에서는 도커가 앱을 포트 80으로 서비스한다. 이 서버의 보안 그룹은 포트 80을 외부에 열고 22를 SSH용으로 둔다. 미리 CI/CD 서버의 SSH 키를 웹 서버에 넣어 비밀번호 없는 다리를 만들어 두었기에, Jenkins는 웹 서버로 SSH 접속해 새 이미지를 레지스트리에서 가져오게 하고 docker compose up으로 스택을 띄운다. 컨테이너가 새 버전으로 교체되면 앱이 곧바로 갱신된다. 푸시 한 번에 웹훅이 터지고, 빌드·저장·배포·재시작까지 모두 1분 안에 자동으로 끝난다. 실습을 위해 Forgejo와 Jenkins 각각의 미니 랩과, 전체를 직접 엮어 보는 캡스톤 무료 랩이 제공된다.
주요 인사이트
- CI/CD의 본질은 '사람이 배포 버튼을 누르지 않는 것'이며, 웹훅과 토큰 일치가 그 자동 트리거의 핵심이다.
- Forgejo 하나가 깃 서버와 컨테이너 레지스트리를 겸하면서, 외부 SaaS 없이도 코드와 이미지를 모두 자체 호스팅할 수 있게 한다.
- 보안 그룹으로 80·22·2222 세 포트만 열고 나머지를 막는 최소 개방 원칙이, 인터넷에 노출된 서버를 지키는 기본 방어선이다.
- 두 EC2 사이의 미리 심어 둔 SSH 키(비밀번호 없는 다리)가 Jenkins의 자동 배포를 가능하게 하는 연결 고리다.
- 구조를 보는 것과 직접 손으로 엮어 보는 것은 다르며, 미니 랩과 캡스톤으로 이어지는 단계적 실습이 이해를 굳히는 방법으로 제시된다.
자주 묻는 질문
이 파이프라인을 만드는 데 비용이 드나요?
아닙니다. AWS에서 자체 호스팅으로 무료로 구축할 수 있으며, 직접 따라 할 수 있는 무료 실습 랩도 제공됩니다.
어떤 도구들이 사용되나요?
VPC와 두 대의 EC2 위에서 Forgejo(깃 서버 겸 레지스트리), Jenkins(자동화 엔진), Nginx(리버스 프록시), 그리고 도커를 사용합니다.
푸시 이후 배포는 어떻게 자동으로 시작되나요?
Forgejo가 비밀 토큰을 담은 웹훅을 Jenkins로 보내고, Jenkins가 그 토큰을 확인하면 Jenkinsfile에 따라 빌드·저장·배포 파이프라인이 스스로 시작됩니다.
배포는 얼마나 빨리 끝나나요?
커밋을 푸시하면 웹훅 발사부터 이미지 빌드·저장·웹 서버 배포·앱 재시작까지 모든 단계가 1분 안에 자동으로 완료됩니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗