'AWS로 구현하는 MAS와 컨테이너 오캐스트레이션' 강의를
블로그를 통해 구매하시는 분들에게만 10%할인 중입니다.
이미지를 클릭하고, 아래 쿠폰번호를 입력해 주세요!
16861-259843d6c2d7
aws elastiCache redis + spring/kotlin
aws elastiCache 콘솔 화면에서 redis탭의 생성 버튼으로 redis 메모리 생성 진행
* 클러스터 모드 - 클러스터 모드를 활성화하면 샤드를 추가 가능하다. 샤드를 추가하면 샤딩 방식에 따라 메모리에 저장되는 데이터를 특정 집단으로 분리하여 저장하므로 워크로드를 분산(성능 개선)한다.
샤딩 - 메모리에 데이터를 분리하여 저장하는 방식
elastiCache redis의 샤딩기법 - 모든 캐시 키가 해시 슬롯에 매핑되는 방식으로 샤딩을 활용. 1개의 클러스터는 16,384개의 슬롯을 사용할 수 있고 클러스터 내 총 샤드에 균등하게 배포
포트 - 일반적으로 redis는 6379 포트 사용 (건들지 말자)
샤드 수 - 분산시킬 파티션 개수
샤드당 복제본 - 샤드의 replication 할 개수 권장은 2개지만 개수가 많아질 수록 요금이 기하급수적으로 올라감
* 샤드 3 샤드당 복제본 2 일 경우 총 9개의 노드로 9배의 요금이 부과됨
다중 az - elastiCache의 경우 샤드당 복제본을 1개 이상 설정 시 자동으로 활성화 되는듯
슬롯 및 키스페이스 - 균등배포는 aws의 권장 샤딩이고 사용자 지정으로 슬롯 및 키스페이스를 지정 가능 (웬만해선 균등 배포)
그 외 보안 등 설정 후 생성완료
ec2에서 접근 가능하도록 보안 그룹 설정
ssh 와 redis 접속 포트 오픈
ec2에 redis사용 환경 설정
linux-ubuntu 기준
apt-get install redis-tools 명령어를 통해 redis 관련 툴을 다운
redis-cli -c -h hitup-redis.ooooo.clustercfg.apn2.cache.amazonaws.com -p 6379
hitup-redis.ooooo.clustercfg.apn2.cache.amazonaws.com:6379>
redis 접속 확인
spring Dependencies 추가
implementation("org.springframework.boot:spring-boot-starter-data-redis")
implementation("redis.clients:jedis:3.3.0")
spring yaml 파일에 redis 환경 추가
spring:
datasource:
redis:
host: ooo-redis.oooooo.clustercfg.apn2.cache.amazonaws.com
port: 6379
spring redis Configuration 클래스 작성
@EnableRedisRepositories
@Configuration
class RedisConfiguration {
@Value("\${spring.redis.host}")
lateinit var redisHost: String
@Value("\${spring.redis.port}")
var redisPort: Int = 0
@Bean
fun redisClusterConfiguration(): RedisClusterConfiguration? {
val clusterConfiguration = RedisClusterConfiguration()
clusterConfiguration.clusterNode(redisHost, redisPort)
LettuceConnectionFactory(clusterConfiguration)
return clusterConfiguration
}
}
빈 등록 이후 redis service 및 redis repository 작성하여 연동
'AWS' 카테고리의 다른 글
[AWS] 마이크로 서비스 환경 구축을 위한 EC2 + Route53 + Load Balancer + ACM(SSL) 사용 (0) | 2022.05.09 |
---|---|
[AWS - Route53] Route53 이란? 쉽게 도메인 등록 및 EC2연결 (0) | 2021.12.08 |
[AWS] EC2 볼륨(용량) 늘리기 (0) | 2021.11.30 |
[AWS-EC2] EC2 인스턴스 생성 + 탄력적 IP 주소 (Ubuntu) (0) | 2021.11.22 |
[aws] aws iot core도입하여 spring/kotlin에서 mqtt 구독 및 발행 (0) | 2021.05.21 |