cumo 2025. 6. 25. 16:06

✅ 강의 개요

  • 강의 제목: AWS Database Offering (한국어)
  • 수강 플랫폼: AWS Skill Builder
  • 수강 일자: 2025년 6월 25일
  • 기술 키워드: 클라우드 기반 데이터베이스, 데이터베이스 아키텍쳐

🔍 핵심 개념 요약

클라우드 기반 데이터베이스

- 데이터의 특성

- 관계형 데이터베이스

- 비관계형 데이터베이스

- 데이터베이스 마이그레이션

- AWS 데이터베이스 평가

데이터베이스 아키텍처

- 아키텍처 개요

- 서버 기반 아키텍처

- 서버리스 아키텍처

데이터베이스 선정

- 특별히 설계된 데이터베이스

- 북스토어 앱 사용 사례 

🔍 학습 목표

  • 사용 가능한 세 가지 데이터 원본 유형 즉, 구조화, 비구조화 및 반구조화를 각각 식별하고 비교
  • 상이한 데이터베이스 유형과 가장 적합한 사용 사례를 각각 식별
  • AWS 관계형 및 비관계형 데이터베이스 서비스를 비교하고 분류
  • 데이터를 AWS로 마이그레이션하는 방법을 파악
  • 각 유형에 대한 사용 사례를 포함해 서버 기반 아키텍처 및 서버리스 아키텍처를 설명
  • 주어진 애플리케이션 요구 사항을 지원하는 데 적합한 데이터베이스를 결정

 

AWS 데이터베이스 제품

워크로드 프로필을 지원하는 데이터베이스 솔루션이 필요하며 , 특정 애플리케이션에 사용하도록 다양한 데이터베이스 서비스가

필요하다

 

AWS 지원 데이터베이스 서비스

관계형 데이터베이스

정의된 스키마와 함께 데이터를 저장하여 , 트랜젝션 애플리케이션 및 기존 애플리케이션 활용
하며 구조화된 데이터를 저장하도록 구축되어 있음

 

[자세히]

더보기

1. 테이블 및 관계

 

관계형 데이터베이스는 테이블이라 불리는 일련의 구조를 사용하여 데이터를 보관한다, 
테이블은 관련된 사람, 장소, 사물 또는 이벤트를 기반으로 데이터를 그룹화 하고 이를 일컬어 엔터티라고 부르며 

하나의 테이블로 저장된다 , 

테이블 간 관계를 생성할 떄 모든 행이 고유한 값인지 먼저 확인해야 하며 , 이를 위해 퍼블릭 키 (고객 ID) 등을 통하여

고유한 값을 부여하고 , 현재 테이블의 레코드를 정의할 수 있다.

 

2. 데이터 인덱싱

정형 쿼리 언어 또는 SQL을 사용하여 관계형 데이터베이스를 탐색하고 , 쿼리가 결과를 생성할 때 필요한 인덱스를 만들어야 한다 , 또한 인덱스는 디스크가 저장되는 방식에 대해 도움이 간으하다, 테이블 내 키 값에 따라 예측가능한 순서로

강의 제목: AWS Database Offering (한국어)

수강 플랫폼: AWS Skill Builder

수강 일자: 2025년 6월 25일

기술 키워드: 클라우드 기반 데이터베이스, 데이터베이스 아키텍쳐

🔍 핵심 개념 요약

클라우드 기반 데이터베이스

- 데이터의 특성

 

- 관계형 데이터베이스

 

- 비관계형 데이터베이스

 

- 데이터베이스 마이그레이션

 

- AWS 데이터베이스 평가

 

데이터베이스 아키텍처

- 아키텍처 개요

 

- 서버 기반 아키텍처

 

- 서버리스 아키텍처

 

데이터베이스 선정

- 특별히 설계된 데이터베이스

 

- 북스토어 앱 사용 사례 

 

🔍 학습 목표

사용 가능한 세 가지 데이터 원본 유형 즉, 구조화, 비구조화 및 반구조화를 각각 식별하고 비교

상이한 데이터베이스 유형과 가장 적합한 사용 사례를 각각 식별

AWS 관계형 및 비관계형 데이터베이스 서비스를 비교하고 분류

데이터를 AWS로 마이그레이션하는 방법을 파악

각 유형에 대한 사용 사례를 포함해 서버 기반 아키텍처 및 서버리스 아키텍처를 설명

주어진 애플리케이션 요구 사항을 지원하는 데 적합한 데이터베이스를 결정

 

 

AWS 데이터베이스 제품

워크로드 프로필을 지원하는 데이터베이스 솔루션이 필요하며 , 특정 애플리케이션에 사용하도록 다양한 데이터베이스 서비스가

 

필요하다

 

 

 

AWS 지원 데이터베이스 서비스

 

관계형 데이터베이스

정의된 스키마와 함께 데이터를 저장하여 , 트랜젝션 애플리케이션 및 기존 애플리케이션 활용

하며 구조화된 데이터를 저장하도록 구축되어 있음

 

 

 

[자세히]

 

1. 테이블 및 관계

 

 

관계형 데이터베이스는 테이블이라 불리는 일련의 구조를 사용하여 데이터를 보관한다, 

테이블은 관련된 사람, 장소, 사물 또는 이벤트를 기반으로 데이터를 그룹화 하고 이를 일컬어 엔터티라고 부르며 

 

하나의 테이블로 저장된다 , 

 

테이블 간 관계를 생성할 떄 모든 행이 고유한 값인지 먼저 확인해야 하며 , 이를 위해 퍼블릭 키 (고객 ID) 등을 통하여

 

고유한 값을 부여하고 , 현재 테이블의 레코드를 정의할 수 있다.

 

 

 

2. 데이터 인덱싱

정형 쿼리 언어 또는 SQL을 사용하여 관계형 데이터베이스를 탐색하고 , 쿼리가 결과를 생성할 때 필요한 인덱스를 만들어야 한다 , 또한 인덱스는 디스크가 저장되는 방식에 대해 도움이 간으하다, 테이블 내 키 값에 따라 예측가능한 순서로

 

레코드를 그룹화 하며 이는 속도에 큰 역할을 담당

 

- 온라인 트랜잭션 처리 (OLTP) : 데이터베이스는 업데이트, 삽입 및 삭제 데이터 트랜잭션을 기록하는 중점을 두며
OLTP 시스템의 좋은 예로는 은행 ATM이 있습니다. 이 ATM에는 짧은 트랜잭션을 사용하여 은행 계좌를 수정하는 경우가 있다

- 온라인 분석 처리 (OLAP) : 데이터베이스는 OLTP에 의해 입력된 데이터를 저장하고 , 다차원의 데이터의 요약을 보며
대규모 데이터베이스에서 정보를 추출하여 의사 결정을 위해 분석 할 수 있다.

 

 

관계형 데이터베이스 제품 예시

 

사례1.

문제: 온프레 트랜잭션 DB -> 클라우드로 인벤토리 제어 시스템 마이그레이션
해결책 : 다양한 관계형 데이터베이스 시스템을 제공하는 RDS 를 사용하여 OLTP,OLAP DB를 처리

 

사례2.

문제: PostgreSQL 데이터베이스 쓰기 I/O 4Kb 미만 일 시 , 이미 필요한 리소스를 전부 사용 중일 경우 해결 책

해결책: Aurora 를 통해 PostgreSQL 과 호환 ,비용을 절감하며 , 읽기/쓰기 트래픽 처리를 가능한 리소스를 확보가 가능하다 ,

 

사례3. 

문제: 인프라 용량을 프로비저닝 하고 지속적 관리를 통해 , 데이터 웨어하우스 솔루셔니 필요하다
해결책: 기계 학습, 대량 병렬 쿼리 실행, 고성능 디스크 열 기반 스토리지를 통해 빠른 성능을 제공하는
RedShift를 사용이 가능하다, 페타바이트 규모의 데이터를 사용하여 S3에 엑사바이트 규모에 대해서도 쿼리

실행


 

AWS 내 지원 데이터베이스 서비스

행 기반 인덱싱을 사용하는 OLTP 및 OLAP 데이터 베이스를 사용할 시 , RDS 와 같은 서비스이용 가능

  • AWS Relation DataBase Service(RDS) 
    - 클라우드에서 관계형 데이터 베이스를 설치하고 운영 및 조정하는 웹 서비스
      OS 패치 , 데이터베이스 업데이트 및 백업 등 DB 관리 작업 관리 
    - 지원 엔진 : PostgreSQL, MySQL, MariaDB, Oracle 및 Microsoft SQL Server
  • AWS Aurora : RDS 일부에 속하는 서비스로 MySQL, PostgreSQL 호환 
    기존 엔터프라이즈 데이터베이스 성능과 가용성을 오픈 소스 DB의 간편함 및 경제성 확보

예)
PostagreSQL 데이터베이스는 쓰기 I/O 가 4KB 미만으로 충분한 양의 I/O 리소스를 사용할 때 어떠한 것을 사용해야하는
-> AWS 아우라 를 통하여 RDS에서 이미 사용하고 있는 코드 ,애플리케이션 ,드라이버 및 도구를 변경하지 않고 읽기/쓰기 트래픽처리를 위한 리소스를 확보 가능


 

비관계형 데이터베이스

AWS 내 지원 서비스

  • 키-값 데이터베이스 : 키-값 페어를 대량으로 밀리초 단위로 저장 및 검색에 최적화 , 규모 및 성능 오버헤드 발생하지 않으며
    비관계형 데이터베이스의 유형에 속함
    • DynamoDB: 완전관리 키-값 비관계 DataBase로 원활한 확장성 및 예측 가능 서은ㅇ 제공
      데이터 저장 및 검색하는 어떤 수준의 트래픽이라도 처리하는 데이터베이스 생성
      가동 중지 및 성능 저하 없이 처리용량 확장 및 축소 가능
    •  
  • 문서 데이터베이스 : 데이터를 문서로 저장하며 , 읽기 가능한 문서로 표로 비관계형 데이터베이스 유형이
    • DocumentDB : 미션 크리티컬 MongoDB 워크로드를 대규모로 운영 시 필요한 성능, 확장성, 가용성을 제공하며
      스토리지와 컴퓨팅이 각각 분리되어 독립적으로 조정
  • 인 메모리 데이터베이스 : 짧은 지연 시간으로 데이터에 엑세스해야하는 읽기 중심 컴퓨팅 집약적 애플리케이션 활용
    반구조화, 구조화 데이터 원본에 모두 사용이 가능하다
    • ElasticCache : 완전관리형 Redis 및 Memcached 인 메모리 데이터 스토어를 제공하며
      처리량이 많고 지연 시간이 짧은 인메모리 데이터 스토어에서 데이터를 검색하여
      앱 구축 및 기존 앱 성능 개선
  • 그래프 데이터베이스 : 사용자가 고도로 연결된 데이터 세트 간의 관계를 쿼리 및 탐색하는 애플리케이션
    구조화,반구조화,비구조화 등 모든 데이터 유형에 가능 
    • Neptune : 안정적인 완전관리형 그래프 데이터베이스 서비스에 속하여 , 상호 연결성이 높은 데이터 집합 활용하는 앱에 사용 , 고가용성의 읽기 전용 복제본을 제공하며 , 특정 시점 복사본을 생성하고 , 영역간 S3로 지속적 백업 가용
  • 데이터 웨어하우스 : 페타바이트 규모의 엔터프라이즈급 완전 관리형 데이터 웨어하우징 서비스로 
    대용량 병렬처리 및 열 기반 데이터 스토리지, 효율적인 데이터 압축 인코딩 방식을 조합하여 , 스토리지 효율성 및 쿼리 성능 최적화 구현

 


데이터의 특성

 ● 구조화 데이터

트랜잭션 애플리케이션 및 분석 애플리케이션을 지원하도록 구성하며 일반적으로 관계형 데이터베이스를 저장한다
강력한 데이터 쿼리 및 분석을 효율적으로 실행하여 전반적인 추세를 파악하며 
미리 정해져 있는 쿼리를 통해 분석하고 검색이 가능하며 추가 쿼리는 승인 및 프로세스가 필요함

● 반구조화 데이터

구조화 데이터와 비슷하게 예측 및 구성이 가능하지만 , 구조화 데이터에 비해 유연하여 모든 단일 레코드에 대해 스키마 변경 없이

업데이트가 가능하다, 반구조화 데이터 사용시 데이터가 발전하고 변화함에 따라 모든 데이터를 캡쳐가 가능하여
비관계형 스토어에 저장되는 경우가 많다

json 저장

 

● 반구조화 데이터

비구조화 데이터는 구별이 가능하다 사전 정의된 방식으로 구성되는 것이 아니며 키-값 데이터베이스와 유사하다

이를 처리하기 위해선 전처리를 수행해야 하며 예시로는 텍스트메시지, 워드프로세싱, 문서, 동영상 등이 있다.

 

다양한 데이터 유형 혼합 사용

많은 기업들은 한가지의 데이터만 사용하지 않고 서비스를 제공함에 있어 다양한 유형의 시스템으로 부터

다른 유형의 데이터가 생성된다. 이러한 정보의 상관관계를 도출하는 방법으로 원본유형을 처리할 방법이 필요하다.

한개의 DB는 유형에 따라 다양한 데이터 원본 유형을 지원할 수 있으나 어떤 DB가 어떤 DB 유형을 지원하는지 확인해보아야 한다.


Amazon RDS

RDS란 관계형 데이터베이스로 , 스키마를 통해 데이터를 정규화 하고 비용을 절감하는 정형 쿼리 및 SQL을 사용한다.

데이터를 테이블, 레코드 ,필드의 형식으로 저장하는데 이때 테이블의 레코드는 고유한 값이 여야만 한다.

RDS는 종량과금제라는 특징을 가지고 있으며 , 지불 방식은 다음과 같다. 

 

재해 복구 아키텍쳐

AWS RDS for Oracle는 데이터베이스 문제 발생시 복구를 하기 위한 아키텍쳐를 설계 또한 필요하다

이를 위해 RDS에서는 스냅샷을 생성하여 S3 버킷으로 업로드를 통해 재해 복구 아키택쳐를 설계가 가능한데

 

워크플로는 다음과 같다

  1. Lambda를 사용하여 프로비저닝 없이 스냅샷을 RDS에서의 스냅샷을 생성하여 S3에 저장
  2. S3에 저장이 됨과 동시에 Amazon SNS를 통해  알림 전송
  3. SNS를 통해 전달된 알람을 Lambda에서 트리거로 사용하여, S3 버킷 1에 있는 스냅샷을 다른 가용영역의 S3 버킷 2로 백

실시간 데이터 분석 아키텍쳐

AWS RDS 데이터베이스는 실시간 데이터 분석이 실행 시 지연 시간이 발생하고

이러한 데이터 분석 실행시 지연 시간이 발생할 수 있다 이러한 문제를 해결하기 위한 방법은

레코드를 데이터베이스에서 옮기는 아키텍쳐를 생성하여 해결이 가능하다.  

워크플로는 다음과 같다

  1. RDS는 저장 프로시저를 사용하여 Lambda함수 통합을 통해 새 레코드 삽입 시 실행
  2. Lambda 함수를 통해 RDS 저장 프로시저에 수집하여 Kinesis Data Firehose로  전달
  3. Firehose로 전달된 데이터를 분석하기 위하여 S3 버킷으로 전달 
  4. Athena를 통해 S3 버킷의 모든 레코드에 대해 실시간으로 쿼리를 실행
  5. QuickSight를 통하여 쿼리의 결과를 사용하여 보고서와 대시보드 구축, 모든 새 레코드의 새로고침 및 로드를 실시간 처리

리소스 간단 설명

더보기

처리/ Lambda 함수: 서버를 프로비저닝 하거나 관리하지 않고도 코드를 구성

전송/ Kinesis Data Firehose : 데이터를 캡쳐하고 변환하여 S3데이터 레이크를 스토리지 서비스로 로드하는 서비스

저장/ S3 버킷: 스냅샷, 파일, 데이터 등을 레포지토리에 정리 

쿼리/ Amazon Athena: S3에 저장된 데이터를 간편하게 분석 할 수 있는 대화식 쿼리 서비스 

시각화/ Amazon QucikSight 조직내 구성원에게 바로 볼 수 있도록 시각화를 제공하는 인텔리전스 서비


Amazon Aurora

대량의 데이터를 효율적으로 수집한 후 프로그래밍 할 필요 없이 사용 가능한 형태로 제공하는 관계형 데이터베이스 중

Auorora는 클라우드 용으로 구축되었다 MySQL과 PostgreSQL과 호환하며 고급 엔터프라이즈 데이터베이스의 속도와 안정성을 오픈 소스 데이터베이스 간편성 및 비용에 효율성을 가져갈 수 있다

 

데이터베이스 엔진에 사용할 수 있는 메모리 양, CPU, I/O의 기능을 정의하고 메모리 최적화 및 버스트 가능 성능이라는 인스턴스를 지원하며, MySQL, PostgreSQL 두가지 엔진을 제공합니다 .

 

Aurora 쿼리의 응답 시간을 개선하고 데이터베이스 인스턴스 성능과 내구성을 높이는 읽기전용 복제본 최대 15개 생성

Amazon Aurora Global Database는 MySQL에서 사용 할 수 있는 하나의 기능에 속해 AWS 리전에 걸쳐 사용이 가능

 

보안 고려사항

  • 인터넷과의 근접성 VPC 내 데이터베이스를 배치하여 데이터베이스에 대한 액세스를 제한, 트래픽 퍼널로 전달하기 위해
    인터넷 게이트웨이 생성이 필요
  • 데이터베이스 인스턴스에 대한 요청을 수락해야 하는 인스턴스에 대한 액세스 제어, 보안 그룹은 데이터베이스에 대한
    액세스 제어 
  • AWS IAM 을 사용하여 자격증명 생성 및 관리 , IAM에 동일한 사용자 역할을 Aurora 에서도 사용 가능
  • 데이터베이스, 인스턴스 통신을 보호 HTTPS 연결을 사용하여 연결
  • 데이터베이스 내 데이터를 보호 AES-256 비트 암호화 알고리즘을 사용하여 암호화

 

퍼블릭 원본 수집 아키텍쳐

웹사이트, 오픈 API 등 퍼블릭 소스에서 발생하는  날씨 데이터를 수집하여
AWS 내 데이터베이스로 전달 해 분석 가능한 구조로 만들기위한 아키텍쳐 수행 예시

 

 

워크플로는 다음과 같음

  • 퍼블릭 날씨 데이터 원본이 포함된 웹 사이트의 데이터를  지속적으로 수집
  • Kinesis Data Firehose를 통하여 날씨 웹 사이트에서 수집하여 Lambda함수로 전송
  • Lambda함수는 데이터 스트림에서 데이터를 가져와 S3 버킷에 저장을 수행
  • 저장된 데이터를 S3버킷에서 DMS가 가져와 지정된 데이터베이스 내 Aurora 테이블로 로
  • DMS 가 생성한 테이블의 데이터를 가져와 데이터베이스에 액세스 하는 애플리케이션 생성

최종적으로 웹사이트에서 지속적으로 수집된 데이터를 S3 -> DMS -> Aurora를 통하여 최종적으로
읽기/쓰기를 고속으로 수행 가능

 

 

 

RDS 와 Aurora 차이점

항목 RDS Aurora
정의 AWS가 관리해주는 오픈소스 기반 RDBMS AWS가 설계한 고성능 클라우드 네이티브 DB
지원 엔진 MySQL, PostgreSQL, Oracle, SQL Server 등 Aurora MySQL, Aurora PostgreSQL (2종 전용)
성능 일반적인 오픈소스 성능 수준 MySQL보다 5배, PostgreSQL보다 3배 빠름
스토리지 방식 EBS 기반 스토리지 (인스턴스별) 공유 분산 스토리지 (6중 복제, 최대 128TB)
확장성 (읽기) 최대 5개의 Read Replica (지역제한 있음) 최대 15개의 Reader 노드, Auto Scaling 지원
장애 복구(Failover) Multi-AZ 구성 시 지원 (60초 이상 소요 가능) 자동 Writer 승격, 수초 내 빠른 전환
Auto Scaling 수동 스케일 업/다운 Aurora Serverless, Auto Scaling 지원
요금 과금 기준 인스턴스 시간 + 스토리지 GB 단위 저장공간 + I/O + 초 단위 과금 (세밀함)
데이터 처리 방식 행 기반(Row-based) 저장 컬럼 기반 아님, 동일하게 행 기반
사용 목적 단순한 RDB, 트랜잭션 중심, 소규모 웹앱 대규모 API, 대시보드, 실시간 분석 등 고성능 워크로드
주요 장점 친숙함, 저렴한 비용, 다양한 엔진 선택 고성능, 자동 복제/확장, 무중단 장애 복구
적합한 경우 블로그, 사내 ERP, WordPress, 소규모 CRUD 앱 AI API, 대규모 사용자, 글로벌 서비스, 고성능 웹앱

선택 사례

“비용이 중요하고, 간단한 웹서비스 정도야.” Amazon RDS
“성능, 고가용성, 실시간 확장이 중요해.” Amazon Aurora
“DB가 주기적으로 수만 건을 읽어야 해.” Aurora (Reader 노드 활용)
“지연이 생기면 안 되는 API 백엔드야.” Aurora (성능 + 빠른 장애 복구)
“MySQL 써봤는데 운영은 맡기고 싶어.” RDS (학습비용 적음)

⚙️ 실습 요약

 

자원 구성

 

더보기

VPC

  • 이름 태그: Amazon RDS 프로젝트
  • IPv4 CIDR 블록: 10.30.0.0/16
VPC 서브넷
 
  • 프라이빗 서브넷 1
    • 이름: RDS Project Private Subnet 01
    • CIDR: 10.30.101.0/24
  • 프라이빗 서브넷 2
    • 이름: RDS Project Private Subnet 02
    • CIDR: 10.30.102.0/24
  • 퍼블릭 서브넷
    • 이름: RDS Project Public Subnet
    • CIDR: 10.30.201.0/24
 
 

EC2 구성

 

이 프로젝트에서 사용된 설정은 다음과 같습니다.

  • 인스턴스가 Amazon RDS 프로젝트 VPC에 배치되었습니다.
  • 인스턴스가 RDS 프로젝트 퍼블릭 서브넷에 배치되었습니다.
 
보안그룹
 

보안 그룹은 Amazon EC2 인스턴스 및 Amazon RDS 데이터베이스에 액세스할 수 있는 사용자를 제어합니다.

 

이 프로젝트에서 사용된 설정은 다음과 같습니다.

  • 그룹 1
    • 보안 그룹 이름: EC2 for RDS
    • 설명:  SSH access to EC2 for RDSProject
    • SSH 포트 22를 사용해 규칙을 추가하고 내 IP를 선택합니다.
  • 그룹 2
    • 보안 그룹 이름: RDS DB Access
    • 설명: Access from EC2
    • MySQL/Aurora 포트 3306을 사용해 규칙을 추가하고 EC2 for RDS 보안 그룹을 선택합니다.

💡 EC2 인스턴스 생성 실습