JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

EC2, RDS, Spring Boot, Redis 셋팅

JSCODE 박재성
JSCODE 박재성
2025-12-06
author
JSCODE 박재성
category
Redis
createdAt
Dec 6, 2025
series
비전공자도 이해할 수 있는 Redis 입문/실전
slug
ec2-rds-springboot-redis-setup
type
post
updatedAt
Dec 6, 2025 04:33 AM
🧑🏻
AWS에 초점을 맞춘 강의가 아니기 때문에 EC2, RDS에 대한 디테일한 설명은 생략할 예정이다. 혹시 AWS에 대한 기본기를 다지고 싶다면 아래 강의를 추천한다. 비전공자도 이해할 수 있는 AWS 입문/실전 (https://inf.run/73afg)

✅ EC2 생성

[고려 사항]
  • EC2 인스턴스를 생성할 때 t3a.small 이상으로 생성할 것을 권장한다. t2.micro에서 Spring Boot, Redis를 다 돌리기에는 성능이 모자라다. 성능이 모자라서 중간에 EC2가 멈춰버리기도 한다.
  • 보안 그룹 설정에서 8080번 포트 열어주는 것을 깜빡하지 말자.
 
 

✅ RDS 생성

[고려 사항]
  • 실습을 원활하게 하기 위해 RDS 생성할 때 초기 DB 이름을 mydb라고 붙여서 생성하자.
  • 보안 그룹 설정에서 3306번 포트 열어주는 것 깜빡하지 말자.
 
 

✅ EC2에 Redis 설치

  1. Redis 설치하기
    1. $ sudo apt update $ sudo apt install redis
 
  1. Redis 잘 설치됐는 지 확인
    1. $ redis-cli 127.0.0.1:6379> ping PONG
 
 

✅ EC2에 Spring Boot 프로젝트 셋팅하기

  1. JDK 설치하기
    1. Spring Boot는 3.x.x 버전을 사용할 예정이고, JDK는 17버전을 사용할 예정이다. 그에 맞게 환경을 설치해보자.
      $ sudo apt install openjdk-17-jdk
 
  1. 잘 설치됐는 지 확인하기
    1. $ java -version
      notion image
 
  1. Spring Boot 프로젝트에서 application.yml 정보 수정하기
    1. application.yml
      # local 환경 spring: profiles: default: local datasource: url: jdbc:mysql://localhost: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: localhost port: 6379 logging: level: org.springframework.cache: trace --- # prod 환경 spring: config: activate: on-profile: prod datasource: url: jdbc:mysql://{rds 주소}:3306/mydb username: admin password: password
       
  1. Github Repository에 올리기
    1. 참고) 실습에서는 편의를 위해 application.yml 정보를 .gitignore 처리를 하지 않았다. 실제 프로젝트에서는 보안을 위해 application.yml 정보를 .gitignore 처리를 해서 버전 관리가 되지 않게 만들어야 한다.
       
  1. EC2로부터 Github Clone 받기
    1. $ git clone {Github Repository 주소} $ cd {프로젝트 경로}
       
  1. 서버 실행시키기
    1. # 스프링 프로젝트 경로로 들어가서 아래 명령어 실행 $ ./gradlew clean build -x test $ cd build/libs $ java -jar -Dspring.profiles.active=prod {빌드된 jar 파일명}
      정상적으로 서버가 실행되는 걸 확인할 수 있다. 그리고 JPA의 ddl 옵션으로 인해 테이블도 생성이 된다.
 
 

✅ RDS에 더미데이터 넣기

  1. DB GUI 툴로 RDS에 접속하기
    1. (실습에서는 Datagrip을 활용)
 
  1. 더미 데이터 넣어주는 SQL문 실행시키기
    1. -- 높은 재귀(반복) 횟수를 허용하도록 설정 -- (아래에서 생성할 더미 데이터의 개수와 맞춰서 작성하면 된다.) SET SESSION cte_max_recursion_depth = 1000000; -- boards 테이블에 더미 데이터 삽입 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, -- 'Title' 다음에 7자리 숫자로 구성된 제목 생성 CONCAT('Content', LPAD(n, 7, '0')) AS content, -- 'Content' 다음에 7자리 숫자로 구성된 내용 생성 TIMESTAMP(DATE_SUB(NOW(), INTERVAL FLOOR(RAND() * 3650 + 1) DAY) + INTERVAL FLOOR(RAND() * 86400) SECOND) AS created_at -- 최근 10년 내의 임의의 날짜와 시간 생성 FROM cte;
      • 위 SQL문은 MySQL 8.0부터 사용이 가능하다.
 
author
category
Redis
createdAt
series
비전공자도 이해할 수 있는 Redis 입문/실전
slug
type
series-footer
updatedAt
Dec 6, 2025 04:33 AM
📎
이 글은 비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편) 강의의 수업 자료 중 일부입니다.