먼저 ElastiCache 대시보드로 들어가 줍니다.
기본 엔드포인트 주소에서 포트 번호를 빼고 복사해줍니다.(여기서 리더 엔드포인트는 엔드포인트 읽기 전용 주소입니다.)
EC2환경에 들어가서 ElastiCache에 접속해줍니다.
redis-cli -h {ElastiCache의 기본 엔드포인트}
로컬 환경에서 접속되는지 테스트
EC2의 VPC 정보
ElastiCache의 VPC 정보
이제 SpringBoot에 ElastiCache를 연결해봅시다.
application.yml 파일에서 prod 환경을 세팅해줍니다.
# local 환경
spring:
profiles:
default: local
datasource:
url: jdbc:mysql://host.docker.internal:3306/mydb
username: ~~~
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://기본 엔트포인트~~~~/mydb
username: ~~~
password: ~~~
data:
redis:
host: ~~~
port: 6379
Github Repo에 push 해주고 EC2 환경에서 repo를 pull 받습니다.
cd project 경로
git pull origin main
기존 서버 종료시켜줍니다.
$ docker compose down # 이전 실습에서 실행시켰던 컨테이너 종료시키기
$ docker ps # 종료됐는 지 확인
Spring Boot 프로젝트를 실행시켜줍니다.
./gradlew clean build -x test
cd build/libs
java -jar -Dspring.profiles.active=prod {빌드된 jar 파일명}
실제 ElastiCache에서 캐시가 저장되고 있는지 확인해봅니다.
새로운 EC2 창 열어서 ElastiCache에 접속해줍니다.
redis-cli -h {ElastiCache의 기본 엔드포인트}
keys *
get getBoards::boards:page:1:size:10
ttl getBoards::boards:page:1:size:10 (만료될 시간 추가하기 (Unix timestamp를 기준으로 작성)