AWS

[aws] RDS - Backups / Monitoring / Security / Proxy

499.token.required 2024. 7. 31. 03:29

 

 

이 κΈ€μ˜ μΌλΆ€λŠ” aws κ³΅μ‹λ¬Έμ„œμ˜ λ‚΄μš©μ„ μ°Έμ‘°ν•˜μ˜€μŒμ„ λ°νž™λ‹ˆλ‹€.

 

 

 

 

πŸ“Œ RDS - Backups / Restore options / Aurora DB cloning

 

 

RDS μ„œλΉ„μŠ€μ—λŠ” 두 κ°€μ§€ Backup 을 μ§€μ›ν•œλ‹€. κ·Έ μ’…λ₯˜μ—λŠ” μžλ™ν™” λ°±μ—…, μˆ˜λ™ DB μŠ€λƒ…μƒ·μœΌλ‘œ λΆ„λ₯˜λœλ‹€. Aurora λŠ” 일반 RDS 와 차이λ₯Ό 두기 λ•Œλ¬Έμ— λ”°λ‘œ 정리λ₯Ό ν•˜κ² λ‹€.

 

μžλ™ν™” λ°±μ—…

 

  RDS μ„œλΉ„μŠ€κ°€ μžλ™μœΌλ‘œ 맀일 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ°μ΄ν„°λ² μ΄μŠ€ λ°±μ—… κΈ°κ°„ λ™μ•ˆ 전체 백업을 μˆ˜ν–‰ν•œλ‹€. κ°€μž₯ λΉ λ₯Έ 백업은 5λΆ„μ „μ˜ 백업이닀. 즉 , 5λΆ„λ§ˆλ‹€ νŠΈλžœμž­μ…˜ λ‘œκ·Έκ°€ λ°±μ—…λ˜κ³  μžλ™ 백업을 톡해 μ–Έμ œλΌλ„ 5λΆ„ μ „μœΌλ‘œ 볡원할 수 μžˆλ‹€ . μžλ™ λ°±μ—… 보쑴 기간은 1 ~ 35일 κΈ°κ°„ μ‚¬μ΄λ‘œ μ„€μ •ν•  수 μžˆλ‹€. 이 κΈ°λŠ₯을 μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ €λ©΄ 0으둜 μ„€μ •ν•˜μ—¬ μžλ™ 백업을 μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ μ„€μ •ν•  수 μžˆλ‹€ 

 

 

Aurora

 

λ§ˆμ°¬κ°€μ§€λ‘œ 1μΌμ—μ„œ 35일 κΉŒμ§€ κ°€λŠ₯ν•˜μ§€λ§Œ λΉ„ν™œμ„±ν™”μ˜ κΈ°λŠ₯이 μ—†λ‹€λŠ” μ μ—μ„œ 일반 RDS와 차이λ₯Ό λ‘”λ‹€. μ‹œμ  볡ꡬ κΈ°λŠ₯(point-in-time) 이 μžˆμ–΄ 5뢄이 μ•„λ‹Œ ν•΄λ‹Ή κΈ°κ°„μ˜ μ–΄λŠ μ‹œμ μœΌλ‘œλ“  볡원할 수 μžˆλ‹€. 

 

μˆ˜λ™ DB μŠ€λƒ…μƒ·

 

μ‚¬μš©μžκ°€ μˆ˜λ™μœΌλ‘œ 트리거 ν•˜λŠ” λ°±μ—…μœΌλ‘œ 이 λ°©λ²•μ˜ μž₯점은 μˆ˜λ™μœΌλ‘œ ν•œ 백업은 μ›ν•˜λŠ” κΈ°κ°„ λ™μ•ˆ μœ μ§€ν•  수 μžˆλ‹€λŠ” 점이닀. μžλ™ λ°±μ—… 같은 경우 보쑴 κΈ°κ°„μ˜ λ§Œλ£Œκ°€ μžˆμ§€λ§Œ μˆ˜λ™ DB μŠ€λƒ…μƒ·μ€ μ›ν•˜λŠ” κΈ°κ°„ λ™μ•ˆ 보관할 수 μžˆλ‹€. λ§Œμ•½ RDS DB 쀑 ν•œ 달에 2μ‹œκ°„λ§Œ μ‚¬μš©ν•˜λŠ” DBκ°€ μžˆλ‹€κ³  κ°€μ •ν•˜μž. DB λŠ” μ€‘μ§€ν•œλ‹€κ³  ν•˜λ”λΌλ„ μŠ€ν† λ¦¬μ§€ λΉ„μš©μ€ 계속 μ§€λΆˆν•΄μ•Όν•œλ‹€. 이럴 경우 2μ‹œκ°„ λ™μ•ˆ μ‚¬μš© ν›„ μŠ€λƒ…μƒ·μ„ λ§Œλ“  λ‹€μŒ 원본 DBλ₯Ό μ‚­μ œν•˜κ³ , μ‚¬μš©μ„ 희망할 λ•Œ μŠ€λƒ…μƒ·μœΌλ‘œ DBλ₯Ό λ³΅μ›ν•˜λ©΄ λΉ„μš©μ„ μ ˆκ°ν•  수 μžˆλ‹€.  

 

 

Aurora

 

λ§ˆμ°¬κ°€μ§€λ‘œ μ‚¬μš©μžκ°€ μˆ˜λ™μœΌλ‘œ νŠΈλ¦¬κ±°ν•  수 있으며 μ›ν•˜λŠ” κΈ°κ°„ λ™μ•ˆ μœ μ§€ν•  수 있고, μˆ˜λ™ DB μŠ€λƒ…μƒ·μ˜ 경우 일반 DB와 λ™μΌν•˜λ―€λ‘œ μƒλž΅ν•˜λ„λ‘ ν•˜κ² λ‹€. 

 

 

 

 

 

λ°±μ—… μ˜΅μ…˜ 

 

  • μŠ€λƒ…μƒ·μœΌλ‘œ λΆ€ν„° λ³΅μ›ν•˜κΈ° - μžλ™ν™”λœ λ°±μ—…μ΄λ‚˜ μˆ˜λ™ μŠ€λƒ…μƒ·μ„ 볡원할 λ•Œλ§ˆλ‹€ μƒˆ λ°μ΄ν„°λ² μ΄μŠ€κ°€ μƒμ„±λœλ‹€. 
  • S3λ‘œλΆ€ν„° λ³΅μ›ν•˜κΈ° - S3μ—μ„œ MySQL DBλ₯Ό 볡원할 μˆ˜λ„ μžˆλ‹€. 예λ₯Ό λ“€μ–΄ μ˜¨ν”„λ ˆμŠ€ DB의 백업을 μƒμ„±ν•œ λ‹€μŒ S3에 보낸 ν›„, RDSμ—μ„œ 이 λ°±μ—… νŒŒμΌμ„ λ°›μ•„ 볡원할 수 있게 λœλ‹€. 
  • S3λ‘œλΆ€ν„° Aurora DB λ³΅μ›ν•˜κΈ° - μ™ΈλΆ€μ μœΌλ‘œ Percona XtraBackup μ΄λΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό ν†΅ν•΄μ„œλ§Œ μ˜¨ν”„λ ˆλ―ΈμŠ€μ— μžˆλŠ” DBλ₯Ό λ°±μ—…ν•  수 μžˆλ‹€. 이 과정은  Percona XtraBackup μ΄λΌλŠ” μ†Œν”„νŠΈμ›¨μ–΄μ˜ λ°±μ—… νŒŒμΌμ„ S3둜 보내어, κ±°κΈ°μ„œ 백업을 볡원해야 ν•œλ‹€.  κΈ°μ‘΄ RDSμ™€μ˜ 차이점은 일반 RDS의 경우 DB의 λ°±μ—…λ§Œ 있으면 λ˜μ—ˆμ§€λ§Œ Aurora μ—μ„œλŠ”  Percona XtraBackup 으둜 백업을 ν•œ λ‹€μŒ S3μ—μ„œ DBν΄λŸ¬μŠ€ν„°λ‘œ 백업을 ν•΄μ•Ό ν•œλ‹€λŠ” 점이닀. 

 

 

 

Aurora DB 볡제 (Aurora DB cloning)

 

 

κΈ°μ‘΄ DB ν΄λŸ¬μŠ€ν„°μ—μ„œ μƒˆλ‘œμš΄ Aurora DB λ₯Ό 생성할 수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ Aurora ν”„λ‘œλ•μ…˜ DBκ°€ 있고 , κ±°κΈ°μ„œ ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜κ³  싢을 λ•Œ 

데이터λ₯Ό λ³΅μ‚¬ν•˜κ³  싢을 것이닀. 이 경우 ν”„λ‘œλ•μ…˜ Aurora DBλ₯Ό λ³΅μ œν•˜μ—¬ μƒˆ DBκ°€ 생성될 수 μžˆλ‹€. 이 과정은 μŠ€λƒ…μƒ·μ„ 찍고 λ³΅μ›ν•˜λŠ” 것보닀 λΉ λ₯΄λ‹€. μ΄λŠ” copy-on-write λ°©μ‹μœΌλ‘œ μš΄μš©λ˜μ–΄ 속도 뿐 μ•„λ‹ˆλΌ ν”„λ‘œλ•μ…˜ λ°μ΄ν„°λ² μ΄μŠ€μ— 영ν–₯을 μ£Όμ§€ μ•ŠμœΌλ―€λ‘œ λ³΅μ œν•˜λŠ”λ° 맀우 μœ μš©ν•˜λ‹€. 

 

 

 

πŸ“Œ RDS - Security

 

RDS 및 Aurora DB에 μ €μž₯된 데이터λ₯Ό μ•”ν˜Έν™” ν•  수 μžˆλ‹€. μ΄λŠ” 데이터가 λ³Όλ₯¨μ— μ•”ν˜Έν™” λœλ‹€λŠ” 뜻이며 KMSλ₯Ό μ‚¬μš©ν•΄ λ§ˆμŠ€ν„°μ™€ λͺ¨λ“  볡제본의 μ•”ν˜Έν™”λ₯Ό ν•  수 μžˆλ‹€. μ•”ν˜Έν™”λŠ” DBλ₯Ό 처음 μ‹€ν–‰ν•  λ•Œλ§Œ μ •μ˜ν•  수 있으며 μ–΄λ–€ μ΄μœ μ—μ„œλ“  λ§ˆμŠ€ν„° DBλ₯Ό μ•”ν˜Έν™”ν•˜μ§€ μ•Šμ•˜λ‹€λ©΄ 읽기 μ „μš© 볡제본 λ˜ν•œ μ•”ν˜Έν™” 될 수 μ—†λ‹€. ν•˜μ§€λ§Œ 이런 κ²½μš°λŠ” μ €μž₯ 데이터 μ•”ν˜Έν™”(at-rest encryption)을 톡해 이 μ œν•œμ„ νŒŒν›Όν•  수 μžˆλ‹€. 이 외에도 더 λ§Žμ€ μ•”ν˜Έν™”μ— λŒ€ν•΄μ„œ μ•Œμ•„λ³΄μž.

 

  • μ €μž₯ 데이터 μ•”ν˜Έν™”(at-rest encryption) - μ•”ν˜Έν™” λ˜μ–΄μžˆμ§€ μ•Šμ€ κΈ°μ‘΄ DBλ₯Ό μ•”ν˜Έν™” ν•˜λ €λ©΄ μ•”ν˜Έν™” λ˜μ§€ μ•Šμ€ DB의 μŠ€λƒ…μƒ·μ„ μ•”ν˜Έν™”ν•˜μ—¬ DB ν˜•νƒœλ‘œ λ³΅μ›ν•˜λŠ” λ°©λ²•μœΌλ‘œ 이 과정을 거치면 μ•”ν˜Έν™”λ˜μ§€ μ•Šμ€ DB도 μ•”ν˜Έν™” ν•  수 μžˆλ‹€.
  • 전솑 쀑 데이터 μ•”ν˜Έν™” (In-flight encryption) - RDS 및 Aurora의 각 DBλŠ” 기본적으둜 전솑 쀑 데이터 μ•”ν˜Έν™” κΈ°λŠ₯을 κ°–μΆ”κ³  μžˆλ‹€. λ”°λΌμ„œ ν΄λΌμ΄μ–ΈνŠΈλŠ” AWS μ›Ήμ‚¬μ΄νŠΈμ—μ„œ μ œκ³΅ν•˜λŠ” AWS의 TLS 루트 μΈμ¦μ„œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.  
  • IAM 인증 (IAM Authentication) - RDS의 Aurora μ΄λ―€λ‘œ μ‚¬μš©μž 이름과 νŒ¨μŠ€μ›Œλ“œλΌλŠ” 전톡적인 쑰합을 μ‚¬μš©ν•  μˆ˜λ„ μžˆμ§€λ§Œ IAM 역할을 μ‚¬μš©ν•΄μ„œ DB에 접속할 μˆ˜λ„ μžˆλ‹€. 예λ₯Ό λ“€μ–΄ EC2 μΈμŠ€ν„΄μŠ€μ— IAM Role 이 μžˆλ‹€λ©΄ 이λ₯Ό μ΄μš©ν•΄ μ‚¬μš©μž μ΄λ¦„μ΄λ‚˜ νŒ¨μŠ€μ›Œλ“œ 없이 직접 DBλ₯Ό 인증할 수 μžˆλ‹€. 
  • λ³΄μ•ˆ κ·Έλ£Ή(Security Group) - λ³΄μ•ˆ 그룹을 μ‚¬μš©ν•΄ νŠΉμ • 포트, IP, λ³΄μ•ˆ 그룹을 ν—ˆμš©ν•˜κ±°λ‚˜ μ°¨λ‹¨ν•¨μœΌλ‘œμ¨ λ„€νŠΈμ›Œν¬ μ•‘μ„ΈμŠ€λ₯Ό ν†΅μ œν•  μˆ˜λ„ μžˆλ‹€. 
  • SSH μ ‘κ·Ό λΆˆκ°€ (No SSH avilable) - RDS μ»€μŠ€ν…€ μ„œλΉ„μŠ€λŠ” SSH 접근이 κ°€λŠ₯ν•˜μ§€λ§Œ RDS와 AuroraλŠ” SSH 접근이 λΆˆκ°€λŠ₯ ν•˜λ―€λ‘œ 이λ₯Ό 톡해 λ³΄μ•ˆμ„ κ°•ν™”ν•  수 μžˆλ‹€.
  • 감사 둜그 ν™œμ„±ν™” (Audit Logs can be enabled ) - 감사 둜그λ₯Ό ν™œμ„±ν™”ν•˜μ—¬ μ‹œκ°„μ— 따라 μ–΄λ–€ 쿼리가 μ‹€ν–‰λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜μ—¬ λ³΄μ•ˆμ„ κ°•ν™”ν•  수 μžˆλ‹€.  

 

 

πŸ“Œ RDS - Proxy

 

 

Amazon RDS ν”„λ‘μ‹œλ₯Ό μ‚¬μš©ν•˜λ©΄ μ•±μ΄λ‚˜ DB λ‚΄μ—μ„œ DB μ—°κ²° 풀을 ν˜•μ„±ν•˜κ³  κ³΅μœ ν•  수 μžˆλ‹€. 앱을 RDS λ°μ΄ν„°λ² μ΄μŠ€ μΈμŠ€ν„΄μŠ€μ— 일일이 μ—°κ²°ν•˜λŠ” λŒ€μ‹  ν”„λ‘μ‹œμ— μ—°κ²°ν•˜λ©΄ ν”„λ‘μ‹œκ°€ ν•˜λ‚˜μ˜ 풀에 연결을 λͺ¨μ•„ RDS μΈμŠ€ν„΄μŠ€λ‘œ κ°€λŠ” 연결이 쀄어든닀. RDS λ°μ΄ν„°λ² μ΄μŠ€ μΈμŠ€ν„΄μŠ€μ— 연결이 λ§Žμ€ 경우 CPU와 RAM λ“± λ°μ΄ν„°λ² μ΄μŠ€ λ¦¬μ†ŒμŠ€μ˜ 뢀담을 쀄여 DB νš¨μœ¨μ„±μ„ ν–₯상 μ‹œν‚¬ 수 있고 DB에 개방된 μ—°κ²°κ³Ό μ‹œκ°„μ΄ˆκ³Όλ₯Ό μ΅œμ†Œν™” ν• μˆ˜ 있기 λ•Œλ¬Έμ΄λ‹€.

 

 

 

 

 

RDS ν”„λ‘μ‹œλŠ” μ™„μ „ν•œ μ„œλ²„λ¦¬μŠ€λ‘œ μ˜€ν†  μŠ€μΌ€μΌλ§μ΄ κ°€λŠ₯ν•΄ μš©λŸ‰μ„ 관리할 ν•„μš” μ—†κ³  닀쀑 AZλ₯Ό 지원해 κ°€μš©μ„±μ΄ λ†’λ‹€. 뿐만 μ•„λ‹ˆλΌ, RDS μΈμŠ€ν„΄μŠ€μ— μž₯μ•  μ‘°μΉ˜κ°€ λ°œμƒν•˜λ©΄ κΈ°λ³Έ μΈμŠ€ν„΄μŠ€κ°€ μ•„λ‹ˆλΌ λŒ€κΈ° μΈμŠ€ν„΄μŠ€λ‘œ μ‹€ν–‰λ˜λ©° RDS ν”„λ‘μ‹œ 덕뢄에 RDS와 Aurora의 μž₯μ•  쑰치 μ‹œκ°„μ„ 66%κΉŒμ§€ 쀄일 수 μžˆλ‹€.  RDS ν”„λ‘μ‹œλŠ” MySQL, PostgreSQL, MariaDB용 RDS, Aurora 등을 μ§€μ›ν•˜λ©°, μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ½”λ“œ λ³€κ²½ 없이 RDS μΈμŠ€ν„΄μŠ€λ‚˜ Aurora λ°μ΄ν„°λ² μ΄μŠ€μ— RDS ν”„λ‘μ‹œλ§Œ μ—°κ²°ν•˜λ©΄ 되기 λ•Œλ¬Έμ— μ•„μ£Ό νŽΈλ¦¬ν•˜λ‹€.

 

RDS ν”„λ‘μ‹œλ₯Ό μ‚¬μš©ν•˜λ©΄ DB에 IAM 인증을 κ°•μ œν•¨μœΌλ‘œμ¨  λ³΄μ•ˆμ„ κ°•ν™”ν•  수 μžˆλ‹€. RDS ν”„λ‘μ‹œλŠ” 퍼블릭 μ•‘μ„ΈμŠ€κ°€ μ ˆλŒ€λ‘œ λΆˆκ°€λŠ₯λ―€λ‘œ VPC λ‚΄μ—μ„œλ§Œ μ•‘μ„ΈμŠ€ ν•  수 μžˆλŠ”λ° 인터넷을 톡해 RDS ν”„λ‘μ‹œμ— μ—°κ²°ν•  수 μ—†μœΌλ‹ˆ λ³΄μ•ˆμ΄ μ² μ €ν•΄μ§„λ‹€.