Amazon ElastiCache Overview
- RDS ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.
- ElastiCache๋ Redis ๋๋ Memcached ์ ๊ฐ์ ์บ์ ๊ธฐ์ ์ ๊ด๋ฆฌํ ์ ์๋ค.
- ์บ์๋, ๋์ ์ฑ๋ฅ๊ณผ ๋ฎ์ ์ง์ฐ ์๊ฐ์ ๊ฐ์ง In-Memory DB ์ด๋ค.
- ElastiCache๋ฅผ ์ฌ์ฉํ๋ฉด, Read ์ง์ฝ์ ์ธ ์ํฌ๋ก๋์ ๋ถํ๋ฅผ ์ค์ด๋๋ฐ ๋์์ด ๋๋ค.
- ์ผ๋ฐ์ ์ธ ์ฟผ๋ฆฌ๊ฐ ์บ์ ๋์ด DB๊ฐ ๋งค๋ฒ ์ฟผ๋ฆฌ๋์ง ์๋ ๊ฒ์ ์๋ฏธํ๋ค.
- ์บ์๋ ์ด๋ฌํ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ํ ๋ ์ฌ์ฉํ ์ ์๋ค.
- App์ ์ํ๋ฅผ ElastiCache์ ์ ์ฅํด App๋ฅผ ๋ฌด์ํ(stateless)๋ก ๋ง๋ค ์ ์๋ค.
- RDS ์ ๊ฐ์ ์ฅ์ ์ ๊ฐ๊ธฐ ๋๋ฌธ์ AWS๋ ๋์ผํ ์ ์ง ๋ณด์๋ฅผ ์ํํ๋ค.
- ์ด์์ฒด์ , ํจ์น, ์ต์ ํ, ์ค์ , ๊ตฌ์ฑ, ๋ชจ๋ํฐ๋ง, ์ฅ์ ํ๋ณต, ๋ฐฑ์ ์ ์ํํ๋ค.
- ElastiCache๋ฅผ ์ฌ์ฉํ ๋ App์ ๊ดํ ๋ช ๊ฐ์ง ์ด๋ ค์ด ์ฝ๋ ๋ณ๊ฒฝ์ ์์ฒญํ ์๋ ์๋ค.
- ๋จ์ํ ํ์ฑํ๋ฅผ ์ํค๋๊ฒ์ด ์๋๋ผ ์ง์ง๋ก ์บ์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ ์ ๊ณผ ํ์ ์บ์๋ฅผ ์ฟผ๋ฆฌํ๋๋ก App์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค.
ElastiCache Solution Architecture - DB Cache
- ElastiCache, RDS, APP ์ด ์๋ค.
- App์ Cache์ Query ํ๋ค.
- query๊ฐ ์ด๋ฏธ ์์ฑ๋ฌ๋์ง, ์ด๋ฏธ ์์ฑ๋์ด cache์ ์ ์ฅ๋์๋์ง ํ์ธํ๋๊ฒ์ Cache Hit ์บ์ํํธ์ด๋ค.
- ์ด๋ cache์์ ๋ฐ๋ก ์๋ต์ ์ป์ด์ ์ฟผ๋ฆฌํ๊ธฐ ์ํด DB ๋ก ์ด๋ํ๋ ์๊ฐ์ ์ค์ฌ์ค๋ค.
- cache miss ์บ์๋ฏธ์ค์ ๊ฒฝ์ฐ์๋ DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ DB์์ ์ฝ์ต๋๋ค.
- ๋์ผํ ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ํ๋ ๋ค๋ฅธ App์ด๋ Instance์์๋ ๋ฐ์ดํฐ๋ฅผ cache์ ๋ค์ ๊ธฐ๋กํ์ฌ
๋ค์์๋ ๊ฐ์ ์ฟผ๋ฆฌ๋ก Cache Hit ๋ฅผ ์ป๋๋ก ํฉ๋๋ค. - RDS DB์ ๋ถํ๋ฅผ ์ค์ด๋๋ฐ ๋์์ ์ค๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์บ์ ๋ฌดํจํ ์ ๋ต์ด ์์ด์ผ ํ๋ค.
- ๊ฐ์ฅ ์ต๊ทผ ๋ฐ์ดํฐ๋ง ์ฌ์ฉํ๋์ง ํ์ธํด์ผ ํ๋ค.
- ์ด๊ฒ์ด ์บ์ฑ ๊ธฐ์ ์ฌ์ฉ๊ณผ ์ฐ๊ด๋ ์ด๋ ค์(๋จ์ ) ์ด๋ค.
ElastiCache Solution Architecture - User Session Store
- ์ฌ์ฉ์ ์ธ์ ์ ์ ์ฅํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌด์ํ๋ก ๋ง๋๋ ๊ฒ
- ์ฌ์ฉ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ๊ณ์ ์ ๋ก๊ทธ์ธํ๋ฉด App์ด Cache์ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ก
- ์ฌ์ฉ์๊ฐ App์ ๋ค๋ฅธ Instance๋ก ๋ฆฌ๋ค์ด๋ ์ ๋๋ฉด App์ cache์์ ์ง์ ์ธ์ ์บ์ ๊ฒ์
- ๊ทธ๋์ ์ฌ์ฉ์๋ ๊ณ์ ๋ก๊ทธ์ธํ ์ํ๋ก ํ ๋ฒ ๋ ๋ก๊ทธ์ธ ํ ํ์๊ฐ ์๋ค.
- ์ฌ์ฉ์์ ์ธ์ ๋ฐ์ดํฐ๋ฅผ cache์ ๊ธฐ๋กํด์ App์ ๋ฌด์ํ(stateless)๋ก ๋ง๋๋ ๊ฒ
ElastiCache - Redis vs Memcached
๋ ๋์ค์ ๋ฉค์บ์๋ ์ฐจ์ด ๋น๊ต
- ๋ ๋์ค
- ์๋ ์ฅ์ ์กฐ์น ๋ค์ค AZ๋ฅผ ์ํํ๋ ๊ธฐ์
- ์ฝ๊ธฐ ์ ์ฉ Replica๋ ์ฝ๊ธฐ ์ค์ผ์ผ๋ง์ ์ฌ์ฉ๋๋ฉฐ, ๊ณ ๊ฐ์ฉ์ฑ์ ๊ฐ์ง๋ค.
- ์ง์์ฑ์ผ๋ก ์ธํด ๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ๋ ์๋ค.
- ๋ฐฑ์ ๊ณผ ๊ธฐ๋ฅ๋ณต์๋ ์๋ค.
- RDS์ ๋ง์ด ์ ์ฌํ๋ค.
- ๋ฉค์บ์๋
- ๋ฐ์ดํฐ ๋ถํ ์ ๋ค์ค๋ ธ๋๋ฅผ ์ฌ์ฉํ๊ณ ์ด๋ฅผ ์ค๋ฉ(sharding) ์ด๋ผ๊ณ ํฉ๋๋ค.
- ๊ฐ์ฉ์ฑ์ด ๋์ง์๊ณ , ๋ณต์ ๋ ๋ฐ์ํ์ง ์๋๋ค.
- ์ง์์ ์ธ ์บ์๊ฐ ์๋๋๋ค.
- ๋ฐฑ์ ๊ณผ, ๊ธฐ๋ฅ๋ณต์๋ ์๋ค.
- ๋ค์ค ์ค๋ ๋ ์ํคํ ์ฒ๋ก, ๋ช๋ช ์ค๋ฉ๊ณผ ํจ๊ป ์บ์์์ ํจ๊ป ์คํ๋๋ ์ฌ๋ฌ ์ธ์คํด์ค๊ฐ ์๋ค.
- ์ ๋ฆฌ
- ๋ ๋์ค๋ ๊ณ ๊ฐ์ฉ์ฑ, ๋ฐฑ์ , ์ฝ๊ธฐ์ ์ฉ Replica๊ฐ ์๋ค.
- ๋ฉค์บ์๋๋ ๋ฐ์ดํฐ๋ฅผ ์์คํ ์ ์๋ ๋จ์ํ ๋ถ์ฐ ์บ์์ด๋ค.
- ๊ฐ์ฉ์ฑ์ด ๋์ง ์๊ณ , ๋ฐฑ์ ๊ณผ ๊ธฐ๋ฅ๋ณต์๋ ์๋ค.
์ด๊ฒ์ด ๋ฐ๋ก ๋ ๊ธฐ์ ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ด๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ