1. EC2 내에서 사용할 Dockerfile, Docker compose 파일 만들기
Dockerfile-prod
FROM openjdk:17-jdk
COPY build/libs/*SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "/app.jar"]
compose-prod.yml
services:
api-server:
build:
context: .
dockerfile: ./Dockerfile-prod
ports:
- 8080:8080
depends_on:
cache-server:
condition: service_healthy
cache-server:
image: redis
ports:
- 6379:6379
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 5s
retries: 10
2. 로컬에서 구현한 내용을 Github에 푸시
$ git commit -m "{커밋 메시지}"
$ git push
3. EC2에서 git pull 받기
$ cd {프로젝트 경로}
$ git pull origin main
4. EC2에서 Docker 설치하기
$ sudo apt-get update && \
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
sudo apt-key fingerprint 0EBFCD88 && \
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
sudo apt-get update && \
sudo apt-get install -y docker-ce && \
sudo usermod -aG docker ubuntu && \
newgrp docker && \
sudo curl -L "https://github.com/docker/compose/releases/download/2.27.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker -v # Docker 버전 확인
$ docker compose version # Docker Compose 버전 확인
5. 기존에 실행되고 있는 Redis, Spring Boot 종료하기
# Redis 중지
$ sudo systemctl stop redis
$ sudo systemctl status redis # 잘 종료됐는 지 확인
# Spring Boot 종료
$ sudo lsof -i:8080 # 8080번 포트 실행되고 있는 프로세스 확인
$ kill {Spring Boot의 PID} # 프로세스 종료
$ sudo lsof -i:8080 # 잘 종료됐는 지 확인
6. Docker 컨테이너로 띄워보기
$ ./gradlew clean build -x test
$ docker compose -f compose-prod.yml up --build -d
$ docker ps # 잘 띄워졌는 지 확인
$ docker compose logs -f # 실시간 로그 확인하기

7. Postman으로 테스트

'DataBase > Redis' 카테고리의 다른 글
| [Redis] k6로 부하테스트 해보기 (0) | 2025.02.20 |
|---|---|
| [Redis] Spring Boot로 Redis 실행해보기 (0) | 2025.02.20 |
| [Redis] Cache Aside & Write Around 전략 (0) | 2025.02.20 |
| [Redis] Redis 기본 명령어와 네이밍 컨벤션 (0) | 2025.02.20 |
| [Redis] Redis(레디스)란 무엇인가? (0) | 2025.02.20 |