배포 파이프라인
┌──────────────────────────────────────────────────────────────────────────────────────────────┐
│ GitHub Actions │
│ ┌────────────────────┐ ┌────────────────────────────┐ │
│ │ *build* │ │ *dockerize 단계* │ │
│ │ Gradle 빌드 & │ ─▶ │ Docker 이미지 빌드 및 │ │
│ │ JAR 생성 및 업로드) │ │ Docker Hub 푸시 │ │
│ └────────────────────┘ └────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────────────────────────────┐
│ EC2 │
│ │
│ ┌────────────────────────────┐ ┌────────────────────────────────────┐ │
│ │ deploy 단계 (SSH 접속) │ ─▶ │ Docker pull & 컨테이너 재기동 │ │
│ │ (code-review-deploy.sh) │ │ (Docker Hub에서 최신 이미지 수신) │ │
│ └────────────────────────────┘ └────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────────────────────────────┘EC2 인스턴스 생성
Quick Start에 있는 Amazon Linux AMI를 선택한다. 프리 티어 사용 가능 라벨이 붙은 인스턴스를 선택해준다.


대부분 기본 설정을 그대로 사용하면 되는데, 어려운 경우 다음과 같이 설정하면 된다.

EC2를 생성하고, 바로 접근이 불가능하기 때문에, 10분 정도 쉬고 오면 안정적으로 사용할 수 있다.
EC2 설정
배포에 필요한 Docker, JDK를 설치하고, Github Actions에 필요한 pem 키를 발급 받고, 배포 스크립트를 만든다.
Docker 설치
Mac을 사용하는 경우, 링크(ryusuz님 블로그)를 참고하여, ssh를 이용하여 EC2에 접근할 수 있도록 미리 설정해두면 편하다.
EC2 혹은 ssh를 사용하여, 인스턴스에 접속하여, 다음 명령어를 입력한다.
${usename}의 경우 EC2 유저의 이름을 입력하면 된다. 따로 설정하지 않은 경우 대부분 ec2-user를 사용할 것이다.
# 1. docker 설치
sudo yum update -y
sudo yum install docker -y
# 2. docker 데몬 실행
sudo service docker start
# 3. username를 docker 그룹에 추가 (재접속 필요)
# 예) sudo usermod -aG docker ec2-user
sudo usermod -aG docker ${usename}
# 4. Docker 설치 확인
docker versionJDK 설치
포스팅에서는 21 버전을 설치했지만, 본인이 원하는 버전을 받아서 사용하면 된다.
21 부분에 원하는 버전을 입력하면 해당 버전으로 설치될 것이다.
sudo yum install java-21-amazon-corretto-devel이후, bashrc에 JAVA_HOME와 PATH를 등록해준다.
# JAVA_HOME 추가
echo 'export JAVA_HOME=/usr/lib/jvm/java-21-amazon-corretto.x86_64' >> ~/.bashrc
# PATH 지정
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
# bashrc 적용
source ~/.bashrc마지막으로, 정상적으로 설치가 되었는지 확인한다.
echo $JAVA_HOME
# → /usr/lib/jvm/java-21-amazon-corretto.x86_64
javac -version
# → javac 21.0.7pem 키 발급
keygen을 사용하여 github-actions 전용 pem 키를 발급 받는다.
ssh-keygen -t rsa -b 4096 -C "github-actions" -f ~/.ssh/github-actions -N ""발급 받은 SSH 키를 publick key와 private key로 복사한다.
cat ~/.ssh/github-actions.pub >> ~/.ssh/authorized_keys'DevOps > AWS' 카테고리의 다른 글
| [AWS] 프리티어 - Spring 프로젝트 배포 (2) (0) | 2025.10.29 |
|---|---|
| [AWS] - Spring Boot 프로젝트 배포(2) (0) | 2023.09.11 |
| [AWS] - Spring Boot 프로젝트 배포(1) (0) | 2023.09.11 |