
들어가며
금융, 쇼핑몰, ERP와 같이 데이터의 정확성과 무결성이 중요한 서비스에서는 여전히 관계형 데이터베이스(RDBMS)가 많이 사용됩니다. AWS에서는 이러한 관계형 데이터베이스를 손쉽게 구축하고 운영할 수 있도록 Amazon RDS(Relational Database Service) 를 제공합니다.
이번 글에서는 Amazon RDS의 개념부터 ACID, Lock, Deadlock까지 관계형 데이터베이스에서 반드시 알아야 하는 핵심 개념을 함께 살펴보겠습니다.
1. Amazon RDS란?

Amazon RDS는 AWS에서 제공하는 완전관리형 관계형 데이터베이스 서비스입니다.
사용자는 서버 설치나 운영체제 관리 없이 데이터베이스만 생성하면 바로 사용할 수 있으며, 백업, 패치, 장애 복구 등의 운영 작업은 AWS가 대신 수행합니다.
RDS에서 지원하는 대표적인 데이터베이스는 다음과 같습니다.
- MySQL
- PostgreSQL
- MariaDB
- Oracle
- Microsoft SQL Server
즉, 기존에 사용하던 관계형 데이터베이스를 AWS 환경에서 더욱 쉽게 운영할 수 있도록 지원하는 서비스입니다.
2. RDS가 필요한 이유

직접 데이터베이스 서버를 구축하면 다음과 같은 작업을 모두 직접 수행해야 합니다.
- 서버 설치
- 데이터베이스 설치
- 백업 관리
- 장애 복구
- 보안 패치
- 모니터링
반면 RDS는 이러한 작업을 AWS가 자동으로 관리합니다.
따라서 개발자는 인프라 운영보다 데이터 모델링과 애플리케이션 개발에 집중할 수 있습니다.
3. DynamoDB와 RDS의 차이
| 항목 | RDS | DynamoDB |
| 데이터 구조 | 관계형 | Key-Value |
| JOIN | 가능 | 불가능 |
| 트랜잭션 | 강력한 ACID 지원 | 제한적 지원 |
| Lock | 사용 | 사용하지 않음 |
| 확장 방식 | 수직 확장 중심 | 수평 확장 중심 |
| 적합한 서비스 | 금융, ERP, 쇼핑몰 | 게임, IoT, 세션 |
4. 언제 사용할까?
RDS는 다음과 같은 서비스에서 많이 활용됩니다.
- 금융 시스템
- 쇼핑몰 주문 관리
- ERP
- 병원 EMR
- 재고 관리
- 예약 시스템
이러한 서비스는 데이터의 정확성과 무결성이 무엇보다 중요하기 때문에 ACID와 Lock 기능을 제공하는 RDS가 적합합니다.
5. ACID란?

ACID는 관계형 데이터베이스에서 데이터의 신뢰성과 일관성을 보장하는 네 가지 특성입니다.
5-1) Atomicity (원자성)
하나의 작업은 모두 성공하거나 모두 실패해야 합니다.
예를 들어 계좌 이체에서는
- A 계좌 출금
- B 계좌 입금
두 작업이 모두 성공해야 합니다. 중간에 오류가 발생하면 전체 작업이 취소됩니다.
5-2) Consistency (일관성)
트랜잭션 전후에도 데이터의 규칙이 유지되어야 합니다.
예를 들어 "잔액은 음수가 될 수 없다." 와 같은 제약 조건이 항상 유지됩니다.
5-3) Isolation (격리성)
동시에 여러 사용자가 작업하더라도 서로 영향을 주지 않아야 합니다.
즉, 사용자 A의 작업이 완료되기 전까지는 사용자 B가 중간 결과를 볼 수 없습니다.
5-4) Durability (지속성)
트랜잭션이 Commit되면 서버 장애가 발생하더라도 데이터는 유지됩니다.
즉, Commit된 데이터는 안전하게 저장됩니다.
6. Lock이란?

Lock은 동시에 여러 사용자가 같은 데이터를 수정하면서 발생할 수 있는 문제를 방지하기 위한 기능입니다.
사용자 A와 사용자 B가 동시에 같은 상품의 재고를 수정한다고 가정해보겠습니다.
Lock이 없다면 두 사람이 동시에 값을 변경하여 데이터가 잘못 저장될 수 있습니다.
따라서 RDS는 데이터를 잠시 잠가 다른 사용자의 접근을 제어합니다.
7. Shared Lock과 Exclusive Lock

7-1) Shared Lock (공유 락)
Shared Lock은 여러 사용자가 동시에 데이터를 조회할 수 있도록 허용하는 Lock입니다.
다른 사용자도 SELECT는 수행할 수 있습니다. 하지만 UPDATE나 DELETE는 대기하게 됩니다.
7-2) Exclusive Lock (배타 락)
Exclusive Lock은 데이터를 수정하는 동안 다른 사용자의 접근을 제한하는 Lock입니다.
다른 사용자는
- SELECT
- UPDATE
- DELETE
모두 대기해야 합니다.
즉, Exclusive Lock은 데이터 변경 작업을 안전하게 수행하기 위한 Lock입니다.
8. Deadlock이란?

Deadlock은 두 개 이상의 트랜잭션이 서로의 Lock이 해제되기를 기다리면서 아무 작업도 진행하지 못하는 상태입니다.
대부분의 데이터베이스는 Deadlock을 감지하면 하나의 트랜잭션을 강제로 종료(Rollback)하여 문제를 해결합니다.
9. Deadlock을 줄이는 방법
Deadlock은 완전히 제거하기는 어렵지만 다음과 같은 방법으로 발생 가능성을 줄일 수 있습니다.
- 항상 동일한 순서로 테이블 접근
- 트랜잭션을 짧게 유지
- 불필요한 Lock 최소화
- 필요한 데이터만 조회 및 수정
실무에서도 이러한 원칙을 지켜 Deadlock 발생 가능성을 줄입니다.
10. 마치며
이번 글를 정리하며 Amazon RDS는 단순히 관계형 데이터베이스를 AWS에서 제공하는 서비스가 아니라, 데이터의 정확성과 안정적인 트랜잭션 처리를 지원하는 핵심 데이터베이스 서비스라는 점을 이해할 수 있었습니다.
특히 ACID를 통해 데이터의 일관성과 신뢰성을 보장하고, Lock을 활용하여 동시에 여러 사용자가 같은 데이터를 수정하더라도 데이터가 손상되지 않도록 보호한다는 점을 알게 되었습니다. 또한 Deadlock은 여러 트랜잭션이 서로의 Lock을 기다리면서 발생하는 문제이며, 트랜잭션 설계와 접근 순서를 일관되게 유지하는 것이 중요하다는 점도 함께 배울 수 있었습니다.
'Data Engineering > AWS' 카테고리의 다른 글
| Amazon DocumentDB란? (0) | 2026.07.01 |
|---|---|
| Aurora란? (0) | 2026.07.01 |
| DynamoDB Streams란? Lambda와 함께 실시간 이벤트 처리하기 (0) | 2026.06.30 |
| Amazon DynamoDB Accelerator(DAX)란?| DynamoDB 조회 성능을 높이는 방법 (0) | 2026.06.30 |
| DynamoDB Index 이해하기 | LSI, GSI 그리고 Index와 Throttling (1) | 2026.06.29 |