๋ฐ์ํ
RDB(Relational Database)๋?
- RDB๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ(Table)๋ก ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ ์ผ๋ก ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ(Relation)์ ์ ์ํ๊ณ SQL(Structured Query Language)๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์กฐ์ํ ์ ์์ต๋๋ค.
- RDB์์ ํ
์ด๋ธ์ด๋ ๋ฐ์ดํฐ์ ์งํฉ์ผ๋ก ๊ฐ ํ
์ด๋ธ์ ์ด(Column)์ ๋ฐ์ดํฐ์ ์์ฑ(Attribute)์ ๋ํ๋ด๊ณ ํ
์ด๋ธ์ ํ(Row)๋ ๋ฐ์ดํฐ์ ๋ ์ฝ๋(Record)๋ฅผ ๋ํ๋
๋๋ค.
์๋ฅผ ๋ค์ด ๊ณ ๊ฐ ์ ๋ณด ํ ์ด๋ธ์์ ‘์ด๋ฆ, ๋์ด, ์ฃผ์’๋ ๋ฐ์ดํฐ์ ์์ฑ์ ๋ํ๋ด๊ณ ‘ํ๊ธธ๋, 26, ์์์’๋ ๋ฐ์ดํฐ์ ๋ ์ฝ๋๋ก ์ฌ๋ฌ ๊ฐ์ง ๋ฐ์ดํฐ ์์ฑ๋ค์ ๊ฐ์ ํฌํจํฉ๋๋ค. - AWS์ ๋ํ์ ์ธ RDB ์๋น์ค๋ก Amazon RDS(Relational Database Service)๊ฐ ์์ต๋๋ค.
RDS๋?
- Amazon RDS๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(Relational Database Service)๋ก DB ํ๋ก๋น์ ๋๊ณผ ์๋ ๋ฐฑ์ , OS ํจ์น, ๋ชจ๋ํฐ๋ง์ ์ ๊ณตํฉ๋๋ค.
- RDS๋ DB ์์ง์ผ๋ก MySQL, MariaDB, Oracle, Postgres, Microsoft SQL Server, Db2, Aurora(AWS์์ ์ง์ํ๋ ์์ง) ๋ฅผ ์ง์ํฉ๋๋ค.
- RDS DB Instance๋ DB ์์ง์ ์คํํ๋ ๊ฐ์ ์๋ฒ๋ก ์ฌ์ฉ์๊ฐ ์ง์ SSH๋ก ์ ๊ทผํ ์ ์์ผ๋ฉฐ OS ์ ์ด๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- RDS์ DB Instance๋ VPC์ ์์ฑํ๊ณ ์คํ ๋ฆฌ์ง๋ก Amazon Elastic Block Store(Amazon EBS) ๋ณผ๋ฅจ์ ์ฌ์ฉํฉ๋๋ค.
- DB instance identifier(์๋ณ์)๋ ๊ณ ๊ฐ์ด ์ง์ ํ๋ DB instance์ ์ด๋ฆ์ผ๋ก ๋์ผํ AWS ๊ณ์ ๊ณผ ๋ฆฌ์ ๋ด์์๋ ์ค๋ณต๋์ง ์์์ผ ํฉ๋๋ค.
Aurora๋?
- Amazon Aurora๋ MySQL ๋ฐ PostgreSQL๊ณผ ํธํ๋๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ผ๋ก AWS์์ ๋ง๋ค์์ต๋๋ค.
- Aurora๋ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค์ธ Amazon Relational Database Service(Amazon RDS)์ ์ผ๋ถ์ ๋๋ค.
- Aurora์ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฑฐ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ MySQL์ ์ฒ๋ฆฌ๋์ ์ต๋ 5๋ฐฐ, PostgreSQL์ ์ฒ๋ฆฌ๋์ ์ต๋ 3๋ฐฐ ์ ๊ณตํ ์ ์์ต๋๋ค.
- Aurora๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๊ณ ๊ด๋ฆฌํ๋๋ฐ ๊ฐ์ฅ ์ด๋ ค์ด ์ธก๋ฉด ์ค ํ๋์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๋ง ๋ฐ ๋ณต์ ๋ฅผ ์๋ํํ๊ณ ํ์คํํฉ๋๋ค.
- Aurora DB ํด๋ฌ์คํฐ๋ 1๊ฐ ์ด์์ DB ์ธ์คํด์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ํด๋ฌ์คํฐ ๋ณผ๋ฅจ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Aurora DB ํด๋ฌ์คํฐ์์ Primary ์ธ์คํด์ค ๋ฐ Replica๋ ํด๋ฌ์คํฐ ๋ณผ๋ฅจ ๋ฐ์ดํฐ๊ฐ ๋จ 1๊ฐ์ ๋ ผ๋ฆฌ ๋ณผ๋ฅจ(ํด๋ฌ์คํฐ ๋ณผ๋ฅจ)์ผ๋ก ํ์๋ฉ๋๋ค.
- Aurora ํด๋ฌ์คํฐ ๋ณผ๋ฅจ์ 3๊ฐ์ AZ์ 6๊ฐ์ ๋ฐ์ดํฐ ๋ณต์ฌ๋ณธ์ ๊ฐ์ต๋๋ค.
- ํด๋ฌ์คํฐ ๋ณผ๋ฅจ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋๊ฑด Primary instance๋ง ๊ฐ๋ฅํฉ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก Auroa๋ RDS์ ๋นํด ๋น์ฉ์ด 20% ์ ๋ ๋น์๋๋ค.
RDS์ Storage Auto Scaling
- Storage Autoscaling(์คํ ๋ฆฌ์ง ์๋ ํฌ๊ธฐ ์กฐ์ )์ DB ์ธ์คํด์ค์ ์ฌ์ ๊ณต๊ฐ์ด ๋ถ์กฑํ ๊ฒ์ ๊ฐ์งํ๋ฉด ์๋์ผ๋ก ์คํ ๋ฆฌ์ง๋ฅผ ํ์ฅํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
- ์ํฌ๋ก๋ ์์ธกํ ์ ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์๊ฒ ์๋นํ ์ ์ฉํ ๊ธฐ๋ฅ์ ๋๋ค.
- ์คํ ๋ฆฌ์ง๋ฅผ ํ์ฅํ๊ธฐ ์ํด DB๋ฅผ ์ค๋จํ๋ ๋ฑ์ ์ด๋ค ์์ ๋ ํ ํ์๊ฐ ์์ต๋๋ค.
- RDS๋ Storage Auto Scaling ๊ธฐ๋ฅ์ ํ์ฑํํด์ผ ํ์ง๋ง Aurora๋ ๋ณ๋๋ก Storage Auto Scaling ๊ธฐ๋ฅ์ ํ์ฑํํ์ง ์์๋ Storage๊ฐ ์๋์ผ๋ก ํ์ฅ๋ฉ๋๋ค.
RDS์ Aurora์ Read replica
- Read replica(์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ)์ Primary DB ์ธ์คํด์ค์ ์ฝ๊ธฐ ์ํฌ๋ก๋๋ฅผ ๋ถ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- RDS์ Read replica๋ Primary DB ์ธ์คํด์ค์ ๋น๋๊ธฐ ๋ณต์ (Asynchronous replication)๋ฉ๋๋ค.
- Aurora Replica(์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ)์ Primary ์ธ์คํด์ค์ ๋์ผํ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง๋ฅผ ๊ณต์ ํ๋ฏ๋ก ๋ฐ์ดํฐ๋ฅผ Replica ๋ ธ๋์ ๋ณต์ฌํ ํ์๊ฐ ์์ต๋๋ค.
- Aurora๋ Primary์ Replica๊ฐ ๋ ผ๋ฆฌ์ ์ผ๋ก ๋์ผํ ๋ณผ๋ฅจ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ Primary๊ฐ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด Replica๋ก Fail-over(์ฅ์ ์กฐ์น) ํ ์ ์์ต๋๋ค.
- RDS์ read replica๋ ๋์ผํ AZ, ๋ค๋ฅธ AZ, ๋ค๋ฅธ region์ ์์ฑํ ์ ์์ต๋๋ค.
RDS์ Aurora์ Multi-AZ
- RDS Multi-AZ DB instance deployment(๋ค์ค AZ DB ์ธ์คํด์ค ๋ฐฐํฌ)
- Primary DB instance์ Stanby DB instance๋ฅผ ๊ฐ๊ฐ ๋ค๋ฅธ AZ์ ๋ฐฐํฌํ๋ ์ต์ ์ ๋๋ค.
- HA(๊ณ ๊ฐ์ฉ์ฑ)์ Data redundancy(๋ฐ์ดํฐ ์ค๋ณต์ฑ)๋ฅผ ์ ๊ณตํ์ง๋ง Standby DB instance๋ ์ฝ๊ธฐ ์ํฌ๋ก๋์ ๋ํ connection์ ์ง์ํ์ง ์์ต๋๋ค.
- Primary DB instance์ Stanby DB instance ๊ฐ์๋ Synchronous replication์ด ์ด๋ฃจ์ด์ง๋๋ค.
- Primary DB instance์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ์๋์ผ๋ก ๋ค๋ฅธ AZ์ Stanby๋ก ์ ํ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก 60์ด์์ 120์ด ์ ๋์ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
- RDS Multi-AZ DB Cluster(๋ค์ค AZ DB ํด๋ฌ์คํฐ)
- Primary DB instance 1๊ฐ์ Readable standby DB instance 2๊ฐ๋ก ๊ตฌ์ฑ๋ ํด๋ฌ์คํฐ๋ฅผ ๋ฐฐํฌํ๋ ์ต์ ์ผ๋ก ๊ฐ DB ์ธ์คํด์ค๋ ์๋ก ๋ค๋ฅธ AZ์ ๋ฐฐํฌ๋ฉ๋๋ค.
- HA์ Data redundancy๋ฅผ ์ ๊ณตํ๊ณ Standby DB instance๋ ์ฝ๊ธฐ ์ํฌ๋ก๋๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
- DB ์์ง์ ๋ค์ดํฐ๋ธ ๋ณต์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ Primary DB instance์ ๋ฐ์ดํฐ๋ฅผ Readable Standby DB instance๋ก ๋ณต์ ํฉ๋๋ค.
- Semisynchronous(๋ฐ๋๊ธฐ์) ๊ณ ๊ฐ์ฉ์ฑ ๋ฐฐํฌ ๋ชจ๋์ ๋๋ค.
- Aurora์ Multi AZ
- Aurora๋ Cluster Volume์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ replica(์ฝ๊ธฐ ์ ์ฉ ๋ณต์ ๋ณธ)์ ์ฌ์ฉํ๋ ๊ฒ์ด Multi AZ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- Aurora๋ Primary ์ธ์คํด์ค์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด Replica๋ฅผ Primary๋ก ์น๊ฒฉ์ํค๊ฑฐ๋ ์๋ก์ด Primary ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ฅ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- Replica๋ฅผ ์น๊ฒฉ์ํค๋ ๊ฒฝ์ฐ์ ๋ณต๊ตฌ ์๊ฐ์ 60์ด ๋ฏธ๋ง์ด๊ณ ์๋ก์ด ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ 10๋ถ ๋ฏธ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
RDS Proxy๋?
- RDS Proxy๋ RDS DB Write instance์ ๋ํ connection pooling์ ์ํํฉ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก DB์ ๊ฐ์ ๋ฆฌ์์ค์ connection์ ๋งบ๋ ๊ฒ์ ์ค๋ฒํค๋๊ฐ ๋ง์ด ๋ค์ด๊ฐ๋ ์์ ์ ๋๋ค. connection pool์ ์ค๋ฒํค๋๋ฅผ ์ค์ด๊ธฐ ์ํด connection์ ๋ฏธ๋ฆฌ ์์ฑํ์ฌ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ๋๋ค.
- RDS Proxy๋ DB connection pool์ ์ค์ ํ๊ณ ์ด pool์์ connection์ ์ฌ์ฌ์ฉํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋งค๋ฒ ์ DB connection์ ๋ง๋๋ ๋ฐ์์ ์ค๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ CPU ์ค๋ฒํค๋๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
- RDS Proxy๋ฅผ ์ฌ์ฉํ๋ฉด idle ์ํ๋ฅผ ์ ์งํ๋ connection์ ๋ซ์๋ค๊ฐ ๋ง๋๋ ๋ก์ง์ ์ถ๊ฐํ ํ์๊ฐ ์์ต๋๋ค.
- RDS Proxy๋ ์์ํ์ง ๋ชปํ ํธ๋ํฝ ๊ธ์ฆ์ ๋์ํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก RDS Proxy๋ ์ธ์ ์์ ๊ฐ ํธ๋์ญ์ ํ์ ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ํธ๋์ญ์ ์์ค ์ฌ์ฌ์ฉ์ ๋ฉํฐํ๋ ์ฑ์ด๋ผ๊ณ ํฉ๋๋ค.
๋ฐ์ํ
'๐ AWS > AWS Developer - Associate' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] Developer Associate #6 S3 (0) | 2024.07.26 |
---|---|
[AWS] Developer Associate #5 ElastiCache (0) | 2024.05.24 |
[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 #1 Elastic Beanstalk (0) | 2024.03.06 |