카테고리 없음

ElastiCache가 잘 생성됐는지 확인 & Spring Boot에 ElastiCache 연결해보기

느리지만 꾸준하게 2024. 10. 14. 20:17

먼저 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를 기준으로 작성)