9. Amazon RDS, Aurora & ElastiCache
AWS Certified SAA-C02 ์ํ์ค๋น
AWS RDS
RDS๋ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์๋น์ค Relational Database Service
๋ฅผ ๋ํ๋ด๋ฉฐ SQL ์ฟผ๋ฆฌ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํ ์๋น์ค์ด๋ค.
- Postgres
- MySQL
- MariaDB
- Oracle
- Microsoft SQL Server
- Aurora - AWS Proprietary database
AWS RDS ์ฌ์ฉ์ ์ด์
- RDS๋ ๋ค์๊ณผ ๊ฐ์ ์๋น์ค๋ฅผ ๊ด๋ฆฌํ๋ค.
- ํ๋ก๋น์ ๋ ๋ฐ OS ํจ์น ์๋ํ
- ์ง์์ ๋ฐฑ์
๊ณผ ํน์ timestamp ๊ธฐ์ค ๋ณต๊ตฌ
(Point Time Restore)
- ๋์๋ณด๋ ๋ชจ๋ํฐ๋ง
- ์ฝ๊ธฐ ์ฑ๋ฅ ํฅ์์ ์ํ ์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ
- ์ฌํด๋ณต๊ตฌ
DZ(Disaster Recovery)
๋ฅผ ์ํ Multi AZ ์ ์ ๊ฐ๋ฅ - ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํ ์ ์ง๋ณด์
- ํ์ฅ์ฑ (vertical and horizontal)
- EBS ์คํ ๋ฆฌ์ง ๋ฐฑ์
(gp2 or io1)
๊ทธ๋ฌ๋ ์ธ์คํด์ค์ SSH๋ฅผ ๋ฐ๋ก ๊ฐ์ง ์๋ ์๋ค.
RDS Backup
RDS์์๋ ์๋์ผ๋ก ๋ฐฑ์ ์ด ์คํ๋๋ค.
RDS ์๋๋ฐฑ์
- ๋งค์ผ ์ํ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฒด์ ๋ํ ๋ฐฑ์ (์ ์ง ๊ด๋ฆฌ ๊ธฐ๊ฐ ์ค)
- RDS์ ์ํด ํธ๋์ญ์ ๋ก๊ทธ๊ฐ 5๋ถ ๋ง๋ค ๋ฐฑ์ ๋๋ค. โ ์ํ๋ ์์ ์ผ๋ก ๋ณต์ํ ์ ์๋ ๊ธฐ๋ฅ (๊ฐ์ฅ ์ค๋๋ ๋ฐฑ์ ์ 5๋ถ ์ ์ผ๋ก)
- ๋ณด์กด๊ธฐ๊ฐ์ 7์ผ (์ต๋ 35์ผ๊น์ง ๋๋ฆด ์ ์๋ค.)
DB ์ค๋ ์ท
- ์ฌ์ฉ์์ ์ํด ์๋์ผ๋ก ํธ๋ฆฌ๊ฑฐ ๋๋ค.
- ์ํ๋ ๊ธฐ๊ฐ ๋์ ๋ฐฑ์ ์ ๋ณด์กดํ ์ ์๋ค.
RDS Storage Auto Scaling
-
RDS DB ์ธ์คํด์ค์ ์คํ ๋ฆฌ์ง๋ฅผ ๋์ ์ผ๋ก ๋๋ฆด ์ ์๋๋ก ์ง์ํ๋ค.
-
RDS๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํ ๋ฆฌ์ง๊ฐ ๋ถ์กฑํจ์ ๊ฐ์งํ๋ฉด ์๋์ผ๋ก ํ์ฅ
-
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํ ๋ฆฌ์ง๋ฅผ ์๋ ํ์ฅ ๋ฐฉ์ง
-
Maximum Storage Threshold
์ต๋ ์คํ ๋ฆฌ์ง ์๊ณ๊ฐ(์ต๋ ์ ํ)
์ ์ค์ ํด์ผ ํ๋ค. -
์์ธกํ ์ ์๋ ์ํฌ๋ก๋
unpredictable workloads
๊ฐ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉ -
๋ชจ๋ RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ ์ง์ (MariaDB, MySQL, PostgreSQL, SQL Server, Oracle)
์๋์ผ๋ก ์คํ ๋ฆฌ์ง๊ฐ ๋ณ๊ฒฝ๋๋ ๊ฒฝ์ฐ- ์ฌ์ฉ๊ฐ๋ฅํ ์คํ ๋ฆฌ์ง๊ฐ ํ ๋น๋ ์คํ ๋ฆฌ์ง์ 10% ๋ฏธ๋ง์
- ์ต์ 5๋ถ ์ด์ ์ง์๋จ
- ๋ง์ง๋ง ์์ ํ 6์๊ฐ์ด ์ง๋จ
์ฝ๊ธฐ ํ์ฅ์ฑ์ ์ํ RDS ์ฝ๊ธฐ ๋ณต์ ๋ณธ(Read Replicas)
- ์ต๋ 5๊ฐ ๊น์ง ๊ฐ๋ฅ
- AZ ๋ด, AZ ๊ต์ฐจ, ๋ฆฌ์ ๊ต์ฐจ
- ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ ๋ณต์ ๋ ASYNC์ด๋ฉฐ ์ฝ๊ธฐ ๊ฒฐ๊ณผ๋ ์ผ๊ด๋๋ค.
- ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ ์์ฒด DB๋ก ์น๊ฒฉ๊ฐ๋ฅ
- ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ ํ์ฉํ๊ธฐ ์ํด์๋ ์ฐ๊ฒฐ ๋ฌธ์์ด์ ์ ๋ฐ์ดํธ ํด์ผ ํ๋ค.
RDS ์ฝ๊ธฐ ๋ณต์ ๋ณธ ์ฌ์ฉ ์ฌ๋ก
- ์ ํ๋ฆฌ์ผ์ด์ ๋ถ์์ ์คํํ๊ธฐ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ค๋ ๊ฒฝ์ฐ
- ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ ์์ฑ ํ ์๋ก์ด ์ํฌ๋ก๋์์ ์คํํ๋ ค๋ ๊ฒฝ์ฐ
- ํ๋ก๋์ ์ ์์ฉํ๋ก๊ทธ๋จ์ ์ํฅ๋ฐ์ง ์์
- ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ SELECT ์ ํ์ ๋ฌธ์๋ง ์ฌ์ฉ (INSERT, UPDATE, DELETE๋ ์ฌ์ฉ๋ถ๊ฐ๋ฅ)
๋คํธ์ํฌ ๋น์ฉ
- AZ๊ฐ ๋ฐ์ดํฐ๊ฐ ์ด๋ํ ๋ ๋คํธ์ํฌ ๋น์ฉ์ด ๋ฐ์ํ๋ค.
- RDS ์ฝ๊ธฐ ๋ณต์ ๋ณธ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ์ ๋ฆฌ์ ์ด๋ฉด ๋ณต์ ๋ณธ์ ์์๋ฃ๋ฅผ ์ง๋ถํ์ง ์๋๋ค.
RDS Multi AZ(Disaster Recovery)
- ๋๊ธฐ์
SYNC
์ผ๋ก ๋ณต์ - ํ๋์ DNS ์ด๋ฆ์ ๊ฐ์ง๊ณ ์๋์ผ๋ก
standby
๋ฐ์ด๋ฒ ์ด์ค์ ๋ณต๊ตฌ - ๊ฐ์ฉ์ฑ ์ฆ๊ฐ
- ๊ฐ์ฉ์์ญ์ ๋คํธ์ํฌ๊ฐ ์์ค๋๋ ๊ฒฝ์ฐ ์คํ ๋ฆฌ์ง๋ฅผ ๋ณต๊ตฌํ๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ ๊ฐ์ ์ด ์์
- Multi-AZ ๋ณต์ ๋ณธ์ ๋น์ฉ์ด ๋ฐ์ํ์ง ์์
- ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ ์ฌํด ๋ณต๊ตฌ๋ฅผ ์ํด ๋ค์ค AZ๋ก ์ค์ ๋๋ค.
๋จ์ผ AZ์์ ๋ค์ค AZ๋ก
-
zero downtime operation (DB ์ค์ง๊ฐ ๋ถํ์ํ๋ค)
-
๋ฐ์ดํฐ๋ฒ ์ด์ค์
modify
๋ฒํผ๋ง ํด๋ฆญํ๋ฉด ๋๋ค.๋ด๋ถ์ ์ผ๋ก ๋ฐ์ํ๋ ์ ์ฐจ- ์ค๋ ์ท์ด ์์ฑ
- ์ค๋ ์ท์์ ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ AZ์ ๋ณต์
- ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋๊ธฐํ ์ค์
RDS ๋ณด์ - Encryption
At rest ์ํธํ
- AWS KMS์ AES-256 ์ํธํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์คํฐ ๋ฐ ์ฝ๊ธฐ ์ ์ฉ ์ํธํ ๊ฐ๋ฅ
- ์ํธํ ์คํ ์๊ฐ์ ์ ์ ํด์ผ ํ๋ค.
- ๋ง์คํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํธํํ์ง ์์ผ๋ฉด ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ํธํ ํ ์ ์๋ค
- Oracle ๋ฐ SQL Server์์ TED(Transparent Data Encryption) ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. -> ๋ฐ์ดํฐ ์ํธํ์ ๋์ ์ ์
In-flight ์ํธํ
- SSL ์ธ์ฆ์๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก์ค ์ํธํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฐ๊ฒฐ ํ ๋ ์ ๋ขฐํ ์ ์๋ ์ธ์ฆ์๋ก SSL ์ต์
์ ์ ๊ณตํ์ฌ SSL์ ์ ๊ณตํ ์ ์๋ค.
๋ชจ๋ ํด๋ผ์ด์ธํธ๊ฐ SSL ์ฌ์ฉํ๊ฒ ํ๋ ค๋ฉด
PostgreSQL
- AWS RDS Console (Parameter Groups)
rds.force_ssl=1
MySQL
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด๋ถ์์ ์คํ
GRANT USAGE ON *.* TO 'mysqluser'@'%' REQUIRE SSL;
์ํธํ ์ต์
RDS ๋ฐฑ์ ์ํธํ
- ์ํธํ๋์ง ์์ RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๋ ์ท์ ์ํธํ๋์ง ์์.
- ์ํธํ ๋ RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง ์ค๋ ์ท์ด ์ํธํ ๋จ
- ์ค๋ ์ท์ ์ํธํ ๋ ์ค๋ ์ท์ผ๋ก ๋ณต์ฌํ ์ ์์
์ํธํ๋์ง ์์ RDS ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํธํ
- ์ํธํ๋์ง ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๋ ์ท์ ์์ฑํ๋ค.
- ์์ฑํ ์ค๋ ์ท์ ๋ณต์ฌํ๊ณ ๋ณต์ฌํ ์ค๋ ์ท์ ๋ํ ์ํธํ๋ฅผ ํ์ฑํ ํ๋ค.
- ์ํธํ ๋ ์ค๋ ์ท์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ํ๋ค.
- ์์ฉํ๋ก๊ทธ๋จ์์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ญ์ ํ๋ค.
RDS ๋ณด์ : Network & IAM
๋คํธ์ํฌ ๋ณด์
- RDS๋ ์ผ๋ฐ์ ์ผ๋ก public ์๋ธ๋ท์ด ์๋ private ์๋ธ๋ท์ ๊ตฌ์ถ๋๋ค.
- RDS ๋ณด์์ ๋ณด์ ๊ทธ๋ฃน์ ํ์ฉํ์ฌ ์๋ํ๋ฉฐ, RDS์ ํต์ ํ ์ ์๋ IP์ ๋ณด์ ๊ทธ๋ฃน์ ์ ์ดํ๋ค.
์ ๊ทผ ์ ์ด ๊ด๋ฆฌ
- IAM ์ ์ฑ ์ ํตํด(RDS API๋ฅผ ํตํด) AWS RDS๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ์ฌ์ฉ์๋ฅผ ์ ์ดํ ์ ์๋ค.
- ๊ธฐ์กด ์ฌ์ฉ์ ๋ฐ ์ํธํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ก๊ทธ์ธ ํ ์ ์๋ค.
- IAM ๊ธฐ๋ฐ ์ธ์ฆ์ ์ฌ์ฉํ์ฌ RDS MySQL ๋ฐ PostgreSQL์ ๋ก๊ทธ์ธํ ์ ์๋ค.
RDS IAM Authentication
- IAM ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ฆ์ MySQL ๋ฐ PostgreSQL๊ณผ ํจ๊ป ์๋ํ๋ค.
- ๋น๋ฐ๋ฒํธ๋ ํ์ํ์ง ์๊ณ IAM & RDS API ํธ์ถ์ ํตํด ํ๋ํ ์ธ์ฆ ํ ํฐ๋ง ํ์ํ๋ค.
- ์ธ์ฆํ ํฐ์ 15๋ถ์ lifetime์ ๊ฐ๋๋ค.
์ฅ์
- ๋คํธ์ํฌ์ in/out์ SSL์ ํตํด ์ํธํ๋๋ค.
- IAM์์ DB ๋์ ์ ์ฌ์ฉ์๋ฅผ ๊ด๋ฆฌ
- IAM ์ญํ ๋ฐ EC2 ์ธ์คํด์ค ํ๋กํ์ผ์ ํ์ฉํ์ฌ ์์ฝ๊ฒ ํตํฉ ๊ฐ๋ฅํ๋ค.
RDS ๋ณด์ ์์ฝ
Encryption at rest
- DB ์ธ์คํด์ค๋ฅผ ์ฒ์ ์์ฑํ ๋๋ง ์ํ
- ์ํธํ ๋์ง ์์ DB -> ์ค๋ ์ท ์์ฑ -> ์ค๋ ์ท์ ์ํธํ๋ ๊ฒ์ผ๋ก ๋ณต์ฌ -> ์ค๋ ์ท์์ DB ์์ฑ
์ฌ์ฉ์๊ฐ ํด์ผํ ์ผ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณด์๊ทธ๋ฃน์ ports/ip/security group ์ธ๋ฐ์ด๋ ๊ท์น ํ์ธํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ๋ชจ๋ ์ฌ์ฉ์ ์์ฑ ๋ฐ ๊ถํ์ ๊ด๋ฆฌ (IAM์ ํตํ)
- public ์ก์ธ์ค๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑ
- ํ๋ผ๋ฏธํฐ ๊ทธ๋ฃน๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ SSL ์ฐ๊ฒฐ๋ง ํ์ฉํ๋๋ก ๊ตฌ์ฑํ์ฌ ์ํธํ๋๋์ง ํ์ธ
AWS ํ๋์ผ
- SSH ์ก์ธ์ค๊ฐ ๋ฐ์ํ์ง ์๊ฒ ํจ
- ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก DB ํจ์น๋ฅผ ํ์ง ์์๋ ๋จ
- ์ฌ์ฉ์๊ฐ ์๋์ผ๋ก OS ํจ์น๋ฅผ ํ์ง ์์๋ ๋จ
- ์ฌ์ฉ์๊ฐ ๊ธฐ๋ณธ ์ธ์คํด์ค๋ฅผ ํ์ธํ์ง ์์๋ ๋จ
Amazon Aurora
- Aurora๋ AWS์ ๋ ์ ๊ธฐ์ (๊ทธ๋ฌ๋ ์คํ์์ค๋ ์๋๋ค.)
- Postgres ๊ทธ๋ฆฌ๊ณ MySQL์ ๋ชจ๋ Aurora DB๋ก ์ง์๋๋ค.
- ๋๋ผ์ด๋ฒ๊ฐ Postgres, mysql ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ ๊ฒ์ฒ๋ผ ์๋ํ๋ ๊ฒ์ ์๋ฏธ
- Aurora๋ AWS ํด๋ผ์ฐ๋์ ์ต์ ํ๋์ด ์์ผ๋ฉฐ, RDS์ MySQL ๋ณด๋ค 5๋ฐฐ, RDS์ Postgres ๋ณด๋ค 3๋ฐฐ ํฅ์๋ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค.
- ์คํ ๋ฆฌ์ง๋ ์๋์ผ๋ก 10GB, ์ต๋ 128 TB ๊น์ง ์ฆ๊ฐ
- MySQL์ 5๊ฐ์ ๋ณต์ ๋ณธ๋ง ๊ฐ์ง ์ ์๋ ๋ฐ๋ฉด Aurora๋ 15๊ฐ์ ๋ณต์ ๋ณธ์ ๊ฐ์ง ์ ์๋ค.
- ๋ณต์ ํ๋ก์ธ์ค๊ฐ ๋ ๋น ๋ฅด๋ค
- ์ฆ๊ฐ์ ์ธ ์ฅ์ ๋ณต๊ตฌ. native high availability (HA)
- RDS์ ๋นํด ๋น์ฉ์ด 20% ๋์ง๋ง ๊ท๋ชจ๊ฐ ํด ๊ฒฝ์ฐ ๋ ํจ์จ์
AWS Aurora์ ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ์ฝ๊ธฐ ํ์ฅ์ฑ
- ์ฐ๊ธฐ์ ๊ฒฝ์ฐ 4๊ฐ์ ๋ณต์ ๋ณธ๋ง ์์ผ๋ฉด ๋๋ค.
- ์ฝ๊ธฐ ์ 3๊ฐ์ ๋ณต์ ๋ณธ๋ง ์์ผ๋ฉด ๋๋ค.
- peer-to-peer ๋ณต์ ๋ฅผ ํตํด ์๊ฐ ๋ณต๊ตฌํ๋ค.
- ์๋ฐฑ๊ฐ์ ๋ณผ๋ฅจ์ ๊ฑธ์ณ ์คํ ๋ฆฌ์ง๋ฅผ ์คํธ๋ฆฌํ
- ์ฐ๊ธฐ ๊ฐ๋ฅ ๋ง์คํฐ ํ๋์ด๋ค.
- 30์ด ์ด๋ด์ ์๋์ผ๋ก ๋ง์คํฐ ์ฅ์ ๋ณต๊ตฌ ์คํ
- ๋ง์คํฐ + ์ต๋ 15๊ฐ์ ์ฝ๊ธฐ ์ ์ฉ ์ ๊ณต
- ๋ฆฌ์ ๊ฐ ์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ์ง์
Aurora DB Cluster
- Writer Endpoint : ํญ์ ๋ง์คํฐ๋ฅผ ๊ฐ๋ฆฌํด
- Reader Endpoint : ์คํ ์ค์ผ์ผ๋ง ๋ ์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ ๋ก๋ ๋ฐธ๋ฐ์ฑ
Aurora์ ๊ธฐ๋ฅ
- ์ฅ์ ๋ณต๊ตฌ ์๋ํ
- ๋ฐฑ์ ๊ณผ ๋ณต์
- ๊ฒฉ๋ฆฌ ๋ฐ ๋ณด์
- ์ ๊ณ ๊ท์ ์ค์
- ํธ์ ๋ฒํผ ์ค์ผ์ผ๋ง
- ์๋ํ ๋ ๋ฌด์ค๋จ ํจ์น
- ํฅ์๋ ๋ชจ๋ํฐ๋ง
- ์ ๊ธฐ ์ ์ง๋ณด์
Backtrack
: ๋ฐฑ์ ์ ์ฌ์ฉํ์ง ์๊ณ ์ธ์ ๋ ์ง ๋ฐ์ดํฐ๋ฅผ ๋ณต์
Aurora ๋ณด์
- RDS์ ๋น์ทํ ์์ค์ ๋ณด์ (๊ฐ์ ์์ง์ ์ฌ์ฉ)
- KMS ์ฌ์ฉํ at rest ์ํธํ
- ์๋ํ๋ ๋ฐฑ์ , ์ค๋ ์ท ๊ทธ๋ฆฌ๊ณ ์ํธํ๋ ๋ณต์ ๋ณธ
- SSL์ ์ฌ์ฉํ ์ ์ก์ค ์ํธํ (MySQL, Postgres์ ๊ฐ์)
- IAM ํ ํฐ์ ์ฌ์ฉํ ์ธ์ฆ์ด ๊ฐ๋ฅ (RDS์ ๊ฐ์ ๋ฐฉ์)
- ์ฌ์ฉ์๋ ๋ณด์๊ทธ๋ฃน์ ํตํด ์ธ์คํด์ค๋ฅผ ๋ณดํธํด์ผ ํ๋ค.
- SSH์ ์ ๊ทผํ ์ ์๋ค.
Aurora Replicas
Aurora Auto Scaling
Aurora ์ธ์คํด์ค 3๊ฐ๊ฐ ์๋ค๊ณ ๊ฐ์
- Writer Endpoint : 1๊ฐ
- Reader Endpoint : 2๊ฐ
๋ง์ ์ฝ๊ธฐ ์์ฒญ์ผ๋ก CPU์ฌ์ฉ๋ ์ฆ๊ฐ
- Aurora ๋ณต์ ๋ณธ์ด ์ถ๊ฐ๋๊ณ ์๋์ผ๋ก Reader Endpoint๊ฐ ์ ๋ณต์ ๋ณธ์ ํฌํจํ๋๋ก ํ์ฅ
- CPU ์ฌ์ฉ๋์ ๋ฎ์ถ๊ธฐ ์ํด ๋ถ์ฐ๋ ๋ฐฉ์์ผ๋ก ์๋ก์ด ๋ณต์ ๋ณธ์ด ํธ๋ํฝ ์์
Aurora Custom Endpoints
- ์ฌ์ฉ์ ์ง์ Endpoints๋ก Aurora ์ธ์คํด์ค์ ํ์ ์งํฉ์ ์ ์
- ์์) ํน์ ๋ณต์ ๋ณธ์ ๋ํ ๋ถ์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ๋
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์ ์ ์ Endpoints๋ฅผ ์ ์ํ ํ Reader Endpoint๋ ์ ์ํ์ง ์๋๋ค.
Aurora ๋ ์ข ๋ฅ ๋ณต์ ๋ณธ์ด ์๋ค๊ณ ๊ฐ์
- ๋ณต์ ๋ณธ db.r3.large : 2๊ฐ
- ๋ณต์ ๋ณธ db.r5.xlarge : 2๊ฐ - ์ฉ๋์ด ๋ ํผ
ํน์ ์ฝ๊ธฐ์ ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ์ ์ฟผ๋ฆฌ ์คํ
- ์ฉ๋์ด ๋ ํฐ ์ธ์คํด์ค ์๋ธ์ ์ ์ฌ์ฉ์ endpoint๋ก ์ ์
Aurora Serverless
- ์๋ํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์คํด์ค ๋ฐ ์ค์ ์ฌ์ฉ๋์ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํ ์ค์ผ์ผ๋ง ์ ๊ณต
- ๊ฐํ์ ์ด๊ฑฐ๋ ์์ธกํ ์ ์๋ ์ํฌ๋ก๋์ ์ ํฉ
- ์ฉ๋ ์ธก์ ์ด ํ์ ์๋ค
- ์ด๋น ๋น์ฉ ์ง๋ถ. ๋น์ฉ์ธก๋ฉด์์๋ ํจ๊ณผ์
- Aurora์์ ๊ด๋ฆฌํ๋ Proxy Fleet๊ณผ ํต์
- ๋ฐฑ์๋์์๋ ์๋ฒ๋ฆฌ์ค ๋ฐฉ์์ผ๋ก ์ํฌ๋ก๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ Aurora ์ธ์คํด์ค ์์ฑ
Multi-Master
- ์ฐ๊ธฐ ์ ์ฉ ๋ง์คํฐ์ ์ฆ๊ฐ์ ์ธ ์ฅ์ ์กฐ์น๊ฐ ํ์ํ ๊ฒฝ์ฐ.(Writer ๋ ธ๋์ ๊ณ ๊ฐ์ฉ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ)
- ๋ชจ๋ ๋ ธ๋๊ฐ ์ฝ๊ธฐ์ ์ฐ๊ธฐ ์์ ์ ์งํ
- ์ฐ๊ธฐ ๋ ธ๋๊ฐ ๋ค์ด๋ ๊ฒฝ์ฐ ์ฝ๊ธฐ ๋ณธ์ ๋ณธ์ ์๋ก์ด ๋ง์คํฐ๋ก ์น๊ฒฉ
๊ธ๋ก๋ฒ Aurora
Aurora ๋ฆฌ์ ๊ฐ ์ฝ๊ธฐ ๋ณต์
- ์ฌํด๋ณต๊ตฌ์ ์ ์ฉ
- ๊ฐ๋จํ๊ฒ ๊ตฌํ
Aurora Global Database(์ถ์ฒ)
- ํ๋์ ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ธฐ๋ณธ ๋ฆฌ์
Primary Region
- 5๊ฐ๊น์ง ๋ณด์กฐ ๋ฆฌ์ ์ค์ ๊ฐ๋ฅ : ์ฝ๊ธฐ ์ ์ฉ์ด๋ฉฐ, ๋ณด์กฐ ๋ฆฌ์ ๋น ๋์ 1์ด ๋ฏธ๋ง
- ๋ฆฌ์ ๋น ์ต๋ 16๊ฐ์ ์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ์ ๊ฐ์ง ์ ์๋ค.
- ๋๊ธฐ ์๊ฐ ๋จ์ถ์ ๋์
- RTO๊ฐ ์์ผ๋ฏ๋ก ๋ณต๊ตฌ ์๊ฐ ๋ชฉํ๋ 1๋ถ ๋ฏธ๋ง
Aurora Machine Learning
- SQL์ ํตํด ML ๊ธฐ๋ฐ์ ์์ธก์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐ
- Aurora์ AWS ML ์๋น์ค๋ฅผ ์ฝ๊ณ , ์ต์ ํ, ์์ ํ๊ฒ ํตํฉํ ์ ์๋ค.
- ์ง์๋๋ ์๋น์ค
- Amazon SageMaker (use with any ML model)
- Amazon Comprehend (for sentiment analysis)
- ML ๊ฒฝํ์ด ์์ด๋ ๋๋ค.
- ์ฌ์ฉ์ฌ๋ก
- ์ฌ๊ธฐํ์ง, ๊ด๊ณ ํ๊ฒํ , ๊ฐ์ ๋ถ์, ์ ํ ์ถ์ฒ
Amazon ElastiCache
- ์บ์๋ ๋์ ์ฑ๋ฅ๊ณผ ๋ฎ์ ์ง์ฐ ์๊ฐ์ ๊ฐ์ง in-memory ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฏธํ๋ค.
- RDS ๋์ผํ ๋ฐฉ์์ผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌ
- Redis์ Memcached์ ๊ฐ์ ์บ์ ๊ธฐ์ ๊ด๋ฆฌ
- ์ฝ๊ธฐ ์ง์ฝ์ ์ธ ์ํฌ๋ก๋ ๋ถํ๋ฅผ ์ค์ผ ์ ์๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ํ๋ฅผ ๊ด๋ฆฌํ์ง ์์๋ ๋๋ค.
- OS ์ด์, ํจ์น, ์ต์ ํ, ์ค์น, ๊ตฌ์ฑ, ๋ชจ๋ํฐ๋ง, ์ฅ์ ๋ณต๊ตฌ, ๋ฐฑ์ ๋ฑ์ ๊ธฐ๋ฅ์ AWS์์ ์ฃผ๊ดํ๋ค.
- ElasticCache๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ํฅ์์ํฌ ์ ์๋ค.
ElastiCache Solution Architecture
DB Cache
- ์ ํ๋ฆฌ์ผ์ด์ ์ ElasticCache์์ ์ฟผ๋ฆฌ ํ ์ ์๋ ๊ฒฝ์ฐ RDS์์ ๊ฐ์ ธ์ ElasticCache์ ์ ์ฅํ๋ค.
- RDS์ ๋ถํ ์ํ ์ง์
- ์บ์์๋ ์ต์ ๋ฐ์ดํฐ๋ง ์ฌ์ฉ ํ ์ ์๋๋ก ๋ฌดํจํ ์ ๋ต ํ์
์ฌ์ฉ์ ์ธ์ ์ ์ฅ
- ์ฌ์ฉ์์ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ElasticCache์ ์ ์ฅ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ElasticCache์์ ์ง์ ์ฌ์ฉ์์ ์ธ์ ์บ์๋ฅผ ๊ฒ์
- ๋ค๋ฅธ ์ธ์คํด์ค๋ก ์ ๊ทผ์์๋ ์ฌ์ฉ์ ์ฌ๋ก๊ทธ์ธ์ด ํ์ ์์
Redis vs Memcached
Redis
- ์๋ํ ๋ ์ฌํด ๋ณต๊ตฌ + ๋ค์ค AZ
- ์ฝ๊ธฐ ๋ณต์ ๋ณธ์ ํตํ ์ฝ๊ธฐ ํ์ฅ ๋ฐ ๊ณ ๊ฐ์ฉ์ฑ
- AOP ์ง์์ฑ์ ์ด์ฉํ ๋ด๊ตฌ์ฑ
- ๋ฐฑ์ ๋ฐ ๋ณต์ ๊ธฐ๋ฅ
Memcached
- ๋ฐ์ดํฐ๋ฅผ ํํฐ์ ๋ ํ ๋ค์ค ๋ ธ๋ (sharding)
- ๊ฐ์ฉ์ฑ์ด ๋ฎ์
- ๋ณต์ X. ์ง์์ฑ X
- ๋ฐฑ์ ๋ฐ ๋ณต์ ๊ธฐ๋ฅ ์์
- ๋ค์ค ์ค๋ ๋ ์ค๊ณ
- ๋ถ์ฐ ์บ์
Cache Security
- IAM authentication ์ง์ํ์ง ์์
- ElasticCache๋ AWS API ์์ค ๋ณด์์์๋ง ์ฌ์ฉ
Redis Auth
- ๋ ๋์ค ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ ๋ ๋น๋ฐ๋ฒํธ๋ ํ ํฐ์ ์ค์ ํ ์ ์๋ค.
- ์ด๋ security group์ ๋ํ ์ถ๊ฐ์ ์ธ ์์ค์ ๋ณด์
- SSL ์ ์ก ์ค ์ํธํ ์ง์
Memcached
- SASL ๊ธฐ๋ฐ ์ธ์ฆ ์ง์
๋ฐ์ดํฐ ๋ก๋ ํจํด
Lazy Loading
- ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ์บ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ฉ ํ ์ ์๋ค.
Write Through
- DB์ ๋ฐ์ดํฐ๋ฅผ ์ธ ๋ ์บ์ ๋ฐ์ดํฐ ์ถ๊ฐ ๋ฐ ์ ๋ฐ์ดํธ ์์ฒญ
Session Store
- ์์ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์บ์์ ์ ์ฅ (TTL ๊ธฐ๋ฅ ์ฌ์ฉ)
Redis Use Case
- ๊ฒ์ด๋ฐ ๋ฆฌ๋๋ณด๋ ๊ณ์ฐ
- Redis Sorted set์ ๊ณ ์ ์ฑ๊ณผ ์์ ๋ชจ๋๋ฅผ ๋ณด์ฅํ๋ค.
- ์ ์์๊ฐ ์ถ๊ฐ ๋ ๋๋ง๋ค ์ค์๊ฐ์ผ๋ก ์์ ์ฑ ์