1. Dockerfile 만들기
FROM openjdk:17-jdk
COPY build/libs/*SNAPSHOT.jar app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
2. compose.yml 만들기
services:
api-server:
build: .
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
3. application.yml 수정
# local 환경
spring:
profiles:
default: local
datasource:
url: jdbc:mysql://host.docker.internal:3306/mydb
username: root
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
ddl-auto: update
show-sql: true
data:
redis:
host: cache-server
port: 6379
logging:
level:
org.springframework.cache: trace
---
# prod 환경
spring:
config:
activate:
on-profile: prod
datasource:
url: jdbc:mysql://instagram-db.coseefawhrzc.ap-northeast-2.rds.amazonaws.com:3306/mydb
username: admin
password: password
4. Docker 컨테이너로 띄워보기
$ ./gradlew clean build -x test
$ docker compose up --build -d
$ docker ps # 잘 띄워졌는 지 확인
$ docker compose logs -f # 실시간 로그 확인하기
5. Postman으로 테스트해보기
AWS EC2에서 Docker Compose를 활용해 Redis, Spring Boot 띄워보기
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에 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. Docker 컨테이너로 띄워보기
$ ./gradlew clean build -x test
$ docker compose -f compose-prod.yml up --build -d
$ docker ps # 잘 띄워졌는 지 확인
$ docker compose logs -f # 실시간 로그 확인하기
6. Postman으로 테스트해보기
'개발이 좋아서 > Redis가 좋아서' 카테고리의 다른 글
| AWS ElasticCache 활용하기 (0) | 2025.01.31 |
|---|---|
| 부하 테스트를 통해 Redis 적용 전 후 성능 비교하기 (1) | 2025.01.31 |
| AWS EC2에서 Redis 활용하기 (0) | 2025.01.31 |
| 로컬 환경에서 Spring Boot + Redis로 구현하기 (0) | 2025.01.31 |
| Redis 캐싱 전략 (0) | 2025.01.28 |