반응형
배포 환경의 인프라를 구성했으니 AWS EC2에서 Docker Compose로 Redis + Spring Boot를 한 번에 띄워봐야하지 않겠는가!
1. Dockerfile 만들기
EC2 내에서 사용할 Dockerfile을 생성한다.
로컬 환경에서 사용할 파일과 배포 환경에서 사용할 파일을 구분하기 위해 이번엔 Dockerfile-prod로 생성하자.
FROM openjdk:17-jdk
COPY build/libs/*SNAPSHOT.jar app.jar
# 배포 환경 profiles를 지정해줘야 하기 때문에 명령어가 추가되었다
ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "/app.jar"]
2. compose.yml 파일 만들기
compose.yml 파일도 로컬 환경과 배포 환경을 구분하기 위해 compose-prod.yml로 생성하자.
services:
api-server:
build:
# Dockerfile이 위치한 경로 특정
context: .
# Dockerfile을 임의로 지정하였기 때문에 파일명을 명시
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
3. Github Repository에 Push
프로젝트 내 변경 사항을 Github Repository에 올려야 EC2에서 내려 받을 수 있기 때문에 Repository에 변경 사항을 Push 한다.
4. EC2에서 Git Pull 받기
push한 설정 파일들을 EC2에 내려 받아 적용해야 하기 때문에 인스턴스에 접속해서 변경 사항을 Pull 받는다.
5. EC2에 Docker 설치
EC2에서 Docker를 실행시켜야 하기 때문에 Docker 설치를 진행한다.
Docker 설치
# 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 및 Docker compose 설치 확인
# Docker 버전 확인 명령어
docker -v
# Docker compose 버전 확인 명령어
docker compose version
6. 기존에 실행되고 있는 Redis 종료
# EC2에서 Redis 중지하는 명령어
sudo systemctl stop redis
# EC2에서 Redis 상태 확인하는 명령어
sudo systemctl status redis
7. Docker 컨테이너로 띄워보자!
Spring Boot 다시 빌드
# 테스트 생략하고 Spring Boot 빌드하는 명령어
./gradlew clean build -x test
Docker 컨테이너로 띄우기
# 배포 환경 파일을 명시해서 Docker 컨테이너로 띄우는 명령어
docker compose -f compose-prod.yml --build -d
잘 떴을까?
8. 마지막으로 API 확인해야지!
이것도 다행이 정상이군 😆
Reference.
반응형
'Redis' 카테고리의 다른 글
[Redis] AWS ElasticCache를 활용하자! (2) (2) | 2024.10.26 |
---|---|
[Redis] AWS ElasticCache를 활용하자! (1) (1) | 2024.10.26 |
[Redis] Docker Compose로 Redis + Spring Boot 띄우기 (로컬) (0) | 2024.10.26 |
[Redis] Redis 적용 전,후 부하 테스트도 진행해볼까? (2) | 2024.10.25 |
[Redis] AWS EC2에서 Redis를 활용해보자! (2) (0) | 2024.10.25 |