Contents

9. Amazon RDS, Aurora & ElastiCache

AWS Certified SAA-C02 ์‹œํ—˜์ค€๋น„

Contents

AWS RDS

RDS๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์„œ๋น„์Šค Relational Database Service ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ SQL ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ„ํ•œ ์„œ๋น„์Šค์ด๋‹ค.

RDS์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
  • 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 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•”ํ˜ธํ™”

  1. ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•œ๋‹ค.
  2. ์ƒ์„ฑํ•œ ์Šค๋ƒ…์ƒท์„ ๋ณต์‚ฌํ•˜๊ณ  ๋ณต์‚ฌํ•œ ์Šค๋ƒ…์ƒท์— ๋Œ€ํ•œ ์•”ํ˜ธํ™”๋ฅผ ํ™œ์„ฑํ™” ํ•œ๋‹ค.
  3. ์•”ํ˜ธํ™” ๋œ ์Šค๋ƒ…์ƒท์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณต์›ํ•œ๋‹ค.
  4. ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ›„ ์ด์ „ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‚ญ์ œํ•œ๋‹ค.

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

  1. DB ์ธ์Šคํ„ด์Šค๋ฅผ ์ฒ˜์Œ ์ƒ์„ฑํ•  ๋•Œ๋งŒ ์ˆ˜ํ–‰
  2. ์•”ํ˜ธํ™” ๋˜์ง€ ์•Š์€ 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์˜ ๊ณ ๊ฐ€์šฉ์„ฑ๊ณผ ์ฝ๊ธฐ ํ™•์žฅ์„ฑ

6๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋ณต์ œ๋ณธ์ด 3๊ฐœ์˜ AZ์— ๊ฑธ์ณ ์ €์žฅ
  • ์“ฐ๊ธฐ์˜ ๊ฒฝ์šฐ 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 auto scaling

Aurora ์ธ์Šคํ„ด์Šค 3๊ฐœ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •

  • Writer Endpoint : 1๊ฐœ
  • Reader Endpoint : 2๊ฐœ

๋งŽ์€ ์ฝ๊ธฐ ์š”์ฒญ์œผ๋กœ CPU์‚ฌ์šฉ๋Ÿ‰ ์ฆ๊ฐ€

  • Aurora ๋ณต์ œ๋ณธ์ด ์ถ”๊ฐ€๋˜๊ณ  ์ž๋™์œผ๋กœ Reader Endpoint๊ฐ€ ์ƒˆ ๋ณต์ œ๋ณธ์„ ํฌํ•จํ•˜๋„๋ก ํ™•์žฅ
  • CPU ์‚ฌ์šฉ๋Ÿ‰์„ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ๋ถ„์‚ฐ๋œ ๋ฐฉ์‹์œผ๋กœ ์ƒˆ๋กœ์šด ๋ณต์ œ๋ณธ์ด ํŠธ๋ž˜ํ”ฝ ์ˆ˜์‹ 

Aurora Custom Endpoints

  • ์‚ฌ์šฉ์ž ์ง€์ • Endpoints๋กœ Aurora ์ธ์Šคํ„ด์Šค์˜ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์ •์˜
  • ์˜ˆ์‹œ) ํŠน์ • ๋ณต์ œ๋ณธ์— ๋Œ€ํ•œ ๋ถ„์„ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์ •์˜ Endpoints๋ฅผ ์ •์˜ํ•œ ํ›„ Reader Endpoint๋Š” ์ •์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
Aurora custom endpoints

Aurora ๋‘ ์ข…๋ฅ˜ ๋ณต์ œ๋ณธ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •

  • ๋ณต์ œ๋ณธ db.r3.large : 2๊ฐœ
  • ๋ณต์ œ๋ณธ db.r5.xlarge : 2๊ฐœ - ์šฉ๋Ÿ‰์ด ๋” ํผ

ํŠน์ • ์ฝ๊ธฐ์ „์šฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ถ„์„ ์ฟผ๋ฆฌ ์‹คํ–‰

  • ์šฉ๋Ÿ‰์ด ๋” ํฐ ์ธ์Šคํ„ด์Šค ์„œ๋ธŒ์…‹์„ ์‚ฌ์šฉ์ž endpoint๋กœ ์ •์˜

Aurora Serverless

  • ์ž๋™ํ™” ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค ๋ฐ ์‹ค์ œ ์‚ฌ์šฉ๋Ÿ‰์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์˜คํ†  ์Šค์ผ€์ผ๋ง ์ œ๊ณต
  • ๊ฐ„ํ—์ ์ด๊ฑฐ๋‚˜ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ์›Œํฌ๋กœ๋“œ์— ์ ํ•ฉ
  • ์šฉ๋Ÿ‰ ์ธก์ •์ด ํ•„์š” ์—†๋‹ค
  • ์ดˆ๋‹น ๋น„์šฉ ์ง€๋ถˆ. ๋น„์šฉ์ธก๋ฉด์—์„œ๋Š” ํšจ๊ณผ์ 
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์€ ๊ณ ์œ ์„ฑ๊ณผ ์ˆœ์„œ ๋ชจ๋‘๋ฅผ ๋ณด์žฅํ•œ๋‹ค.
  • ์ƒˆ ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€ ๋  ๋•Œ๋งˆ๋‹ค ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ˆœ์œ„ ์ฑ…์ •