AWS

AWS EC2์— Redis ์„ค์น˜ํ•˜๊ธฐ | EC2 ๋‚ด๋ถ€์— ์„ค์น˜ํ•˜๊ธฐ

DAHLIA CHOI 2023. 2. 14. 16:20

 

AWS์—์„œ ๋”ฐ๋กœ Redis๋ฅผ ์ƒ์„ฑํ•ด์„œ..? ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋˜๋ฐ ๋‚˜๋Š” ๊ทธ๋ƒฅ ์š”๊ธˆ ๊ฑฑ์ • ์•ˆํ•˜๋ ค๊ณ  ec2๋‚ด๋ถ€์— redis๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค!

 

EC2 ์—ฐ๊ฒฐ

์—ฌ๊ธฐ์„œ ์—ฐ๊ฒฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฌ๋‹ค

 

์•„๋ž˜์— ๋ฐ‘์ค„ ์นœ ๋ฌธ์žฅ์„ ํ†ตํ•ด์„œ ๋กœ๊ทธ์ธํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

ec2๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ณด๊ด€ํ•ด๋†จ๋˜ pem keyํŒŒ์ผ์ด ์žˆ์„๊ฑฐ๋‹ค! ์ด๊ฑธ ์ž˜ ๋ณด๊ด€ํ•ด๋†จ์–ด์•ผ ํ•œ๋‹ค ใ…Žใ…Ž

 

git bash (๋˜๋Š” ec2์—ฐ๊ฒฐ ํ„ฐ๋ฏธ๋„์— ์ ‘์†)

chmod 400 [pem]
ssh -i [pem] [ubuntu~~~]

์ฒซ๋ฒˆ์งธ ์ฝ”๋“œ๋Š” ํ‚ค๋ฅผ ๊ณต๊ฐœ์ ์œผ๋กœ ๋ชป๋ณด๋„๋ก ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์ด๊ณ , ๋‘๋ฒˆ์งธ์ค„์€ ์œ„์— ๋ฐ‘์ค„์„ ๋ณต์‚ฌํ•˜๋ฉด ๋œ๋‹ค!

 

๋งŒ์•ฝ์— pemํ‚ค๊ฐ€ ๋‹ค๋ฅธ ํด๋”์— ์ €์žฅํ•ด๋†จ์„ ๊ฒฝ์šฐ์—๋Š” ๊ทธ ํด๋”์— ๋“ค์–ด๊ฐ€์„œ ์œ„์น˜์ •๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๋ฉด ๋œ๋‹ค!!

๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” e๋“œ๋ผ์ด๋ธŒ์— ์ €์žฅํ•ด๋†จ๊ธฐ ๋•Œ๋ฌธ์— /e/~~ .pem์ด๊ฑธ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค!  (chmod ์ฝ”๋“œ์—์„œ๋„ ๋˜‘๊ฐ™์ด ๋„ฃ์œผ๋ฉด ๋œ๋‹ค)

 

 

redis server ์„ค์น˜

sudo apt-get update
sudo apt-get upgrade

 

sudo apt-get install redis-server

์ด ๋ช…๋ น์–ด๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์น˜๋‹ค๊ฐ€ ๋ณด๋ฉด ์„œ๋ฒ„ ์„ค์น˜๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค.

 

์„ค์น˜๊ฐ€ ์ž˜ ๋๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 

redis-server --vesion

์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด redis server ๋ฒ„์ „์ด ๋œฐ ๊ฒƒ์ด๋‹ค!

 

redis-server ์ ‘์†

redis-cli

์ด๋Ÿฌ๋ฉด 127.0.0.1:6379> ์ด๋ ‡๊ฒŒ ๋œจ๋ฉด์„œ redis๋ฅผ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

 

 

์„ค์ • ์„ธํŒ…

์™ธ๋ถ€์—์„œ๋„ ec2์— ์ ‘์†์„ ํ•  ํ…Œ๋‹ˆ๊นŒ redis์—์„œ๋„ ์™ธ๋ถ€์—์„œ ์ ‘์†์ด ํ—ˆ์šฉ๋  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

sudo vi /etc/redis/redis.conf

์ด ๋ช…๋ น์„ ํ†ตํ•ด redis.conf ํŒŒ์ผ์„ ์—ด์–ด์ค€๋‹ค.

 

- redis ์ ‘์† ๋น„๋ฐ€๋ฒˆํ˜ธ

- ip ์ฃผ์†Œ

- max ๋ฉ”๋ชจ๋ฆฌ

- ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ฐผ์„ ๋•Œ์˜ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

1. redis ์ ‘์† ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ

/requirepass ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€๋กœ ์ด๋™์ด ๋œ๋‹ค!

n์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ์ฐพ์•„์„œ ๋ณด์—ฌ์ค€๋‹ค ใ…Žใ…Ž

[requirepass ~~~] ์ด ๋ถ€๋ถ„์˜ ์ฃผ์„์„ ์ œ๊ฑฐํ•ด์ฃผ๊ณ  ๋ฌผ๊ฒฐ๋ถ€๋ถ„์— ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค!

 

โœ๏ธ ๊ธ€์„ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” i๋ฅผ ๋ˆ„๋ฅด๊ณ  ์ˆ˜์ •์ด ๋ชจ๋‘ ์™„๋ฃŒ๊ฐ€ ๋˜์—ˆ๋‹ค๋ฉด esc๋ฅผ ๋ˆ„๋ฅธ๋‹ค!

 

2. ip ์ฃผ์†Œ ๋ณ€๊ฒฝ

/bind๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ฉด ip์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” 127.0.0.1๋กœ ์„ค์ •๋˜์–ด์žˆ์„ ๊ฒƒ์ด๋‹ค! ์ด๋Ÿฌ๋ฉด ๋กœ์ปฌ์—์„œ๋ฐ–์— ์ ‘์†์ด ์•ˆ๋ผ์„œ ์™ธ๋ถ€์ ‘์†์„ ๋ชปํ•˜๊ฒŒ ๋œ๋‹ค.

์ด ๋ถ€๋ถ„์— 127.0.0.1์„ ์ง€์šฐ๊ณ  0.0.0.0์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค!!

 

3. max memory

/maxmemory๋ฅผ ๊ฒ€์ƒ‰ํ•œ ๋’ค์— maxmemory<bytes> ๋ถ€๋ถ„์˜ ์ฃผ์„์„ ํ•ด์ œํ•˜๊ณ  <bytes>๋ฅผ ๋Œ€์‹ ์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์–ด์ค€๋‹ค. 

๋‚˜๋Š” 1gb๋กœ ์ง€์ •ํ–ˆ๋‹ค.

 

4. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‹ค ์ฐผ์„ ๋•Œ์˜ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜

/maxmemory-policy๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์›ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋„ฃ๋Š”๋‹ค! Eviction Policies์ด ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๊ณ  ์›ํ•˜๋Š” ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„

๋„ฃ์œผ๋ฉด ๋œ๋‹ค.

noeviction: New values aren’t saved when memory limit is reached. When a database uses replication, this applies to the primary
databaseallkeys-lru: Keeps most recently used keys; removes least recently used (LRU)keys
allkeys-lfu: Keeps frequently used keys; removes least frequently used (LFU)keys
volatile-lru: Removes least recently used keys with the expire field set to true.
volatile-lfu: Removes least frequently used keys with the expire field set to true.
allkeys-random: Randomly removes keys to make space for the new data added.
volatile-random: Randomly removes keys with expire field set to true.
volatile-ttl: Removes keys with expire field set to true and the shortest remaining time-to-live (TTL) value.

 

๋ชจ๋“  ์„ค์ •์ด ๋๋‚ฌ์œผ๋ฉด esc๋ฅผ ๋ˆ„๋ฅด๊ณ  :wq์„ ์ž…๋ ฅํ•ด ์ €์žฅํ•˜๊ณ  ๋‚˜๊ฐ„๋‹ค.

 

 

ec2 ํฌํŠธ ๊ฐœ๋ฐฉํ•˜๊ธฐ

redis๋Š” 6379ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ec2์—์„œ ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— ๋“ค์–ด๊ฐ€์„œ 6379ํฌํŠธ๋ฅผ ๊ฐœ๋ฐฉํ•ด์ค˜์•ผํ•œ๋‹ค!

 

 

redis ์‹คํ–‰

sudo systemctl start redis-server

systemctl์„ ์ž…๋ ฅํ•˜๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰์ด ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.!

 

โž• confํŒŒ์ผ์„ ์ˆ˜์ • ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•œ๋‹ค.

sudo systemctl restart redis-server.service

 

redis ์›๊ฒฉ์ ‘์†

๋‚˜๋Š” ์›๊ฒฉ์ ‘์†์„ ํ™•์ธํ•˜๋ ค๊ณ  ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ unbuntu๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ณ  ์ ‘์†ํ–ˆ๋‹ค.

 

๋‹ค๋ฅธ ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ ์œ„์—์„œ๋Š” ๋จผ์ € redis๋ฅผ ์„ค์น˜ํ•ด์ค˜์•ผํ•œ๋‹ค. 

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install redis-tools

 

redis-cli -h [EC2 ์ธ์Šคํ„ด์Šค์˜ IP or DNS] -p 6379 -a [redis.conf์— ์„ค์ •ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ]

์ด๋ ‡๊ฒŒ ์ž…๋ ฅํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ ‘์†์ด ๋˜๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค!

 

 

 

 


[์ฐธ๊ณ  ์‚ฌ์ดํŠธ] : https://wookgu.tistory.com/26