시작하기에 앞서 지역을 서울로 설정할 것
EC2
인스턴스 시작
이름은 취향껏
ubuntu 사용
MuSQL, Redis 모두 사용하기 위해 t3.small 사용
테스트만 해보고 삭제할 것이라 키페어 없이 진행
네트워크 설정 > 편집
스프링부트를 사용하기위해 8080 추가
그 후에 인스턴스 생성🖱️
RDS
연결 > 퍼블릭 액세스 설정
외부에서 데이터베이스를 접근하기 위함이
생성하고 데이터베이스가 자동으로 생성되기 위함
테스트용이라 자동 백업은 비활성화한다.
RDE 생성!🖱️
RDS를 자세히보면 보안그룹이 있다.
여기서 3306 포트로 모든 IP가 접근할 수 있도록 설정해야한다.
보안 그룹에 들어가 인바운드 규칙을 추가한다.
EC2 연결
아까 만들어둔 EC2 인스턴스로 돌아가 원격으로 접속한다.
레디스 설치
$ sudo apt update
$ sudo apt install redis
정상 설치 확인
$ redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
JDK 설치
$ sudo apt install openjdk-17-jdk
이것 또한 정상설치 확인
$ java -version
스프링부트 프로젝트에서 application 수정한다.
해당 프로젝트를 깃을 통해 사용할거라 RDS 주소에 생성한 RDE 엔드포인트를 복사해 넣는다.
spring:
profiles:
default: local #환경 이름
datasource:
url: jdbc:mysql://localhost:3306/study #PC MySQL 서버와 포트
username: root
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver #MySQL용 JDBC 드라이버 클래스
jpa: #객체와 DB테이블을 자동으로 매핑해줌
hibernate:
ddl-auto: update #애플리케이션 실행할 때 DB테이블을 자동으로 업데이트 / 실무에선 validate, none 사용
show-sql: true #SQL 콘솔 -> 디버깅 유용
data:
redis:
host: localhost #PC에서 실행한 Redis 서버
port: 6379 #기본 포트 번호
logging:
level:
org.springframework.cache: trace #캐시 동작에 대한 로그를 보기 위함
---
spring:
config:
activate:
on-profile: prod
datasource:
url: jdbc:mysql://redis-study.cgdi6os4k015.us-east-1.rds.amazonaws.com:3306/mydb
username: admin
password: password
그 후에 깃허브 저장소를 생성 후 커밋 및 푸쉬를 한다.
원래는 application.yml 파일은 보안을 위해 gitignore 처리한다.
다시 EC2 원격으로 돌아와 깃허브를 clone하여 받는다.
이때 깃허브 로그인을 위해 토큰이 필요하게 됨
$ git colne 깃주소
정상 클론된 후 프로젝트 경로로 들어간다.
cd 프로젝트 경로
# 스프링 프로젝트 경로로 들어가서 아래 명령어 실행
$ ./gradlew clean build -x test
$ cd build/libs
$ java -jar -Dspring.profiles.active=prod 빌드된 jar 파일명
이제 스프링부트가 정상 실행되는 것을 확인할 수 있다.
데이터 추가
테스트를 위해 디비에 더미 데이터를 추가하기 위해 DB 접속
더미 데이트를 넣는 SQL 실행
SET SESSION cte_max_recursion_depth = 1000000;
INSERT INTO boards (title, content, created_at)
WITH RECURSIVE cte (n) AS
(
SELECT 1
UNION ALL
SELECT n + 1 FROM cte WHERE n < 1000000
)
SELECT
CONCAT('Title', LPAD(n, 7, '0')) AS title,
CONCAT('Content', LPAD(n, 7, '0')) AS content,
TIMESTAMP(DATE_SUB(NOW(), INTERVAL FLOOR(RAND() * 3650 + 1) DAY) + INTERVAL FLOOR(RAND() * 86400) SECOND) AS created_at -- 최근 10년 내의 임의의 날짜와 시간 생성
FROM cte;
✔️ EC2 인스턴스 서버를 다시는 키는 방법
스프링 프로젝트 경로로 이동 후 다음 코드를 실행한다.
$ ./gradlew clean build -x test
$ build/libs
$ java -jar -Dspring.profiles.active=prod demo-0.0.1-SNAPSHOT.jar
✔️ 서버에서 코드를 수정하고 싶은 경우
해당 파일로 이동 후 파일을 열어 'i' 클릭하고 수정한다.
수정이 끝나면 ESC > :wq
$ vi xxx.java
JSCODE, Redis 입문
'🖥️ Back > Redis' 카테고리의 다른 글
ElastiCache (0) | 2025.07.08 |
---|---|
Spring Boot 프로젝트에 Redis 추가 (3) | 2025.07.08 |
데이터 캐싱 전략 Cache Aside, Write Around (0) | 2025.07.08 |
Redis 기본 명령어 (0) | 2025.07.08 |
Redis 설치 (0) | 2025.07.08 |