[AWS/배포] Nginx + GitHub Actions로 Spring Boot & FastAPI CI/CD 자동 배포하기 (4) - 인스턴스 연결 / GithubActions 테스트
2025. 8. 7. 01:44ㆍCS
이제 모든 레포지토리의 설정이 완료되었으므로,
EC2 인스턴스에 연결하여 GitHub Actions가 정상적으로 작동하는지 확인하고,
배포된 서버가 실제로 잘 동작하는지 테스트해보겠습니다.
EC2 서버에서 모든 명령어가 잘 작동할 때 GithubActions 화면

Deploy on EC2
워크 플로우가 잘 동작한다면 아래처럼
AI / BE / Nginx 컨테이너가 각각 Created Started 되었다는 로그를 확인할 수 있습니다.

3개의 서버가 모두 잘 연결이 된 상태라면 docker ps 를 실행했을 때 아래처럼 뜨는 것을 확인할 수 있습니다.

EC2 서버에서 실행할 명령어
1. EC2 인스턴스 접속
ssh -i [YOUR_PEM_FILE.pem] ubuntu@[EC2_PUBLIC_IP]
# 예시 ssh -i ~/Downloads/evertale-key.pem ubuntu@13.125.xxx.xxx
2. Git 설치
sudo apt update
sudo apt install git -y
3. REPO-infra 레포 클론
- BE/AI 는 도커이미지를 사용하기 때문에 REPO-infra만 EC2 서버에 클론해주면 됩니다.
- REPO-infra를 clone하면 해당 레포의 workflows를 통해서 생성한 .env 파일을 포함한 docker-compose.yml, nginx.conf가 모두 생성됨을 확인할 수 있습니다.
cd ~
git clone https://github.com/[YOUR_ID]/REPO-infra.git
cd REPO-infra
4. Docker 설치
- AMI를 사용했기 때문에 Docker는 기본적으로 설치되어있겠지만, 설치되어있지 않다면 Docker를 설치합니다.
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
그다음:
sudo usermod -aG docker $USER
newgrp docker
5. Docker Compose 설치
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
설치 확인:
docker-compose --version
6. docker-compose.yml로 전체 서비스 실행
cd ~/REPO-infra
docker-compose up -d
7. 서비스 확인
docker ps
- evertale-be → 8080
- evertale-ai → 8000
- nginx → 80

Swagger UI 페이지
Swagger UI 페이지에 접속해봄으로써, 서버가 정상적으로 배포되고 외부 요청에 응답하는지 최종적으로 확인합니다
- EC2의 퍼블릭 IP:8080/api/swagger-ui/index.html# 을 입력하면 SpringBoot의 Swagger UI를 확인할 수 있습니다.

- FastAPI UI는 퍼블릭 DNS를 사용해서 열어보았습니다. 이 경우에는 포트번호를 따로 기재할 필요 없이
- 퍼블릭DNS/ai/docs를 입력하면 확인할 수 있습니다. (물론, 퍼플릭 IP를 통해서도 확인이 가능합니다.)

[AWS 배포 가이드] Nginx + GitHub Actions로 Spring Boot & FastAPI CI/CD 자동 배포하기 (1) - 인스턴스 생성
AI 프로젝트를 진행하다 보면, Spring Boot로 구현한 백엔드 서버와 FastAPI로 구현한 AI 서버를 동시에 배포해야 하는 상황이 자주 발생합니다.저희 프로젝트에서는 BE(Backend)와 AI 서버를 별도의 GitHub
hhongyeahh.tistory.com