๐Ÿ“‚ AWS/AWS Developer - Associate

[AWS] Developer Associate #2 Relational DB(RDS, Aurora)

dhyuck 2024. 4. 1. 00:53
๋ฐ˜์‘ํ˜•

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๋Š” ์„ธ์…˜์—์„œ ๊ฐ ํŠธ๋žœ์žญ์…˜ ํ›„์— ์—ฐ๊ฒฐ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŠธ๋žœ์žญ์…˜ ์ˆ˜์ค€ ์žฌ์‚ฌ์šฉ์„ ๋ฉ€ํ‹ฐํ”Œ๋ ‰์‹ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ˜์‘ํ˜•