AWS에서의 ElastiCache Redis 경우 EC2로만 접근이 가능하다는 단점이 있습니다.
Redis가 워낙 보안에 취약하다보니 서브넷을 제한하여 제공하는 듯합니다.
따라서 로컬 환경에서 Redis를 사용하기 위해서는 Docker를 통해서 셋팅하는 방법이 있습니다.
1. Docker 설치
Docker 설치의 경우 포스팅에서 다루지 않습니다. 아래 URL을 통해 Docker 설치를 할 수 있습니다.
https://www.docker.com/get-started
2. Redis 설치
- Docker에는 Redis 이미지가 별도로 존재합니다. 설치 명령어는 아래를 참고해주세요.
# 도커 컨테이너 상태 확인
docker ps -a
# redis 이미지를 받아옵니다.
docker pull redis:alpine
# 도커 네트워크 현황 확인
C:\Users\hjun\Code\docker_temp>docker network ls
NETWORK ID NAME DRIVER SCOPE
69721fa6ce02 bridge bridge local
8a14764235ef host host local
f5788e89fd9c none null local
# 도커 네트워크 생성 [디폴트값]
docker network create redis-network
# 도커 네트워크 상세정보 확인
C:\Users\hjun\Code\docker_temp>docker inspect redis-network
[
{
"Name": "redis-network",
"Id": "645cae4820de8d7c5a9984369fd6f8577f06b0b2af0c75b535a883592d27d844",
"Created": "2021-11-10T06:34:12.1248841Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {},
"Options": {},
"Labels": {}
}
]
# local-redis라는 이름으로 로컬-docker 간 6379 포트 개방
# redis-network 이름의 네트워크를 사용,
# 로컬의 redis_temp와 도커의 /data를 서로 연결
# redis:alpine 이미지를 사용하여 백그라운드에서 실행
docker run --name local-redis \
-p 6379:6379 \
--network redis-network \
-v redis_temp:/data \
-d redis:alpine redis-server --appendonly yes
# 복붙용도
docker run --name local-redis -p 6379:6379 --network redis-network -v redis_temp:/data -d redis:alpine redis-server --appendonly yes
이렇게 따라오셨다면 아래와 같이 컨테이너가 생성되어 백그라운드로 돌아가는 것을 볼 수 있습니다.
이제 생성된 컨테이너에 진입하겠습니다.
# 실행 중인 redis 컨테이너에 대해 docker redis-cli 로 직접 진입
docker run -it --network redis-network --rm redis:alpine redis-cli -h local-redis
# bash로도 진입 가능하다.
docker run -it --network redis-network --rm redis:alpine bash
이렇게 하면 docker에 redis를 셋팅하여 사용 할 수 있게 됩니다. 😀
'AWS' 카테고리의 다른 글
[Redis 2/3] Spring Boot에서 AWS (RedisTemplate, RedisRepository) 사용하기 (0) | 2021.11.10 |
---|---|
[Redis 1/2] AWS에서 ElastiCache(Redis) 만들기 (0) | 2021.11.09 |
AWS EC2에 HTTPS 적용 (let's encrypt) (0) | 2021.11.02 |
AWS에서 RDS만들기 [MySQL] (1) | 2021.11.01 |
AWS S3에서 버킷 생성 후 IAM 사용자 만들기 (0) | 2021.10.31 |