Redis11 [Redis] AWS ElasticCache를 활용하자! (2) 자, 드디어 Redis의 마지막 챕터에 도달했다.3일을 Redis를 위해 달려왔다!이번 계기로 나도 Redis를 활용해서 조회 성능을 개선할 수 있는 개발자로 성장하자! 1. ElasticCache 잘 생성된거 맞아?우선 대시보드에 들어가서 상태를 확인해보자. 상태가 Avaliable로 변경된 걸 보니 잘 생성된 것 같다.생각보다 엄청 오래 걸려서 한참 기다렸다. 2. EC2에서 ElastiCache 접속해보자! 기본 엔드포인트에서 Port만 빼고 복사하자.참고기본 엔드포인트: 모든 권한을 가지고 있는 주소리더 엔드포인트: 읽기 전용 주소 # EC2에서 ElastiCache 접속하는 명령어redis-cli -h instagram-cache-server.iaxvmk.ng.0001.apn2.cache.ama.. 2024. 10. 26. [Redis] AWS ElasticCache를 활용하자! (1) 현업에서는 EC2에 Redis를 직접 설치해서 사용하지 않고,데이터베이스를 RDS를 활용하는 것처럼 Redis도 AWS의 ElastiCache를 활용해서 사용하고 있다고 한다.설정이 쉽고 부가적인 기능도 많고 안정성이 높은 이유 때문이다. 따라서 AWS ElasticCache를 마지막으로 활용해보자! 1. 아키텍처 구성이전 아키텍처기존의 아키텍처 구조는 취준생 레벨 또는 비용을 극단적으로 관리해야 하는 초기 스타트업에 적합한 구성이다.실제로 규모가 조금이라도 커지면 서비스를 이렇게 구성하는 경우는 드물다. ElasticCache 도입 아키텍처따라서 이런 식으로 구성하는게 실제 서비스 현업에 가까운 아키텍처 구조라 할 수 있다.우리는 현업에 가까운 배포 환경을 경험해야 하지 않겠는가? 지금부터 AWS 인프.. 2024. 10. 26. [Redis] Docker Compose로 Redis + Spring Boot 띄우기 (AWS) 배포 환경의 인프라를 구성했으니 AWS EC2에서 Docker Compose로 Redis + Spring Boot를 한 번에 띄워봐야하지 않겠는가! 1. Dockerfile 만들기EC2 내에서 사용할 Dockerfile을 생성한다.로컬 환경에서 사용할 파일과 배포 환경에서 사용할 파일을 구분하기 위해 이번엔 Dockerfile-prod로 생성하자.FROM openjdk:17-jdkCOPY build/libs/*SNAPSHOT.jar app.jar# 배포 환경 profiles를 지정해줘야 하기 때문에 명령어가 추가되었다ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=prod", "/app.jar"] 2. compose.yml 파일 만들기compose.yml .. 2024. 10. 26. [Redis] Docker Compose로 Redis + Spring Boot 띄우기 (로컬) 백엔드 개발을 하다 보면 Docker를 자주 활용하는 것을 알 수 있다.따라서 이번엔 Docker Compose로 Redis와 Spring Boot를 한 번에 띄울 수 있게 구성을 진행해보려 한다. 1. Dockerfile 만들기Spring Boot 프로젝트 root 디렉토리에 Dockerfile을 생성한다.# JDK17을 사용해서FROM openjdk:17-jdk# 빌드한 파일을 복사해와서COPY build/libs/*SNAPSHOT.jar app.jar# 복사한 파일을 기반으로 실행ENTRYPOINT ["java", "-jar", "/app.jar"] 2. compose.yml 파일 만들기이 파일도 Spring Boot 프로젝트 root 디렉토리에 생성하면 된다.services: api-serve.. 2024. 10. 26. [Redis] Redis 적용 전,후 부하 테스트도 진행해볼까? 1. 부하 테스트의 기본 개념우리가 실제 서비스를 배포 하기 전, 문득 이런 생각이 들 수 있다."우리 서버에 요청이 몰려서 서버가 터지면 어떡하지?""트래픽이 몰려 갑자기 서버가 죽으면 어떡하지?" 이런 문제를 사전에 방지하기 위해 배포 전 우리는 부하 테스트를 진행해봐야 한다. 우선 부하 테스트의 의미를 먼저 알아보자.부하 테스트는 서비스를 배포하기 전, 서버가 어느 정도의 요청을 견딜 수 있는지 확인하는 과정을 의미한다. 부하 테스트 진행할 때 사용하는 용어에 대해서도 알아볼까?Throughput: 1초당 처리할 수 있는 작업량TPS(Transaction Per Seconds): 1초당 처리한 요청의 수만약 내가 처리한 서버가 1초당 최대 100개의 API 요청을 처리할 수 있다고 가정한다면,해당 .. 2024. 10. 25. [Redis] AWS EC2에서 Redis를 활용해보자! (2) 1. EC2에 Redis 설치 생성한 EC2에 접속하기 위해 연결을 클릭한다. 연결을 누르면 EC2 인스턴스에 원격 접속을 하게 된다. EC2 인스턴스에 접속이 완료되었다. Redis 설치# apt update 명령어sudo apt update# Redis 설치 명령어sudo apt install redis Redis 설치 및 통신 확인 2. EC2에 JDK 설치JDK 설치 JDK 설치 여부 확인 3. Spring Boot 프로젝트에 배포 환경 설정 추가로컬 환경과 분리하여 배포 환경의 설정을 추가해준다.데이터베이스 설정 정보는 일전에 생성한 RDS의 정보로 작성한다.# local 환경spring: profiles: default: local datasource: url: jdbc:mysq.. 2024. 10. 25. [Redis] AWS EC2에서 Redis를 활용해보자! (1) 현업에서 사용하고 있는 환경과 최대한 비슷하게 환경을 구성하기 위해 AWS EC2에서 Redis를 활용해보고,Redis 적용 전,후의 성능을 또 비교해보자! 1. 배포 환경 인프라 구성이제 로컬 환경이 아닌 실제 배포 환경의 인프라를 구성해서 사용해보려고 한다.배포 환경 아키텍처는 아래와 같이 구성한다. 아키텍처 구성AWS EC2RDSSpring BootRedis사용자는 EC2를 통해 데이터를 요청 하고, EC2 내부에는 Spring과 Redis를 같이 설치한다.데이터베이스는 EC2 내부가 아닌 외부 RDS를 통해 통신할 수 있도록 하자! 2. EC2 생성 AWS 홈페이지에 로그인한 후, EC2를 검색해서 클릭한다. 리전이 서울인 것을 확인하고 인스턴스 시작을 클릭한다. 이름 및 태그는 서버 이름을 작성.. 2024. 10. 25. [Redis] 로컬에서 Spring Boot + Redis 사용해보자! (2) 드디어 Spring Boot에 Redis를 연동하고 성능 테스트 내용까지 다뤄보자!이론도 이론이지만 실습이 더 재밌는건 어쩔 수 없다! 1. Spring Boot 프로젝트에 Redis 세팅 추가build.gradle 파일에 Redis 의존성 먼저 추가해야 한다.implementation 'org.springframework.boot:spring-boot-starter-data-redis' 의존성을 추가하고 추가한 의존성이 프로젝트에 빌드될 수 있도록 오른쪽 상단에 있는 코끼리 새로고침 표시를 눌러줘야 한다. 2. application.yml 설정 파일 수정Redis 연동에 필요한 설정과 Redis 사용에 대한 로그가 찍힐 수 있도록 설정을 추가해준다.spring: profiles: default:.. 2024. 10. 25. [Redis] 로컬에서 Spring Boot + Redis 사용해보자! (1) Redis의 기본 개념부터 전략까지 머릿속에 넣었으니 이제 활용해볼 때이다!익숙한 Spring Boot를 활용해서 Redis를 구현해볼까? 1. Spring Boot 프로젝트 생성Spring Boot 프로젝트 세팅 환경은 참고로 작성한다.Spring Boot 3.x.x 버전MySQL 8.x 버전 이상JDK 17 우선 IntelliJ Ultimate 버전을 사용하고 있어 사이트를 통하지 않고 프로젝트를 진행하는 방법만 다룰 예정이다.Community Edition 버전을 사용하거나 다른 IDE 사용 유저들은 사이트를 통해 진행할 수 있도록 링크를 공유해놓을테니 참고하시면 좋겠다. Community Edition, 다른 IDE 사용 유저 프로젝트 세팅 참고https://start.spring.io/ Ulti.. 2024. 10. 25. 이전 1 2 다음