15. ํ์ฅ ๊ฐ๋ฅํ ๋ถ์ฐ ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์๋ฅผ ์ ๊ณตํ๋ ElastiCache
15. ํ์ฅ ๊ฐ๋ฅํ ๋ถ์ฐ ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์๋ฅผ ์ ๊ณตํ๋ ElastiCache ๊ด๋ จ
ElastiCache๋ ๋ถ์ฐ ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์In-Memory Cache๋ฅผ ์์ฝ๊ฒ ์์ฑํ๊ณ ํ์ฅํ ์ ์๋ ์๋น์ค์ ๋๋ค.
ํ๋ฆฌ ํฐ์ด์์ ์ฌ์ฉ ๊ฐ๋ฅ
ElastiCache๋ ํ๋ฆฌ ํฐ์ด์์ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. 2014๋ 4์ ๊ธฐ์ค์ผ๋ก ๋งค๋ฌ ๋ง์ดํฌ๋ก ์บ์ ๋ ธ๋ 750์๊ฐ์ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
ElastiCache๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ์ฑ๋ฅ๊ณผ ํธ์์ฑ, ๋ถ์ฐ ์บ์ ํ๊ฒฝ ๊ตฌ์ถ์ ํ์ํ ๋น์ฉ์ ์ ๊ฐํ๋๋ฐ ์์ต๋๋ค. ์ฝ๊ธฐ ์ค์ฌ์ ์๋น์ค(์์ ๋คํธ์ํฌ, ๊ฒ์, ์ถ์ฒ ์์ง ๋ฑ)๋ฅผ ์ ๊ณตํด์ผ ํ๋ ํ๊ฒฝ, ๊ณ ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํด์ผ ํ๋ ํ๊ฒฝ์ ์ ํฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ๋ฅผ ์ค์ด๊ณ ์ ํ ๋, ๋์ฉ๋ ๋ถ์ฐ ์บ์ ํ๊ฒฝ์ ์์ฒด์ ์ผ๋ก ์ด์ํ๊ธฐ์๋ ๋ถ๋ด์ด ์์ ๋ ์ ์ฉํฉ๋๋ค.
์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ(RAM)์๋ง ์ฌ๋ ค๋๊ณ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ผ์ข ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)๋ ๋์คํฌ(HDD, SSD)์ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํด๋๊ณ , ํ์ํ ๋ฐ์ดํฐ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ฝ์ด์ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ด ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋๋ค.
์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๋ ๊ฒ์ด ํน์ง์ ๋๋ค. ๋์คํฌ์ ์ ๊ทผํ์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ๋ก๋ง ๋ชจ๋ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ฒ์ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฆ ๋๋ค. ๋จ ๋ฐ์ดํฐ๋ ๋ฑ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ(์ด์์ฒด์ ์ฌ์ฉ๋ ์ ์ธ)๊น์ง๋ง ์ ์ฅํ ์ ์์ต๋๋ค. ๋ํ, ๋ฉ๋ชจ๋ฆฌ์๋ง ์ ์ฅ๋์ด ์๊ธฐ ๋๋ฌธ์ ์๋ฒ์ ์ ์ ๊ณต๊ธ์ด ์ค๋จ๋๋ฉด ๋ฐ์ดํฐ๋ ์๋ฉธ๋ฉ๋๋ค(์ด๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ๋์คํฌ์ ๋ฐฑ์ ํ๊ฑฐ๋ ๋ฐ์ดํฐ ๋ก๊ทธ๋ฅผ ๋์คํฌ์ ๋จ๊ธฐ๋ ๋ฐฉ์์ด ์์ง๋ง ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ ์งํ๋ ๋ฐฉ๋ฒ์ผ์๋ก ์บ์์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋๋ค).
์๋ฒ ๋ฐ ์ธํฐ๋ท, ์ผ๋ฐ ์ปดํจํฐ ๋ฑ์์ ์บ์๋ผ๋ ๋จ์ด๋ ๋งค์ฐ ์์ฃผ ๋ฑ์ฅํฉ๋๋ค. CloudFront์๋ ํ์ผ์ ๋น ๋ฅด๊ฒ ์ ์กํ๊ธฐ ์ํด, ์ธ๊ณ ๊ฐ์ง์ ์์ง ๋ก์ผ์ด์ ์ ๋๊ณ ํ์ผ์ ์บ์ํ๋ฉฐ ์น ๋ธ๋ผ์ฐ์ ๋ ํ์ผ์ ๋ค์ ๋ฐ์์ค์ง ์๊ธฐ ์ํด ํ์ผ์ ๋์คํฌ์ ์บ์ํฉ๋๋ค. ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์์ ์บ์๋ ๋น์ทํ ๊ฐ๋ ์ผ๋ก ์ฐ์ ๋๋ค.
๋ณดํต ๋น ๋ฅธ ์ฒ๋ฆฌ์๋๋ฅผ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ ์ค ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ ์์ฃผ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์์ ์์๋ก ์ ์ฅํฉ๋๋ค. ์ฆ ์บ์Cache๋ผ๋ ๋จ์ด ๋ป ๊ทธ๋๋ก ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์๋ ์ฃผ๋ก ์์ ์ ์ฅ์๋ก ์ฌ์ฉ๋ฉ๋๋ค(๋ฌผ๋ก ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์๋ฅผ ๋ฉ์ธ ๋ฐ์ดํฐ ์ ์ฅ์๋ก ์ฌ์ฉํ ์๋ ์์ต๋๋ค). ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๊ฐ ์๋๋๋ผ๋ ๋์คํฌ(HDD, SSD)์ ์ ์ฅ๋ ํ์ผ, ์ธํฐ๋ท ์์ ๋ฐ์ดํฐ, ๊ธฐํ ๋์ ์ผ๋ก ์์ฑ๋๋ ๋ฐ์ดํฐ ๋ฑ ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ ๋งค์ฐ ๋ค์ํฉ๋๋ค.
ElastiCache๋ ๋ ๊ฐ์ง ์บ์ ์์ง์ ์ง์ํฉ๋๋ค.
- Memcached: ์ ๋ช ํ ๋ถ์ฐ ๋ฉ๋ชจ๋ฆฌ ์บ์ ์์คํ ์ ๋๋ค. 1.4.14, 1.4.5 ๋ฒ์ ์ ์ง์ํฉ๋๋ค.
- Redis: String, Hash, List, Set, Sorted Set ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ ํ์์ ์ ๊ณตํ๋ ํค-๊ฐ(Key-Value) ๋ฐ์ดํฐ ์ ์ฅ์์ ๋๋ค. 2.6.13, 2.8.6 ๋ฒ์ ์ ์ง์ํฉ๋๋ค.
ElastiCache๋ฅผ ์ด์ฉํ๋ฉด Memcached ํด๋ฌ์คํฐ๋ฅผ ์์ฝ๊ฒ ์์ฑํ๊ณ ํ์ฅํ ์ ์์ต๋๋ค. Memcached ํด๋ฌ์คํฐ๋ ๋ฆฌ์ ์ ๊ฐ์ฉ ์์ญAZ๋ณ๋ก ์์ฑํ ์ ์์ต๋๋ค. Memcached ํด๋ฌ์คํฐ๋ ๋ ธ๋๋ฅผ ๊ณ์ ์ถ๊ฐํ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ณต๊ฐ์ด ๋์ด๋ฉ๋๋ค.
ElastiCache์์ Memcached๋ ์ค๋ ์ท ์์ฑ๊ณผ Read Replica๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
ElastiCache์์๋ Redis๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. Redis๋ Memcached์ ๋ฌ๋ฆฌ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ค๊ณ ํด์ ์ ์ฅํ ์ ์๋ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ๋์ด๋์ง๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ ๊ฐ ์บ์ ๋ ธ๋๊ฐ ์ ๊ณตํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ ํํฉ๋๋ค.
๊ทธ๋ฆผ 15-4์ฒ๋ผ ํนํ Read Replica๋ ๋ง์คํฐ ์บ์ ๋ ธ๋Primary์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋์ผ๋ก Read Replica๊ฐ ๋ง์คํฐ ์บ์ ๋ ธ๋๋ก ์น๊ฒฉ๋๋ Failover ๊ธฐ๋ฅ์ด ์๋ํ๊ฒ ๋ฉ๋๋ค. ์ดํ ์ ๋ง์คํฐ ์บ์ ๋ ธ๋์์ ์ฐ๊ธฐ ์์ ์ด ์งํ๋๊ฒ ๋ฉ๋๋ค. Read Replica๋ Replication Group์ด๋ผ๋ ๋ ผ๋ฆฌ์ ์ธ ๊ฐ๋ ์ด ์์ ์์นํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Read Replica๋ ํ ๋ฆฌ์ ์์์ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญAZ์ ์์ฑํ ์ ์์ต๋๋ค.
Redis ์บ์ ๋ ธ๋๊ฐ ์ ๊ณตํ๋ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ ๋์ด์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ ๋ฒจ์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ์บ์ ๋ ธ๋์ ๋ถ์ฐํ์ฌ ์ ์ฅํ๋ ์ค๋ฉSharding์ ๊ตฌํํด์ผ ํฉ๋๋ค.์ค๋ฉ
์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์๋ ์ค๋ฉ์ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ข ๋ฅ๋ณ๋ก ์๋ฒ๋ฅผ ๋ถํ ํ๋ ๋ฐฉ์, ์ฌ์ฉ์ ์ด๋ฆ ์, ๋ ์ง ์ ๋ฑ์ผ๋ก ๋ถํ ํ๋ ๋ฐฉ์, ํด์ ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถํ ํ๋ ๋ฐฉ์ ๋ฑ ๋ค์ํ ๋ฐฉ์์ด ์์ต๋๋ค.