
supabase, postgresql, mysql, mariadb, firebase 등으로 시작하고 후에 확장해서 로드밸런서 붙이거나 하는 것
MVP: Minimum Viable Product
초기에 죄다 azure function(서버리스)로 처리하면 의존성이 증가하여 유지보수가 힘들다 → NOSQL로도 만들수 있지만, RDBMS를 함께 써야 확장성이 좋다.
MySQL을 쓰더라도 온프레미스로 vm(월 100) 쓸거냐
Azure 데이터 서비스의 전체 그림을 이해하고, 실습 환경을 직접 구축하는 과정이다.
예상 비용은 1인당 약 $0.5로 안내되어 있다.
이번 과정의 학습 목표는 다음과 같다.
| 학습 목표 |
|---|
| DB 진화 과정(계층형 → RDBMS → NoSQL → NewSQL) 설명 가능 |
| CAP / BASE 차이를 실무 사례로 비교 가능 |
| Azure 데이터 서비스 전체 지형도 + 의사결정 트리 활용 |
| 구독 · 리소스 그룹 · VNet · NSG 직접 생성 |
| Budget Alert로 비용 사전 통제 |
| 리소스 정리 스크립트 작성 및 실행 |
| 스킬 | 수준 | 구분 |
|---|---|---|
| SQL | SELECT / JOIN 기본 쿼리 작성 · 조인 이해 | 필수 |
| Linux CLI | ls, cd, ssh, vi 기본 조작 | 필수 |
| Azure Portal | 리소스 검색 · 생성 화면 탐색 | 필수 |
| 네트워킹 기초 | IP, 서브넷, 방화벽 개념 | 권장 |
| Git 기초 | clone, commit 수준 | 권장 |
DB 역사를 배우는 이유는 현재 기술의 장단점이 과거 문제 해결 과정에서 탄생했기 때문이다.
| 항목 | 내용 |
|---|---|
| 대표 시스템 | IBM IMS (1966) |
| 구조 | 트리 구조: 부모 → 자식 |
| 장점 | 빠른 읽기 |
| 한계 | 유연성 부족 |
| 항목 | 내용 |
|---|---|
| 대표 모델 | CODASYL |
| 특징 | 다대다 관계 지원 |
| 항목 | 내용 |
|---|---|
| 핵심 인물 | E.F. Codd (1970) |
| 핵심 개념 | 데이터를 테이블로 추상화 |
| 쿼리 언어 | SQL: 선언적 쿼리 언어 |
| 대표 DB | Oracle (1979), SQL Server (1989), PostgreSQL (1996) |
RDBMS가 혁명적이었던 이유는 기존 계층형·네트워크 DB의 한계를 해결했기 때문이다.
| 연도 | 내용 |
|---|---|
| 1970 | Codd 관계 모델 논문 |
| 1974 | SEQUEL (IBM) |
| 1979 | Oracle V2, 최초 상용 |
| 1986 | SQL-86, ANSI 표준 |
| 1992 | SQL-92 |
| 1999 | SQL:1999, CTE / 윈도우 함수 |
| 2016 | SQL:2016, JSON |
SQL은 “어떻게 가져올지”가 아니라 “무엇을 가져올지”를 기술한다.
| 방식 | 설명 |
|---|---|
| 절차적 | HOW를 기술, 어떻게 데이터를 가져올지 작성 |
| 선언적 | WHAT을 기술, 무엇을 가져올지 작성 |
예시:
SELECT name FROM users
WHERE age > 30;
이 경우 사용자는 원하는 결과만 선언하고, 실제 최적 경로는 DB 엔진이 결정한다.
1980년대부터 2000년대까지 RDBMS는 데이터베이스 시장을 지배했다.
Not Only SQL
| 모델 | 대표 기술 | 특징 | 사용 예 |
|---|---|---|---|
| Key-Value | Redis, DynamoDB | 최고 성능 | 캐시, 세션 관리 |
| Document | MongoDB, Cosmos DB | JSON / BSON, 유연한 스키마 | 문서형 데이터 |
| Column-Family | Cassandra, HBase | 대규모 쓰기 | 시계열, 로그 |
| Graph | Neo4j, Gremlin | 관계 탐색 | 소셜, 추천 |
2000년대 Google과 Amazon이 NoSQL의 길을 열었다.
2004: Google BigTable 논문 → Column-Family 모델에 영감
2007: Amazon Dynamo 논문 → Key-Value + Eventual Consistency
2009: MongoDB, Cassandra, Redis 등 폭발적 등장
핵심 동인: 웹 스케일
RDBMS의 수직 확장 한계
수평 확장 필요
실시간으로 기록해야하는 부분(그날 게임점수 신기록) 이런건 NoSQL로 처리하는게 이득
데이터베이스는 구조화된 정보나 데이터의 조직화된 모음이다. 일반적으로 컴퓨터 시스템에 전자적으로 저장된다.
DBMS(Database Management System)는 사용자와 애플리케이션이 데이터베이스와 상호 작용할 수 있게 해주는 소프트웨어이다.
| 역할 |
|---|
| 데이터의 일관성 유지 |
| 보안 및 접근 제어 관리 |
| 중복 데이터 제거 및 저장 공간 최적화 |
| 다중 사용자 접근 제어 |
데이터는 가공되지 않은 원시 사실이나 관찰 결과를 의미한다. 그 자체로는 특별한 의미가 없는 단순한 숫자, 문자, 이미지 등의 모음이다.
| 구분 | 내용 |
|---|---|
| 예시 | 36.5, "홍길동", 2023-05-15 |
| 특징 | 컴퓨터가 처리할 수 있는 형태로 표현된 사실 |
| 상태 | 해석되지 않은 원시 상태 |
정보는 데이터를 가공·처리하여 의미를 부여한 결과물이다. 특정 목적을 위해 데이터를 해석하고 조직화한 형태이다.
| 구분 | 내용 |
|---|---|
| 예시 | “체온은 정상(36.5℃)입니다” |
| 특징 | 의사결정에 활용 가능한 가치 있는 결과물 |
| 상태 | 맥락과 관계성이 부여된 상태 |
데이터베이스 기술은 1960년대부터 시작되어 컴퓨팅 기술의 발전과 함께 계속 진화해왔다.
초기에는 단순한 파일 시스템으로 데이터를 관리했지만, 시간이 지나면서 계층형 DB, 네트워크형 DB, 관계형 DB, 객체지향 DB, NoSQL, NewSQL, 클라우드 DB까지 발전했다.
이러한 변화는 다음 요인에 의해 가속화되었다.
| 발전 요인 |
|---|
| 하드웨어 성능 향상 |
| 네트워크 기술 발전 |
| 비즈니스 요구사항 변화 |
파일 시스템은 초기 데이터 관리 방식이다. 데이터를 데이터베이스가 아니라 파일 단위로 저장하고, 애플리케이션이 직접 파일을 읽고 쓰는 방식이었다.
| 특징 |
|---|
| 데이터를 단순 텍스트 파일이나 바이너리 파일로 저장 |
| 각 애플리케이션마다 독립적인 파일 구조 사용 |
| 메인프레임 컴퓨터에서 주로 사용 |
| 한계 |
|---|
| 데이터 중복 발생 불가피 |
| 일관성 유지 어려움 |
| 복잡한 쿼리나 검색 기능 부재 |
| 데이터 보안 취약 |
| 동시 접근 제어 불가능 |
이 시기에는 프로그래머가 직접 파일 관리 로직을 구현해야 했다. 따라서 데이터 접근과 관리에 많은 시간과 자원이 소모되었다.
계층형 데이터베이스는 데이터를 트리 구조로 구성한다. 부모-자식 관계를 중심으로 데이터를 표현하며, 하향식으로 데이터를 탐색한다.
| 특징 |
|---|
| 트리 구조로 데이터 구성 |
| 부모-자식 관계(1:N) 표현 |
| 하향식 데이터 탐색 방식 |
| IBM IMS(Information Management System, 1966년) 등장 |
| 한계 |
|---|
| 복잡한 관계 표현 어려움 |
| 데이터 접근 경로 사전 정의 필요 |
| 구조 변경 시 전체 시스템에 영향 |
계층형 데이터베이스는 파일 시스템의 한계를 극복하고 구조화된 데이터 관리를 가능하게 했지만, 복잡한 다대다 관계를 표현하기에는 제한적이었다.
네트워크형 데이터베이스는 계층형 모델보다 복잡한 관계를 표현하기 위해 등장했다. 그래프 구조를 사용하며 레코드 간 다대다 관계를 표현할 수 있다.
| 요소 | 설명 |
|---|---|
| 그래프 구조 | 레코드 간 다대다(N:M) 관계 표현 가능 |
| CODASYL | 1970년대 네트워크 DB 표준화 모델 개발 |
| 포인터 시스템 | 레코드 간 직접 연결 포인터 사용 |
| 유연한 쿼리 | 계층형보다 향상된 데이터 검색 기능 |
네트워크형 데이터베이스는 계층형 모델의 제한을 극복했지만, 여전히 데이터 구조와 쿼리가 복잡하다는 한계가 있었다.
1970년 IBM 연구원 에드거 F. 코드(E.F. Codd)는 “A Relational Model of Data for Large Shared Data Banks”라는 논문을 발표했다. 이 논문은 관계형 데이터베이스의 이론적 기반을 마련했다.
| 혁신점 |
|---|
| 테이블(릴레이션) 구조 도입 |
| 수학적 집합 이론 기반 |
| 데이터와 물리적 저장 구조 분리 |
| 선언적 쿼리 언어 개념 제시 |
코드의 관계형 모델은 이전 데이터베이스 패러다임의 복잡성을 극복하고, 직관적이고 유연한 데이터 구조를 제공했다. 이 개념은 현대 데이터베이스 발전의 토대가 되었다.
| 시기 | 내용 |
|---|---|
| 1974 | IBM System R 프로젝트에서 SQL(Structured Query Language) 개발 |
| 1979 | Oracle V2 출시, 최초의 상업용 RDBMS |
| 1980년대 | IBM DB2, Informix, Sybase 등장 |
| 1989 | ANSI 및 ISO에서 SQL 표준 제정 |
| 1990년대 | Microsoft SQL Server, MySQL 등장으로 RDBMS 대중화 |
관계형 데이터베이스는 표준화된 SQL의 등장과 함께 산업 표준으로 자리 잡았다. 비즈니스 애플리케이션과 공공 시스템에서 널리 채택되었고, 이 시기에 데이터 무결성, 트랜잭션 처리, 백업/복구 등의 핵심 기능이 발전했다.
1980년대 후반 객체지향 프로그래밍이 인기를 얻으면서 복잡한 데이터 구조를 더 잘 표현할 수 있는 데이터베이스의 필요성이 커졌다.
| 내용 |
|---|
| 객체지향 프로그래밍의 확산 |
| 복잡한 데이터 구조 표현 필요 |
| 객체와 데이터베이스 간 표현 차이 해소 필요 |
| 특징 |
|---|
| 객체와 클래스 개념을 데이터베이스에 적용 |
| 상속, 다형성, 캡슐화 지원 |
| 복잡한 데이터 타입과 관계 표현 가능 |
| 객체 참조를 통한 관계 표현 |
| 대표 객체지향 DBMS |
|---|
| GemStone |
| ObjectStore |
| Versant |
객체지향 DBMS는 복잡한 데이터 표현에 강점이 있었지만, 관계형 데이터베이스의 강력한 점유율과 표준화된 SQL의 부재로 인해 주류 시장에서는 제한적인 성공을 거두었다.
객체-관계형 DBMS는 관계형 데이터베이스의 테이블 구조와 객체지향 데이터베이스의 유연성을 결합한 하이브리드 모델이다.
관계형 데이터베이스의 테이블 구조와 객체지향 데이터베이스의 유연성을 결합한다.
복잡한 사용자 정의 데이터 타입, 배열, XML, JSON 등 다양한 형식의 데이터를 직접 저장하고 처리할 수 있다.
객체 조작을 위한 확장된 SQL 구문을 제공하여 복잡한 데이터 구조에 대한 쿼리를 쉽게 한다.
| 대표 객체-관계형 DBMS |
|---|
| PostgreSQL |
| Oracle Database |
| IBM DB2 |
| Microsoft SQL Server |
현대적인 관계형 데이터베이스 대부분은 객체-관계형 기능을 통합하고 있다.
| 세대 | 유형 | 시기 | 주요 특징 | 대표 시스템 |
|---|---|---|---|---|
| 1세대 | 파일 시스템 | 1960년대 초 | 단순 파일 기반 데이터 저장 | ISAM, VSAM |
| 2세대 | 계층형 | 1960년대 중반 | 트리 구조, 부모-자식 관계 | IBM IMS |
| 3세대 | 네트워크형 | 1970년대 초 | 그래프 구조, 복잡한 관계 | IDMS, CODASYL |
| 4세대 | 관계형 | 1970~80년대 | 테이블 구조, SQL | Oracle, DB2, SQL Server |
| 5세대 | 객체지향 / 객체관계형 | 1990년대 | 객체 모델, 복잡한 데이터 처리 | PostgreSQL, ObjectStore |
데이터베이스 시스템은 단순 파일 저장에서 시작해 복잡한 데이터 관계와 구조를 표현할 수 있는 형태로 발전했다. 각 세대는 이전 세대의 한계를 극복하고 새로운 요구사항을 충족하기 위해 등장했다.
1979년 출시된 엔터프라이즈급 RDBMS이다. 대규모 트랜잭션 처리와 안정성에 강점이 있다.
| 항목 | 내용 |
|---|---|
| 출시 | 1979년 |
| 특징 | 대규모 트랜잭션 처리, 안정성 |
| 주요 사용처 | 금융, 통신, 제조 등 대형 기업 |
1995년 출시된 오픈소스 RDBMS이다. 웹 애플리케이션과의 뛰어난 호환성과 속도가 특징이다.
| 항목 | 내용 |
|---|---|
| 출시 | 1995년 |
| 특징 | 오픈소스, 웹 애플리케이션 친화적, 빠른 속도 |
| 주요 사용처 | WordPress, Facebook 등 웹 서비스 기반 |
1989년 출시된 Microsoft의 RDBMS이다. Windows 환경과의 통합성이 뛰어나다.
| 항목 | 내용 |
|---|---|
| 출시 | 1989년 |
| 특징 | Windows 환경과 뛰어난 통합성 |
| 주요 사용처 | 중소기업부터 대기업까지 다양한 비즈니스 |
1996년 출시된 고급 오픈소스 RDBMS이다. 확장성과 표준 준수에 강점이 있다.
| 항목 | 내용 |
|---|---|
| 출시 | 1996년 |
| 특징 | 확장성, SQL 표준 준수, 복잡한 쿼리 처리 |
| 주요 사용처 | 대규모 데이터베이스, 복잡한 분석 시스템 |
| 특징 |
|---|
| 읽기 작업에 최적화된 성능 |
| 단순한 설치와 구성 |
| 웹 애플리케이션과의 호환성 |
| 다양한 스토리지 엔진 지원 |
| 빠른 처리 속도 중심 |
MySQL은 주로 콘텐츠 관리 시스템, 블로그, 웹 애플리케이션에 적합하다.
| 특징 |
|---|
| SQL 표준 준수 중시 |
| 복잡한 쿼리 최적화 |
| 고급 데이터 타입과 함수 지원 |
| 지리 정보 시스템(GIS) 기능 |
| 동시성과 안정성 중심 |
PostgreSQL은 금융 시스템, 과학 연구, 복잡한 데이터 분석에 적합하다.
| 시기 | 내용 |
|---|---|
| 1995년 | MySQL 출시. Michael Widenius와 David Axmark이 개발. 무료 관계형 DB로 웹 개발에 혁신을 가져옴 |
| 1996년 | PostgreSQL 출시. 버클리 대학 POSTGRES 프로젝트에서 발전한 고급 오픈소스 RDBMS |
| 2000년대 초 | 닷컴 붐과 저비용 웹 솔루션 수요 증가로 MySQL 등 오픈소스 DB 채택 급증 |
| 2008년 | Sun Microsystems가 MySQL을 10억 달러에 인수. 오픈소스 DB의 상업적 가치 입증 |
| 2010년 이후 | 오픈소스 DB가 엔터프라이즈 영역에서도 주류화. MariaDB, MongoDB 등 다양한 솔루션 등장 |
글로벌 금융 기관과 대기업에서 많이 사용되는 엔터프라이즈 DBMS이다.
| 주요 특징 |
|---|
| 고성능 트랜잭션 처리(OLTP) 지원 |
| 실시간 애플리케이션 클러스터(RAC) |
| 고급 보안 및 암호화 기능 |
| 다양한 데이터 유형 지원: 공간 데이터, 멀티미디어 등 |
대형 메인프레임 환경에서 강점을 가진 엔터프라이즈 데이터베이스이다.
| 주요 특징 |
|---|
| 고성능 분석 처리 |
| AI 기반 쿼리 최적화 |
| 하이브리드 트랜잭션/분석 처리(HTAP) |
| 메인프레임 환경과의 통합 지원 |
Windows 환경에서 강력한 통합 기능을 제공하는 엔터프라이즈 솔루션이다.
| 주요 특징 |
|---|
| 비즈니스 인텔리전스 도구 통합 |
| 인메모리 OLTP 엔진 |
| Microsoft 생태계와 높은 통합성 |
| 고급 보안 및 감사 기능 |
NoSQL은 Not Only SQL을 의미한다. 전통적인 관계형 데이터베이스의 한계를 넘어서기 위해 등장한 새로운 데이터베이스 패러다임이다.
| 배경 |
|---|
| 웹 2.0과 소셜 미디어의 폭발적 성장 |
| 빅데이터와 실시간 분석 필요성 |
| 수평적 확장성(Scale-out) 요구 |
| 유연한 스키마와 다양한 데이터 형식 필요 |
2000년대 후반 Google의 BigTable과 Amazon의 Dynamo 논문이 발표되면서 NoSQL 움직임이 본격화되었다. 이후 MongoDB, Cassandra, Redis 등 다양한 NoSQL 데이터베이스가 등장하며 새로운 데이터 저장 패러다임을 형성했다.
| 수치 | 의미 | 설명 |
|---|---|---|
| 2.5EB | 일일 생성 데이터 | 2020년 기준 전 세계에서 하루에 생성되는 데이터 양. 이 중 80% 이상이 비정형 데이터 |
| 1B+ | 소셜 미디어 사용자 | 소셜 미디어 플랫폼 사용자는 매일 수십억 건의 상호작용 데이터를 생성 |
| 40% | 연간 데이터 증가율 | 기업 데이터는 연평균 40% 이상 증가 |
| 1000x | 처리 속도 향상 | 일부 NoSQL 시스템은 특정 워크로드에서 관계형 DB보다 최대 1000배 빠른 처리 속도 제공 |
| 유형 | 설명 |
|---|---|
| Key-Value | 단순한 키와 값의 쌍으로 데이터 저장. 고속 읽기/쓰기에 최적화 |
| Document | JSON/BSON 형식의 문서로 데이터 저장. 유연한 스키마 |
| Column | 컬럼 패밀리 단위로 데이터 저장. 대규모 분석에 적합 |
| Graph | 노드와 관계로 데이터 저장. 복잡한 연결 분석에 최적화 |
각 NoSQL 유형은 특정 사용 사례와 데이터 모델에 최적화되어 있다. 관계형 데이터베이스로 해결하기 어려운 특정 문제를 효율적으로 해결할 수 있다. 오늘날 많은 기업은 다양한 워크로드를 위해 여러 유형의 데이터베이스를 함께 사용하는 멀티 모델 접근 방식을 채택하고 있다.
Key-Value DB는 단순한 키(key)와 값(value)의 쌍으로 데이터를 저장하는 가장 기본적인 NoSQL 데이터베이스이다.
| 특징 |
|---|
| 초고속 읽기/쓰기 성능 |
| 수평적 확장성(Scale-out) 용이 |
| 단순한 API: GET, PUT, DELETE |
| 스키마 제약 없음 |
| 시스템 | 설명 |
|---|---|
| Redis | 인메모리 기반, 다양한 데이터 구조 지원 |
| Amazon DynamoDB | 완전 관리형 서비스 |
| Riak | 고가용성, 분산 아키텍처 |
| Memcached | 분산 캐싱 시스템 |
| 활용 분야 |
|---|
| 세션 관리 및 사용자 프로필 |
| 실시간 추천 엔진 |
| 쇼핑 카트 및 캐싱 시스템 |
| IoT 데이터 저장 |
Document DB는 JSON, BSON 또는 XML과 같은 반구조화된 형식의 문서로 데이터를 저장한다. 각 문서는 자체적으로 완결된 정보를 포함하며, 다양한 필드와 중첩 구조를 가질 수 있다.
{
"id": "user123",
"name": "홍길동",
"email": "hong@example.com",
"orders": [
{ "id": "ord1", "date": "2023-01-15" },
{ "id": "ord2", "date": "2023-02-20" }
]
}
| 특징 |
|---|
| 유연한 스키마: 문서마다 다른 구조 가능 |
| 복잡한 데이터 구조의 자연스러운 표현 |
| 개발자 친화적인 데이터 모델 |
| 수평적 확장성 및 복제 지원 |
| 강력한 쿼리 기능: 인덱싱, 집계 등 |
| 대표 Document DB |
|---|
| MongoDB |
| Couchbase |
| Firebase Firestore |
| Amazon DocumentDB |
주요 활용 분야는 웹 애플리케이션, 콘텐츠 관리 시스템, 카탈로그, 사용자 프로필 관리 등이다.
컬럼형 데이터베이스는 데이터를 행이 아닌 컬럼 단위로 저장한다. 관련 컬럼들은 컬럼 패밀리로 그룹화된다. 분석 쿼리에서 필요한 컬럼만 효율적으로 읽을 수 있다는 장점이 있다.
| 특징 |
|---|
| 대규모 데이터 분석에 최적화 |
| 고도의 확장성: 페타바이트 규모 |
| 희소 매트릭스 효율적 처리 |
| 데이터 압축률이 높음 |
| 분산 아키텍처 기본 지원 |
| 시스템 | 설명 |
|---|---|
| Apache Cassandra | 높은 가용성, 선형적 확장성 |
| HBase | Hadoop 에코시스템 기반 |
| Google Bigtable | 구글의 대규모 데이터 처리 시스템 |
| ScyllaDB | 고성능 Cassandra 호환 시스템 |
| 활용 분야 |
|---|
| 시계열 데이터 |
| 센서 데이터 |
| 로그 분석 |
| 대규모 분석 시스템 |
그래프 DB는 실제 세계의 연결 구조를 노드와 관계로 모델링한다.
| 요소 | 설명 |
|---|---|
| 노드와 관계 | 실제 세계의 연결 구조를 노드(개체)와 엣지(관계)로 자연스럽게 모델링 |
| 관계 탐색 | 복잡한 관계를 효율적으로 탐색하는 쿼리 성능 우수 |
| 속성 그래프 | 노드와 관계 모두에 속성을 부여할 수 있는 유연한 모델 |
| 그래프 쿼리 | Cypher, Gremlin 등 그래프 전용 쿼리 언어 지원 |
| 대표 그래프 DB |
|---|
| Neo4j |
| Amazon Neptune |
| JanusGraph |
| ArangoDB |
| 활용 분야 |
|---|
| 소셜 네트워크 분석 |
| 추천 엔진 |
| 사기 탐지 |
| 지식 그래프 |
| 네트워크 및 IT 운영 분석 |
NewSQL은 전통적인 관계형 데이터베이스의 강점과 NoSQL의 확장성을 결합한 데이터베이스이다.
| 핵심 요소 | 설명 |
|---|---|
| 관계형 모델 | SQL 및 ACID 트랜잭션 지원 |
| 수평적 확장성 | NoSQL 수준의 분산 아키텍처 |
| 고성능 처리 | 트랜잭션과 분석 워크로드 동시 최적화 |
| 특징 |
|---|
| 분산 SQL 쿼리 처리 |
| 자동 샤딩(Sharding) 지원 |
| 실시간 분석 기능 |
| 클라우드 네이티브 설계 |
| 시스템 | 설명 |
|---|---|
| Google Spanner | 글로벌 분산 트랜잭션 |
| CockroachDB | Spanner에서 영감을 받은 오픈소스 DB |
| VoltDB | 인메모리 트랜잭션 처리 |
| TiDB | MySQL 호환 분산 데이터베이스 |
NewSQL은 미션 크리티컬한 트랜잭션 처리와 대규모 데이터 처리를 동시에 요구하는 현대적 애플리케이션에 적합하다.
인메모리 DBMS는 주로 디스크가 아닌 메인 메모리(RAM)에 데이터를 저장하고 처리하는 데이터베이스 시스템이다. 디스크 I/O 병목을 제거하여 매우 빠른 처리 속도를 제공한다.
| 특징 |
|---|
| 초고속 데이터 접근: 디스크 대비 수십~수백 배 |
| 실시간 데이터 처리 및 분석 |
| 복잡한 쿼리의 빠른 실행 |
| 낮은 지연 시간(latency) |
| 시스템 | 설명 |
|---|---|
| Redis | 오픈소스 인메모리 키-값 저장소 |
| SAP HANA | 기업용 인메모리 분석 플랫폼 |
| MemSQL(SingleStore) | SQL 기반 분산 인메모리 DB |
| VoltDB | 고성능 트랜잭션 처리 |
| 활용 분야 |
|---|
| 실시간 분석 |
| 금융 거래 |
| 게임 |
| IoT |
| 실시간 대시보드 |
데이터베이스의 활용 영역은 단순 트랜잭션 처리에서 실시간 분석, AI 기반 의사결정, 엣지 컴퓨팅까지 확장되고 있다.
| 활용 영역 | 설명 |
|---|---|
| 웹 애플리케이션 | 초기 인터넷과 웹사이트를 위한 단순 데이터 저장 |
| 소셜 미디어 | 대규모 사용자 관계와 상호작용 데이터 처리 |
| 빅데이터 | 페타바이트 규모의 구조화/비구조화 데이터 분석 |
| IoT 센서 데이터 | 수백만 디바이스의 실시간 데이터 수집과 처리 |
| AI 및 머신러닝 | 모델 훈련 및 추론을 위한 대규모 데이터 저장소 |
현대 애플리케이션은 다양한 데이터 유형과 워크로드를 처리할 수 있는 다기능 데이터 플랫폼을 요구한다.
기업들은 자체 데이터센터에서 데이터베이스를 운영·유지보수하는 대신, 클라우드 제공업체가 관리하는 서비스형 데이터베이스(DBaaS)로 전환하고 있다.
| 이점 |
|---|
| 초기 투자 비용(CapEx) 감소 |
| 자동화된 확장성 및 고가용성 |
| 관리 부담 및 운영 비용 감소 |
| 신속한 배포 및 테스트 환경 구성 |
| 최신 기술로의 지속적 업그레이드 |
| 클라우드 제공업체 |
|---|
| Amazon Web Services(AWS) |
| Microsoft Azure |
| Google Cloud Platform(GCP) |
| IBM Cloud |
| Oracle Cloud |
2023년 기준 새로 배포되는 데이터베이스의 75% 이상이 클라우드 환경에서 구축되고 있으며, 이 비율은 계속 증가할 전망이라고 설명한다.
패치, 백업, 확장, 고가용성 설정 등 데이터베이스 관리 작업을 클라우드 제공업체가 자동으로 처리한다.
필요에 따라 컴퓨팅 및 스토리지 리소스를 자동으로 확장하거나 축소하여 비용을 최적화할 수 있다.
사용한 만큼만 비용을 지불하는 서버리스 데이터베이스 옵션을 통해 인프라 관리 부담을 제거한다.
하나의 서비스에서 관계형, 문서, 그래프 등 다양한 데이터 모델을 지원하여 애플리케이션 개발을 단순화한다.
전 세계 데이터 센터에 데이터를 자동으로 복제하여 지연 시간을 줄이고 데이터 주권 준수를 지원한다.
분석, 머신러닝, IoT 등 다른 클라우드 서비스와 통합하여 데이터 활용 가치를 높인다.
관리형 관계형 데이터베이스 서비스이다. MySQL, PostgreSQL, Oracle, SQL Server, MariaDB 등 다양한 엔진을 지원한다.
| 주요 기능 |
|---|
| 자동 백업 및 패치 적용 |
| 다중 AZ 배포를 통한 고가용성 |
| 읽기 전용 복제본 지원 |
완전 관리형 NoSQL 데이터베이스 서비스이다. 무제한 확장성과 밀리초 단위 성능을 제공한다.
| 주요 기능 |
|---|
| 서버리스 아키텍처 |
| 자동 다중 리전 복제 |
| 온디맨드 용량 모드 |
MySQL 및 PostgreSQL과 호환되는 클라우드 네이티브 관계형 데이터베이스이다. 기존 엔진보다 최대 5배 빠른 성능을 제공한다고 설명한다.
| 주요 기능 |
|---|
| 분산 스토리지 아키텍처 |
| 자동 복구 기능 |
| 글로벌 데이터베이스 지원 |
| 서비스 | 용도 |
|---|---|
| Amazon Redshift | 데이터 웨어하우스 |
| ElastiCache | 인메모리 캐싱 |
| Neptune | 그래프 DB |
| DocumentDB | MongoDB 호환 |
| Timestream | 시계열 DB |
글로벌 분산 트랜잭션을 지원하는 수평적 확장 관계형 데이터베이스이다. 강력한 일관성과 99.999% 가용성을 제공한다.
| 주요 기능 |
|---|
| 글로벌 트랜잭션 일관성 |
| 자동 샤딩 및 복제 |
| SQL 인터페이스 |
대규모 분석 및 운영 워크로드를 위한 완전 관리형 NoSQL 데이터베이스 서비스이다.
| 주요 기능 |
|---|
| 선형적 확장성 |
| HBase API 호환성 |
| 빅데이터 워크로드 최적화 |
MySQL, PostgreSQL, SQL Server를 위한 완전 관리형 관계형 데이터베이스 서비스이다.
| 주요 기능 |
|---|
| 자동 백업 및 복제 |
| 고가용성 구성 |
| 암호화 및 VPC 지원 |
서버리스 엔터프라이즈 데이터 웨어하우스이다. 페타바이트 규모의 데이터를 실시간으로 분석할 수 있다.
| 주요 기능 |
|---|
| SQL 기반 분석 |
| 머신러닝 통합 |
| 실시간 스트리밍 분석 |
| 서비스 | 용도 |
|---|---|
| Firestore | 문서형 DB |
| Memorystore | 인메모리 DB |
| Firebase Realtime Database | 실시간 동기화 DB |
Microsoft SQL Server 기반의 완전 관리형 관계형 데이터베이스 서비스이다.
| 주요 기능 |
|---|
| 지능형 성능 최적화 |
| 자동 확장 및 백업 |
| 고급 보안 기능 |
| 서버리스 컴퓨팅 옵션 |
글로벌 분산 멀티 모델 데이터베이스 서비스이다. 다양한 데이터 모델과 API를 지원한다.
| 주요 기능 |
|---|
| SQL, MongoDB, Cassandra, Gremlin, Table API 지원 |
| 글로벌 분산 및 다중 지역 쓰기 |
| 밀리초 단위 응답 시간 SLA |
| 자동 인덱싱 및 확장 |
오픈소스 데이터베이스를 위한 완전 관리형 서비스이다.
| 주요 기능 |
|---|
| 자동 패치 및 백업 |
| 고가용성 구성 |
| 확장 가능한 스토리지 |
| 고급 보안 기능 |
| 서비스 | 용도 |
|---|---|
| Azure Synapse Analytics | 데이터 웨어하우스 |
| Azure Cache for Redis | 인메모리 DB |
| Azure Database for MariaDB | 관리형 MariaDB |
자동화된 백업 시스템과 시점 복구(Point-in-Time Recovery)를 통해 데이터 손실 위험을 최소화한다. 백업 작업이 성능에 영향을 미치지 않으며 재해 복구 계획도 쉽게 구현할 수 있다.
워크로드 증가에 따라 리소스를 자동 확장하고, AI 기반 성능 모니터링과 최적화 도구로 데이터베이스 성능을 지속적으로 개선한다.
제공 기능:
| 기능 |
|---|
| 쿼리 분석 |
| 인덱스 추천 |
| 자동 튜닝 |
저장 및 전송 중 암호화, 세밀한 접근 제어, 위협 감지 등 다양한 보안 기능이 기본 제공된다.
지원하는 규정 준수 예시:
| 규정 |
|---|
| GDPR |
| HIPAA |
| PCI DSS |
다중 가용 영역 및 지역 복제, 자동 장애 조치(failover), 상시 가동 아키텍처 등을 통해 최대 99.999%의 가용성을 보장한다. 자연재해나 지역 장애에도 서비스 연속성을 유지할 수 있다.
| 장점 |
|---|
| 데이터에 대한 완전한 제어권 |
| 네트워크 지연 시간 최소화 |
| 라이선스 기반 일회성 비용 구조 |
| 클라우드 의존성 없음 |
| 단점 |
|---|
| 높은 초기 투자 비용 |
| 확장성 제한 및 복잡성 |
| 인력 및 유지보수 부담 |
| 재해 복구 구현 어려움 |
| 장점 |
|---|
| 빠른 배포 및 확장성 |
| 사용량 기반 비용 구조 |
| 관리 부담 최소화 |
| 내장된 고가용성 및 재해 복구 |
| 단점 |
|---|
| 데이터 주권 및 규제 이슈 |
| 네트워크 의존성 및 지연 가능성 |
| 장기적인 비용 증가 가능성 |
| 벤더 종속성(Lock-in) 위험 |
많은 기업은 두 접근 방식의 장점을 결합한 하이브리드 방식을 채택하고 있다. 워크로드 특성과 비즈니스 요구사항에 따라 최적의 배포 모델을 선택한다.
멀티 클라우드는 여러 클라우드 제공업체의 데이터베이스 서비스를 동시에 활용하는 접근 방식이다.
| 장점 |
|---|
| 벤더 종속성 감소 |
| 각 제공업체의 강점 활용 |
| 지역별 최적 서비스 선택 |
| 협상력 및 위험 분산 |
| 단점 |
|---|
| 일관된 관리의 복잡성 증가 |
| 데이터 동기화 복잡성 증가 |
하이브리드 데이터베이스 환경은 온프레미스와 클라우드 데이터베이스를 함께 운영하는 방식이다.
| 장점 |
|---|
| 민감한 데이터는 온프레미스에 보관 |
| 탄력적 워크로드는 클라우드로 이동 |
| 점진적 클라우드 마이그레이션 |
| 기존 투자 활용과 혁신 균형 |
| 과제 |
|---|
| 데이터 일관성 유지 |
| 복잡한 네트워크 구성 |
최근에는 Kubernetes 기반 데이터베이스 운영과 같은 컨테이너화된 접근 방식이 등장하여 환경 간 이식성을 높이고 있다. 데이터베이스 가상화 및 추상화 레이어를 통해 복잡성을 관리하는 솔루션도 발전하고 있다.
엔터프라이즈 영역에서도 오픈소스 데이터베이스 채택이 급증하고 있다.
| 주요 흐름 |
|---|
| PostgreSQL의 기업용 워크로드 확대 |
| MongoDB, Redis 등 NoSQL 솔루션의 성숙 |
| 클라우드 제공업체의 오픈소스 호환 서비스 |
| 개발자 커뮤니티 중심 혁신 가속화 |
기업들이 자체 데이터센터에서 클라우드 환경으로 데이터베이스를 이전하는 추세가 가속화되고 있다.
| 주요 흐름 |
|---|
| DBaaS(Database as a Service) 모델 확산 |
| 서버리스 데이터베이스 도입 증가 |
| 멀티 클라우드 및 하이브리드 전략 채택 |
| 마이그레이션 도구 및 서비스 발전 |
정형 데이터 외에도 다양한 비정형/반정형 데이터를 처리할 수 있는 능력이 중요해지고 있다.
| 주요 흐름 |
|---|
| JSON, XML, 지리공간 데이터 네이티브 지원 |
| 텍스트, 이미지, 오디오 분석 기능 통합 |
| 그래프 데이터 및 관계 분석 강화 |
| 멀티 모델 데이터베이스 증가 |
트랜잭션 처리(OLTP), 분석(OLAP), 혼합(HTAP) 중 어떤 워크로드인지 파악해야 한다.
정형 데이터인지 비정형 데이터인지, 데이터 크기와 성장률은 어느 정도인지, 관계 복잡성은 어떤지 고려해야 한다.
예상 사용자 수, 트래픽 패턴, 수직/수평 확장 필요성을 고려해야 한다.
CAP 이론에 따라 강한 일관성(CP)이 중요한지, 가용성과 파티션 허용(AP)이 중요한지 고려해야 한다.
예를 들어 금융 거래는 강한 일관성이 필요하지만, 소셜 미디어는 일시적 불일치를 허용할 수 있다.
복잡한 조인이 필요한지, 단순 키-값 검색이 중심인지, 실시간 응답이 필요한지에 따라 적합한 DB가 달라진다.
명확히 정의해야 할 성능 지표:
| 성능 지표 |
|---|
| 지연 시간 |
| 처리량 |
| 동시 사용자 수 |
팀의 기존 기술 스택과 호환되는지, 개발자가 얼마나 익숙한지, 커뮤니티 지원과 도구 생태계가 충분한지 고려해야 한다.
좋은 데이터베이스라도 팀이 효과적으로 활용할 수 없다면 가치가 제한된다.
| 유형 | 대표 시스템 | 강점 | 약점 | 주요 사용 사례 |
|---|---|---|---|---|
| 관계형 | Oracle, MySQL, PostgreSQL | 트랜잭션 처리, 데이터 일관성, SQL 표준 | 수평적 확장성 제한, 스키마 변경 어려움 | 금융, ERP, CRM 시스템 |
| 문서형 | MongoDB, Couchbase | 유연한 스키마, 개발 생산성, JSON 지원 | 복잡한 조인, 트랜잭션 처리 제한 | 콘텐츠 관리, 모바일 앱, 카탈로그 |
| 키-값 | Redis, DynamoDB | 초고속 응답, 단순성, 확장성 | 복잡한 쿼리 제한, 데이터 관계 표현 어려움 | 캐싱, 세션 관리, 실시간 분석 |
| 컬럼형 | Cassandra, HBase | 대규모 쓰기/분석, 수평적 확장성 | 실시간 읽기 성능, 복잡한 구성 | IoT 데이터, 로그 분석, 시계열 데이터 |
| 그래프 | Neo4j, Neptune | 관계 탐색, 연결 데이터 분석 | 대규모 확장성, 학습 곡선 | 소셜 네트워크, 추천 엔진, 사기 탐지 |
| 인메모리 | Redis, SAP HANA | 초고속 성능, 실시간 처리 | 비용, 메모리 제한, 지속성 관리 | 실시간 분석, 캐싱, 게임 리더보드 |
| NewSQL | Google Spanner, CockroachDB | 확장성 + SQL + 트랜잭션 | 성숙도, 복잡성, 비용 | 글로벌 금융 시스템, 고확장성 앱 |
각 데이터베이스 유형은 고유한 강점과 약점을 가지고 있으며, 특정 워크로드와 사용 사례에 최적화되어 있다.
많은 현대 애플리케이션은 다양한 유형의 데이터베이스를 함께 사용하는 폴리글랏 퍼시스턴스(Polyglot Persistence) 접근 방식을 채택하고 있다.
인공지능이 자동으로 데이터베이스를 튜닝, 최적화, 관리하는 시스템이 확산되고 있다.
자동화되는 영역:
| 영역 |
|---|
| 쿼리 최적화 |
| 인덱스 생성 |
| 리소스 할당 |
| 보안 위협 감지 |
DBA의 역할도 단순 운영보다 전략적 방향으로 진화하고 있다.
인프라 관리 없이 필요한 만큼만 사용하고 비용을 지불하는 서버리스 DB가 주류화될 전망이다. 개발자는 데이터베이스 운영보다 비즈니스 로직과 애플리케이션 개발에 집중할 수 있다.
IoT 장치와 5G 네트워크 확산으로 데이터 생성 지점에 가까운 엣지 위치에서 데이터를 처리하는 분산 데이터베이스 시스템이 중요해질 것이다.
핵심 과제는 중앙 클라우드와 엣지 노드 간의 효율적인 데이터 동기화이다.
데이터베이스 시스템 내에서 직접 머신러닝 모델을 실행하고 학습하는 기능이 강화될 것이다.
데이터 이동 없이 데이터베이스 내부에서 분석과 예측을 수행하는 AI in DB 개념이 발전할 것이다.
높은 투명성과 변조 방지가 필요한 애플리케이션을 위한 블록체인 기반 데이터베이스 시스템이 발전할 것이다.
중요성이 증가할 산업:
| 산업 |
|---|
| 공급망 |
| 금융 |
| 의료 |
단일 데이터베이스 시스템으로 모든 요구사항을 충족하는 시대는 지나고 있다. 현대적인 데이터 아키텍처는 다양한 유형의 데이터베이스를 목적에 맞게 조합하는 방향으로 진화하고 있다.
| 변화 |
|---|
| 워크로드별 최적화된 데이터 저장소 활용 |
| 마이크로서비스와 연계된 분산 데이터 관리 |
| 데이터 통합 및 거버넌스의 중요성 증가 |
데이터베이스는 단순한 저장소를 넘어 비즈니스 가치 창출의 핵심 도구로 진화하고 있다.
| 변화 |
|---|
| 실시간 인사이트 생성과 의사결정 지원 |
| AI/ML과 결합한 예측 분석 기능 강화 |
| 데이터 중심 조직으로의 변화 가속화 |
| 데이터 민주화와 셀프 서비스 분석 확산 |
데이터베이스 기술은 60년이 넘는 역사 동안 계속 진화해왔다. 앞으로도 클라우드, AI, IoT 등의 기술과 융합하며 발전할 것이다.
이러한 변화에 맞춰 데이터 전략을 수립하고 적응하는 조직이 디지털 시대의 경쟁에서 우위를 점할 수 있다.
다양한 산업 분야에서 비즈니스 요구사항에 따라 데이터베이스를 선택한 실제 사례를 살펴볼 수 있다.
| 사례 |
|---|
| 전자상거래 플랫폼의 멀티 모델 DB 전략 |
| 금융 기관의 하이브리드 클라우드 구현 |
| 의료 기관의 데이터 보안 및 규정 준수 접근법 |
NewSQL은 ACID와 수평 확장을 동시에 목표로 한다.
| 항목 | 내용 |
|---|---|
| 핵심 | ACID + 수평 확장 |
| 대표 기술 | CockroachDB, Google Spanner, TiDB |
Vector DB는 AI/ML 임베딩 검색에 사용된다.
| 항목 | 내용 |
|---|---|
| 핵심 | AI/ML 임베딩 검색 |
| 대표 기술 | Pinecone, Weaviate, Azure AI Search |
| 주요 활용 | RAG 패턴 핵심 |
ACID는 관계형 DB의 핵심 보장이다.
| 요소 | 의미 |
|---|---|
| Atomicity | 전부 성공 또는 전부 실패 |
| Consistency | 전후 무결성 유지 |
| Isolation | 동시 트랜잭션 비간섭 |
| Durability | 커밋 후 장애에도 보존 |
CAP는 분산 시스템에서 중요한 세 가지 특성이다.
| 요소 | 의미 | 설명 |
|---|---|---|
| C | Consistency | 모든 노드 동일 데이터, 강한 일관성 |
| A | Availability | 모든 요청에 응답, 다운타임 없음 |
| P | Partition Tolerance | 네트워크 분할 시에도 동작, 분산 시스템 필수 |
세가지를 모두 동시에 만족할 순 없다.(동시에 두개까지만 가능)
| 서비스 | CAP 선택 | 일관성 | 가용성 |
|---|---|---|---|
| SQL Server | CP | 강한 일관성 | 장애 시 다운타임 |
| Cosmos DB (Strong) | CP | 강한 일관성 | 쓰기 지연 |
| Cosmos DB (Session) | AP (실질) | 세션 내 일관 | 항상 응답 |
| Cassandra | AP | 최종 일관성 | 항상 응답 |
| MongoDB (기본) | CP | 강한 일관성 | Primary 장애 시 선출 대기 |
BASE는 NoSQL에서 많이 사용하는 유연한 일관성 모델이다.
| 요소 | 의미 |
|---|---|
| Basically Available | 항상 응답, 오래된 데이터라도 응답 |
| Soft State | 시스템 상태가 시간에 따라 변함 |
| Eventually Consistent | 충분한 시간이 지나면 일관성에 도달 |
| 구분 | ACID (RDBMS) | BASE (NoSQL) |
|---|---|---|
| 일관성 | 강한 일관성 (Strong) | 최종 일관성 (Eventual) |
| 확장 | 수직 확장 (Scale-Up) | 수평 확장 (Scale-Out) |
| 스키마 | 고정 (DDL) | 유연 (Schema-less) |
| 트랜잭션 | 복잡한 조인 최적 | 대량 읽기/쓰기 최적 |
| 사용 사례 | 금융 · ERP · 재고 | 소셜 · IoT · 실시간 분석 |
60년의 DB 진화를 한 장으로 요약하면 다음과 같다.
| 시대 | 변화 | 핵심 의미 |
|---|---|---|
| 1960s → 1970s | 계층형 → 관계형 | 데이터 독립성 혁명 |
| 2000s | NoSQL | 스케일과 유연성 혁명 |
| 2010s | NewSQL | ACID + Scale-Out 결합 시도 |
| 2020s | Vector DB | AI/ML 시대의 검색 인프라 |
핵심 메시지는 다음과 같다.
정답은 없다. 워크로드에 맞는 선택이 최선이다.
이 원칙이 이후 전체 과정의 판단 기준이 된다.
Azure에서 선택할 수 있는 데이터 서비스는 크게 네 영역으로 나눌 수 있다.
| 분류 | 서비스 | 특징 |
|---|---|---|
| IaaS — VM 기반 | SQL Server on VM, PG/MySQL on VM | 100% 제어 |
| PaaS — 관계형 | SQL Database, SQL MI, Flexible Server | 관리형 관계형 DB |
| PaaS — NoSQL | Cosmos DB | 5 API, 글로벌 분산 |
| 분석 · 시계열 | Synapse, ADX, Fabric | 분석 및 시계열 처리 |
| 구분 | SQL VM | SQL DB | SQL MI |
|---|---|---|---|
| 관리 | OS 직접 관리 | 완전 관리 | 거의 완전 관리 |
| 호환성 | 100% | 일부 제한 | 99% |
| HA | AG 직접 구성 | 내장 자동 | 내장 자동 |
| 비용 | VM + 라이선스 | DTU / vCore | vCore |
| 프로비저닝 | 수 분 | 수 분 | 약 4시간 |
| 부트캠프 | Day 2-3 | Day 4-5 | 이론만 (D-2) |
Cosmos DB는 글로벌 분산 NoSQL 서비스이다.
| 서비스 | 설명 |
|---|---|
| PG Flexible Server | Day 5 마이그레이션 타깃 |
| MySQL Flexible Server | MySQL 관리형 서비스 |
| Synapse Analytics | 데이터 웨어하우스 |
| ADX | 시계열 분석, Day 7 실습, Free Cluster |
| Microsoft Fabric | 통합 분석 플랫폼 |
Azure 데이터 서비스를 선택할 때 다음 질문을 기준으로 판단한다.
| 질문 | 선택 |
|---|---|
| SQL Server 100% 필요? | SQL VM |
| 완전 관리형 + SQL 호환? | SQL MI (이론) |
| 관계형 + 비용 최적? | SQL DB Serverless |
| PG/MySQL 워크로드? | Flexible Server |
| 글로벌 분산 + 다중 모델? | Cosmos DB |
| 시나리오 | 선택 |
|---|---|
| 온프레미스 SQL 2016 이관 | MI가 이상적이지만 프로비저닝 4시간 → SQL DB 검토 |
| 글로벌 게임 프로필 | Cosmos DB NoSQL API |
| IoT 센서 실시간 | ADX + KQL |
Azure 구독부터 Budget Alert까지 직접 구축한다.
목표는 3개 시나리오에 대해 2~3인 조별 토론 후 서비스 선택 결과를 발표하는 것이다.
| 순서 | 내용 |
|---|---|
| 1 | 강사가 시나리오 3개를 화면에 표시 |
| 2 | 2~3인 조 구성 |
| 3 | 조별 5분 토론: 각 시나리오에 적합한 Azure 서비스 선택 |
| 4 | 각 조 1분 발표: 선택한 서비스와 이유 |
| 5 | 강사가 정답과 추가 고려사항 설명 |
| 6 | 의사결정 트리와 비교하며 피드백 |
부트캠프 전용 리소스 그룹을 생성한다.
# Cloud Shell: Portal 상단 >_ 아이콘
# 구독 확인
az account show --output table
# 리소스 그룹 생성
az group create \
--name rg-bootcamp-day1 \
--location koreacentral \
--tags "project=bootcamp" "owner=<이름>"
# 확인
az group show --name rg-bootcamp-day1 -o table
부트캠프 전 과정에서 사용할 VNet과 NSG를 생성한다.
# VNet 생성
az network vnet create \
-g rg-bootcamp-day1 \
--name vnet-bootcamp \
--address-prefix 10.0.0.0/16 \
--subnet-name snet-default \
--subnet-prefix 10.0.1.0/24
# NSG 생성 + SSH 규칙
az network nsg create \
-g rg-bootcamp-day1 -n nsg-bootcamp
az network nsg rule create \
-g rg-bootcamp-day1 --nsg-name nsg-bootcamp \
-n AllowSSH --priority 1000 \
--destination-port-ranges 22 \
--access Allow --protocol Tcp --direction Inbound
VNet은 Azure 내 프라이빗 네트워크이다.
| 항목 | 내용 |
|---|---|
| 주소 공간 | 10.0.0.0/16 |
| 서브넷 | 10.0.1.0/24 |
| 역할 | VM, DB, 서비스가 통신하는 기반 |
| 확장 | 온프레미스 VPN 연결 가능 |
| 부트캠프 사용 | vnet-bootcamp (Day 1~9) |
NSG는 방화벽 규칙 집합이다.
| 항목 | 내용 |
|---|---|
| 역할 | 인바운드 / 아웃바운드 제어 |
| 기본 정책 | 모든 인바운드 차단 |
| AllowSSH (22) | Day 2 VM용 |
| AllowRDP (3389) | Day 3 SQL VM |
| 원칙 | 최소 필요 포트만 개방 |
목표는 CLI 환경을 확인하고 기본 명령을 연습하는 것이다.
| 순서 | 내용 |
|---|---|
| 1 | Portal → Cloud Shell (>_) → Bash |
| 2 | az version으로 CLI 버전 확인 |
| 3 | az account show로 구독 확인 |
| 4 | az group list로 리소스 그룹 목록 확인 |
| 5 | az resource list로 리소스 확인 |
| 6 | 로컬 CLI 설치는 선택사항 |
목표는 비용 한도 초과를 사전에 감지하는 것이다.
| 순서 | 내용 |
|---|---|
| 1 | Portal → Cost Management → Budgets |
| 2 | + Add → bootcamp-budget |
| 3 | Amount: ₩30,000 ~ ₩50,000 |
| 4 | Alert: 80%, 100% 이메일 |
| 5 | Action Group: 본인 이메일 |
| 6 | Create |
Day 1은 VM이 없으므로 모든 리소스를 유지한다.
유지 리소스는 다음과 같다.
| 유지 리소스 |
|---|
rg-bootcamp-day1 |
vnet-bootcamp |
nsg-bootcamp |
bootcamp-budget |
확인 명령:
# Day 1은 VM 없음 — 모두 유지
# 유지 리소스:
# rg-bootcamp-day1
# vnet-bootcamp
# nsg-bootcamp
# bootcamp-budget
# 확인만:
az resource list -g rg-bootcamp-day1 -o table
# Cost Analysis에서 비용 확인: $0.5 이하
# Day 1 체크리스트
az resource list -g rg-bootcamp-day1 -o table
정리 체크리스트는 다음과 같다.
| 체크리스트 |
|---|
| VNet / NSG / Budget 유지 확인 |
| Cost Analysis: $0.5 이하 |
| 불필요 리소스 없음 |
Day 1 예상 비용: $0.5
한도: $10/일
이 습관이 9일간의 비용을 결정한다.
| 항목 | 내용 |
|---|---|
| 일일 1인당 한도 | $10 |
| 대부분 사용 비용 | $0.5 ~ $1.0 |
| 9일 총 예상 | $10.8 |
| 한도 대비 | 6~8배 버퍼 |
| Budget Alert | 80%, 100% 도달 시 이메일 |
| Cost Analysis | 매일 실습 종료 시 직접 확인 |
| 가장 중요한 절약 수단 | VM deallocate |
| 주의 | Stop ≠ Deallocate, Stop은 계속 과금됨 |
| 질문 | 답변 |
|---|---|
| SQL MI를 왜 실습 안 하나? | 프로비저닝 4시간이 걸리므로 이론 + 매트릭스로 대체 |
| Vector DB는 Azure에서? | AI Search 벡터 검색, Cosmos MongoDB vCore |
| Budget Alert 안 와요 | 최대 24시간 지연 가능, Cost Analysis 직접 확인 |
| Free Trial로 9일 가능? | $200 크레딧, 예상 $10.8로 충분 |
| 모듈 | 내용 |
|---|---|
| DB 역사와 이론 | 계층형 → RDBMS → NoSQL → NewSQL |
| DB 이론 | ACID vs BASE, CAP |
| Azure 서비스 지형도 | SQL VM / DB / MI, Cosmos DB |
| 의사결정 | 의사결정 트리 워크샵 |
| 환경 셋업 실습 | 구독 · RG · VNet · NSG |
| 비용 관리 | Budget Alert 설정 |
| 다음 과정 | OSS DB on VM: PostgreSQL · MySQL · MongoDB |
이번 과정은 단순히 Azure 리소스를 만드는 실습이 아니라,
데이터베이스가 왜 지금과 같은 형태로 발전했는지 이해하고,
워크로드에 따라 적절한 Azure 데이터 서비스를 선택하기 위한 기준을 세우는 과정이다.
핵심은 다음과 같다.