๋ฐ์ํ
Cache์ Caching
- ์ปดํจํฐ ๊ณผํ์์ ์บ์(Cache)๋ ์ผ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณ ์ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง ๊ณ์ธต์ ๋๋ค.
- ์บ์ฑ(Caching)์ ์บ์ ๋๋ ์์ ์ ์ฅ ์์น์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ๋ณด๋ค ๋น ๋ฅด๊ฒ ์ก์ธ์คํ ์ ์๋๋ก ํ๋ ํ๋ก์ธ์ค์ ๋๋ค.
- ์บ์์ ์บ์ฑ์ ์ฃผ์ ๋ชฉ์ ์ ๋ ๋๋ฆฐ ์คํ ๋ฆฌ์ง์ ์ ๊ทผํ๋ ๊ฒ์ ์ค์์ผ๋ก์จ ์ฑ๋ฅ์ ๋์ด๋ ๊ฒ์ ๋๋ค.
- ์บ์ฑ์ ์ฌ์ฉํ๋ฉด ์ด์ ์ ๊ฒ์ํ๊ฑฐ๋ ๊ณ์ฐํ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์๋๋ฅผ ์ํด ์ฉ๋์ ์ ์ถฉํ๋ ์บ์๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๊ณ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ถ๋ง ์ ์ฅํฉ๋๋ค.
- ์บ์๋ OS, CDN, DNS, ์น ์ ํ๋ฆฌ์ผ์ด์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ ๋ค์ํ ๊ณณ์์ ํ์ฉ๋๊ณ ์์ต๋๋ค.
- ์บ์์ ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก RAM(Random Access Memory)๊ณผ ๊ฐ์ด ๋น ๋ฅด๊ฒ ์ก์ธ์คํ ์ ์๋ ํ๋์จ์ด์ ์ ์ฅ๋ฉ๋๋ค.
- ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์กด์ฌํ๋ ๊ฒฝ์ฐ๋ฅผ ์บ์ ์ ์ค(cache hit)์ด๋ผ๊ณ ํ๋ฉฐ, ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ์บ์ ๋น์ ์ค(cache miss)์ด๋ผ๊ณ ํฉ๋๋ค.
- ์บ์ ์ ์ค๋ฅ (hit rate)๋ฅผ ๋์ด๊ธฐ ์ํด์๋ TTL(Time to Live)๊ณผ ์บ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ ํ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- AWS๋ In-memory cache ์๋น์ค๋ก ElastiCache์ In-memory database๋ก MemoryDB๋ฅผ ์ ๊ณตํฉ๋๋ค.
Caching Best Practices
- ๋ฐ์ดํฐ๊ฐ ์บ์ฑ์ ์ ํฉํ์ง ํ์ธํด์ผํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๊ฑฐ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ฐ๋ผ ์บ์ฑ์ด ์ ์ ํ์ง ์์ ์ ์์ต๋๋ค.
- Lazy caching ๋๋ lazy population, cache-aside๋ผ๊ณ ํ๋ ์บ์ฑ ๋์์ธ ํจํด์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์บ์ฑ ํํ์ ๋๋ค.
- Lazy caching์ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์บ์์ ์๋์ง ํ์ธํ๊ณ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด origin์ ์ฟผ๋ฆฌํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ๊ณ ์บ์์ ์ ์ฅํ๋ ๋ฐฉ์์ ๋๋ค.
- Write-through๋ origin์ ๋ฐ์ดํฐ๊ฐ ์ ๋ฐ์ดํธ๋ ๋ ์ค์๊ฐ์ผ๋ก ์บ์๋ฅผ ์ ๋ฐ์ดํธํ๋ ์ ๋ต์ ๋๋ค.
- Write-through๋ก ๊ฐฑ์ ๋๋ cache ์ธ์ ๋ชจ๋ ์บ์์ TTL(Time to Live)๋ฅผ ์ ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
ElastiCache
- ElastiCache๋ Redis์ Memcached์ ์๋ฒฝํ๊ฒ ํธํ๋๋ ์์ ๊ด๋ฆฌํ In-memory cache ์๋น์ค์ ๋๋ค.
- ElastiCache๋ ์ฝ๊ธฐ ์๋๊ฐ ๋๋ฆฐ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋์ ์ฝ๊ธฐ ์๋๊ฐ ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋๋ก ํ์ฌ ์ฝ๊ธฐ ์์ ์ด ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
- ElastiCache๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ์บ์๋ก ์ฌ์ฉ๋๊ฑฐ๋ ์ธ์ ์ ์ฅ์, ๊ฒ์ ์์ ๋์๋ณด๋, ์ ๋๋ฆฌํฑ์ค ๋ฐ์ดํฐ ์ ์ฅ์ ๋ฑ์ ์์ ๋ฐ์ดํฐ ์คํ ์ด๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- ElastiCache๋ CloudWatch ๋ชจ๋ํฐ๋ง์ ํตํฉ๋์ด ์บ์ ๋ฆฌ์์ค์ ๊ด๋ จ๋ ์ฃผ์ ์ฑ๋ฅ ์งํ์ ๋ํ ํฅ์๋ ๊ฐ์์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ElastiCache๋ ์ํฐํ๋ผ์ด์ฆ๊ธ ๋ณด์ ๋ฐ ์ ๋ขฐ์ฑ์ ์ ๊ณตํฉ๋๋ค.
ElastiCache Serverless
- ElastiCache Serveless๋ ์ธํ๋ผ ํ๋ก๋น์ ๋์ด๋ ์ฉ๋ ๊ณํ(capacity planning) ์์ด ElastiCache๋ฅผ ์์ํ ์ ์๋ ์ต์ ์ผ๋ก 2023๋ re:Invent์์ ๊ณต๊ฐ๋์์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ฐ ๋คํธ์ํฌ ์ฌ์ฉ๋ฅ ์ ๋ชจ๋ํฐ๋งํ์ฌ ์ ์ ํ ์ฉ๋ ๊ณํ์ ์ธ์ฐ๋ ๊ณผ์ ์์ด๋ ๊ฐ์ฅ ๊น๋ค๋ก์ด ์ํฌ๋ก๋์ ๋ํด ์บ์๋ฅผ ์ด์ํ ์ ์์ต๋๋ค.
- ElastiCache Serverless๋ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญ์ ๊ฑธ์ณ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ณต์ ํ๊ณ ๊ฐ ์บ์์ ๋ํด 99.99% ๊ฐ์ฉ์ฑ ์๋น์ค ์์ค ๊ณ์ฝ(SLA)์ ์ ๊ณตํฉ๋๋ค.
- ElastiCache๋ ์ ๊ฒฐ์ ๋น์ฉ์ด ์๊ณ ์ฌ์ฉํ ๋ฆฌ์์ค ๋งํผ์ ๋น์ฉ๋ง ์ง๋ถํ๋ฉด ๋ฉ๋๋ค. ๋น์ฉ์ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง์ ElastiCache Processing Units(ECPUs)์ผ๋ก ์ฐ์ ๋ฉ๋๋ค.
ElastiCache Redis์ Memcached
- Redis ์์ง์ backup๊ณผ restore, fail-over์ ์ง์ํ์ง๋ง Memcached ์์ง์ ์ง์ํ์ง ์์ต๋๋ค.
- Redis ์์ง์ replication์ ํตํด ์ฌ๋ฌ๊ฐ์ ๋ณต์ ๋ณธ์ผ๋ก ์ฝ๊ธฐ๋ฅผ ํ์ฅํ ์ ์์ผ๋ Memcached ์์ง์ ์ง์ํ์ง ์์ต๋๋ค.
- Redis ์์ง์ ์ฑ๊ธ ์ค๋ ๋์ด์ง๋ง Memcached ์์ง์ ๋ฉํฐ ์ค๋ ๋๋ฅผ ์ง์ํฉ๋๋ค.
- Redis ์์ง์ Memcached ์์ง์ ๋นํด list, set, sorted set, hyperloglogs ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํฉ๋๋ค.
- Redis ์์ง์ Lua ์คํฌ๋ฆฝํ , Geospatial ๋ฐ์ดํฐ, Pub/Sub ๋ฉ์์ง์ ์ง์ํ์ง๋ง Memcached ์์ง์ ์ง์ํ์ง ์์ต๋๋ค.
ElastiCache Redis์ MemoryDB Redis
- ElastiCache Redis๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๋ฐ์ดํฐ ์คํ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์๋น์ค์ ๋๋ค. ์ํฌ๋ก๋๋ฅผ ์บ์ฑํ์ฌ ๋ฐ์ดํฐ ์ฝ๊ธฐ ์๋๋ฅผ ๊ฐ์ํํ๋ ค๋ฉด ElastiCache Redis๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- MemoryDB Redis๋ ๋ด๊ตฌ์ฑ์ด ๋ฐ์ด๋ in-memory ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ด๊ณ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉํฉ๋๋ค. ๋ด๊ตฌ์ฑ๊ณผ ์ฑ๋ฅ์ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์บ์๋ก ๋์ฒดํ๊ณ ์ ํ๋ค๋ฉด MemoryDB๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ฐ์ํ
'๐ AWS > AWS Developer - Associate' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] Developer Associate #7 CloudFront (0) | 2024.08.03 |
---|---|
[AWS] Developer Associate #6 S3 (0) | 2024.07.26 |
[AWS] Developer Associate #4 ์ปจํ ์ด๋(ECR, ECS, EKS) (0) | 2024.05.12 |
[AWS] Developer Associate #3 Elastic Load Balancing(ELB) (0) | 2024.04.14 |
[AWS] Developer Associate #2 Relational DB(RDS, Aurora) (0) | 2024.04.01 |