ElastiCache - Cache Security
์บ์ ๋ณด์์ ์์๋ณด์
- ElastiCache ์ ๋ชจ๋ ์บ์๋ค (redis, memcached)
- IAM ์ธ์ฆ์ ์ง์ํ์ง ์๋๋ค.
- ์บ์์์ IAM ์ ์ฑ ์ AWS API ์์ค ๋ณด์์๋ง ์ฌ์ฉ๋๋ค.
- Redis Auth
- ๋ ๋์ค ์ธ์ฆ์ ํ๋ ค๋ฉด Redis Auth๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- Redis Cluster ๋ฅผ ์์ฑํ ๋, password ๋๋ token ์ ์ค์ ํ ์ ์๋ค.
- ์บ์์ ๋ค์ด๊ฐ ๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.
- ์บ์์ ์ฌ์ฉํ ์ ์๋ ๋ณด์๊ทธ๋ฃน์ ๋ํ ์ถ๊ฐ์ ์ธ ์์ค์ ๋ณด์์ด๋ค.
- ์ ์ก ์ค ์ํธํ๋ฅผ ์ํด SSL ๋ณด์์ ์ง์ํ ์ ์๋ค.
- Memcached
- SASL ๊ธฐ๋ฐ์ ์ธ์ฆ์ ์ง์ํ๋ค. (์ข๋ ๋์ ๋ณด์์์ค)
- ๊ณ ๊ธ ์ข ๋ฅ์ ์ธ์ฆ ๋งค์ปค๋์ฆ
- SASL ๊ธฐ๋ฐ์ ์ธ์ฆ์ ์ง์ํ๋ค. (์ข๋ ๋์ ๋ณด์์์ค)
EC2 Instance ์์ฒด ๋ณด์๊ทธ๋ฃน(SG)๋ Redis์ Accesํ ์ ์๋ ์์ฒด ๋ณด์ ๊ทธ๋ฃน์ด ์๋ค.
๊ทธ๋์ ์ผ๋ผ์คํฑ ์บ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณด์๊ทธ๋ฃน ์์ค์ ๋ณด์์ ์ํํ ์ ์๋ค.
๋ํ ์ธ์ฆ์ ์ํด Cache์์ Redis ์ข
๋ฅ์ ์บ์๋ฅผ ์ฌ์ฉํ ๋ Redis Auth๋ฅผ ๊ฐ์ง ์ ์๋ค.
Patterns for ElastiCache
์ผ๋ผ์คํฑ ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ค๋ ํจํด 3๊ฐ์ง๋ฅผ ์์๋ณด์
- Lazy Loading
- ๋ชจ๋ ์ฝ๊ธฐ ๋ฐ์ดํฐ๋ ์บ์๋๊ณ , ๋ฐ์ดํฐ๊ฐ ์บ์์์ ๋ถ์คํด์ง ์ ์๋ค.
- Cache์ ์บ์๊ฐ ํํธํ๋ฉด App์ด Cache๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค.
- ๋ง์ผ Cache ๋ฏธ์ค๊ฐ ์์ผ๋ฉด DB์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ Cache์ ์ ์ฅ์ํจ๋ค.
- ์บ์ ํํธ๊ฐ ์์๋๋ง ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ Lazy Loading ์ด๋ผ๊ณ ํ๋ค.
- Write Through
- DB์ Write ํ ๋ ์บ์์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๋ฐ์ดํธ ํ๋ ๊ฒ
- Session Store
- ์บ์๋ฅผ ์ธ์ ์ ์ฅ์๋ก ์ฌ์ฉ๊ฐ๋ฅํ๋ค. (TTL ์์ฑ์ผ๋ก ์ธ์ ์ ๋ง๋ฃ์ํฌ ์ ์๋ค.)
- TTL (Time to Live)
ElastiCache - Redis Use Case
Redis ์ฌ์ฉ์ฌ๋ก
- ๊ฒ์ ๋ฆฌ๋๋ณด๋ ์์ฑ์ ๋ํ ๊ฒ
- ๊ฒ์ ์ด๋ ์์ ์ ๋๊ฐ 1์๊ณ 2์๊ณ 3์์ธ์ง ๊ฐ๋ ค๋ด๋ ๊ฐ๋
- ์ผ์ข ์ Ranking ์์คํ
- ๋ ๋์ค ์๋ฃ๊ตฌ์กฐ์ค ๊ณ ์ ์ฑ๊ณผ ์์ ์์๋ฅผ ๋ชจ๋ ๋ณด์ฅํ๋ Sorted Set ์๋ฃํ์ ์ฌ์ฉํ๊ฒ ๋๋ค.
- ์์๊ฐ ์ถ๊ฐ๋ ๋๋ง๋ค ์ค์๊ฐ์ผ๋ก ์์๊ฐ ๋งค๊ฒจ์ง ๋ค์ ์ฌ๋ฐ๋ฅธ ์์๋ก ์ถ๊ฐ๋๋ค.
- Redis Cluster ๊ฐ ์๋ ๊ฒฝ์ฐ ์ค์๊ฐ์ผ๋ก 1์, 2์, 3์ ํ๋ ์ด์ด๊ฐ ์๋ ์ค์๊ฐ ๋ฆฌ๋๋ณด๋๋ฅผ ์์ฑํ๋ค๋ ๊ฐ๋
- ๋ชจ๋ Redis Cache๋ ๋์ผํ ๋ฆฌ๋๋ณด๋๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ์ฆ Redis๋ก Amazon ElastiCache ์ ํต์ ํ ๋ ํด๋ผ์ด์ธํธ๋ ์ค์๊ฐ ๋ฆฌ๋๋ณด๋์ ์ก์ธ์คํ ์ ์๊ณ
App์ธก์์๋ ์ด ๊ธฐ๋ฅ์ ํ๋ก๊ทธ๋๋ฐํ ํ์๊ฐ ์๋ค. - ์ค์๊ฐ ๋ฆฌ๋๋ณด๋์ ์ก์ธ์ค ํ๊ธฐ ์ํด Redis์ Sorted Set ์๋ฃํ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ