티스토리 뷰
웹 개발 실무 기술 A to Z # 10 - 클라우드 데이터 저장 및 관리: AWS RDS, DynamoDB, Firebase Firestore 활용
octo54 2025. 2. 24. 17:56웹 개발 실무 기술 A to Z
현대 웹 애플리케이션은 클라우드 기반 데이터베이스를 활용하여 확장성과 유지보수성을 극대화합니다.
✔️ AWS RDS → 관계형 데이터베이스 (MySQL, PostgreSQL, MariaDB 등)
✔️ DynamoDB → NoSQL 기반 서버리스 데이터베이스
✔️ Firebase Firestore → 실시간 동기화 및 모바일 친화적인 클라우드 데이터베이스
이번 글에서는 AWS RDS, DynamoDB, Firebase Firestore를 활용하여 데이터를 저장하고 관리하는 방법을 설명하겠습니다.
1. 클라우드 데이터베이스의 장점
✔️ 자동 백업 및 장애 복구 → 데이터 손실 방지
✔️ 확장성 → 트래픽 증가에 따라 자동 확장 가능
✔️ 보안 및 접근 제어 → 인증 및 암호화 지원
✔️ 서버 유지보수 불필요 → 관리형 데이터베이스 활용
✅ 클라우드 데이터베이스를 활용하면 운영 부담 없이 확장 가능한 데이터 관리 가능!
2. AWS RDS – 관계형 데이터베이스 관리
2-1. AWS RDS란?
AWS RDS(Relational Database Service)는 MySQL, PostgreSQL, MariaDB, Oracle, SQL Server 등 다양한 관계형 데이터베이스를 클라우드에서 운영할 수 있도록 제공하는 서비스입니다.
✔️ 자동 백업 및 장애 감지
✔️ 고가용성(HA) 지원
✔️ 트래픽 증가에 따른 Auto Scaling 가능
2-2. AWS RDS 설정 및 연결
(1) AWS RDS에서 MySQL 인스턴스 생성
- AWS 콘솔 접속 → RDS 서비스 선택
- Create Database → MySQL 선택
- Free Tier (무료) 옵션 선택
- DB 인스턴스 이름, 사용자 이름, 비밀번호 설정
- 공개 액세스 허용 (Publicly Accessible: Yes)
(2) MySQL 클라이언트 또는 Node.js에서 RDS 연결
mysql -h your-rds-endpoint.amazonaws.com -u your-user -p
(3) Node.js에서 AWS RDS(MySQL) 연결
npm install mysql2
const mysql = require("mysql2");
const db = mysql.createConnection({
host: "your-rds-endpoint.amazonaws.com",
user: "your-user",
password: "your-password",
database: "your-database"
});
db.connect(err => {
if (err) throw err;
console.log("Connected to AWS RDS!");
});
✅ AWS RDS를 활용하면 기존 MySQL 환경을 클라우드에서 운영 가능!
3. DynamoDB – NoSQL 기반 서버리스 데이터베이스
3-1. DynamoDB란?
AWS DynamoDB는 완전 서버리스 NoSQL 데이터베이스로, 대규모 트래픽을 빠르게 처리할 수 있습니다.
✔️ 자동 확장 → 초당 수백만 개의 요청 처리 가능
✔️ 무제한 저장 용량 → 스토리지 관리 불필요
✔️ 낮은 응답 시간 (Single-digit millisecond latency)
3-2. DynamoDB 테이블 생성 및 데이터 삽입
(1) AWS 콘솔에서 DynamoDB 테이블 생성
- AWS DynamoDB 콘솔 → Create Table 클릭
- Table Name: Users, Primary Key: userId (String)
- Billing Mode: On-Demand (요청 수에 따라 요금 부과)
(2) Node.js에서 DynamoDB 연결
npm install aws-sdk
const AWS = require("aws-sdk");
AWS.config.update({
region: "us-east-1",
accessKeyId: "your-access-key",
secretAccessKey: "your-secret-key"
});
const dynamoDB = new AWS.DynamoDB.DocumentClient();
// 데이터 삽입
const params = {
TableName: "Users",
Item: { userId: "1", name: "Alice", age: 25 }
};
dynamoDB.put(params, (err, data) => {
if (err) console.error("Error inserting data:", err);
else console.log("Data inserted successfully:", data);
});
✅ DynamoDB는 대량의 데이터를 빠르게 처리하는 서버리스 NoSQL 솔루션!
4. Firebase Firestore – 실시간 데이터베이스
4-1. Firebase Firestore란?
Firebase Firestore는 Google Cloud 기반의 NoSQL 데이터베이스로, 실시간 데이터 동기화 기능을 제공합니다.
✔️ 실시간 업데이트 가능
✔️ 모바일 앱 및 웹 애플리케이션에 최적화
✔️ 자동 스케일링 지원
4-2. Firebase Firestore 설정 및 데이터 저장
(1) Firebase 프로젝트 생성
- Firebase 콘솔 접속 → 새 프로젝트 생성
- Firestore Database 추가 → 모드 선택 (테스트 모드 또는 보안 규칙 설정)
(2) Firebase SDK 설치
npm install firebase-admin
(3) Firestore 데이터 저장 예제
const admin = require("firebase-admin");
const serviceAccount = require("./firebase-key.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount)
});
const db = admin.firestore();
async function addUser() {
await db.collection("users").doc("user1").set({
name: "Bob",
email: "bob@example.com",
age: 30
});
console.log("User added!");
}
addUser();
✅ Firebase Firestore는 모바일 앱과 실시간 데이터 동기화가 필요한 서비스에 최적!
5. 클라우드 데이터베이스 비교
서비스 유형 장점 단점
AWS RDS | 관계형 (SQL) | 기존 SQL 기반 DB와 호환 | 비용이 다소 높음 |
DynamoDB | NoSQL (Key-Value) | 서버리스, 자동 확장 | 복잡한 쿼리 지원 부족 |
Firestore | NoSQL (Document) | 실시간 데이터 동기화 | 관계형 데이터베이스 기능 부족 |
✅ 전통적인 관계형 데이터베이스가 필요하면 AWS RDS 사용!
✅ 대규모 트래픽을 빠르게 처리하려면 DynamoDB 사용!
✅ 실시간 데이터 동기화가 필요하면 Firebase Firestore 사용!
6. 마무리 및 다음 글 예고
이번 글에서는 AWS RDS, DynamoDB, Firebase Firestore를 활용한 클라우드 데이터 저장 및 관리 방법을 살펴봤습니다.
다음 글에서는 **웹 애플리케이션 보안 심화 (OAuth 2.0, JWT, API 보안 전략)**을 다룰 예정입니다.
다음 글 예고: "웹 애플리케이션 보안 심화 – OAuth 2.0, JWT, API 보안 전략" 🚀
'project > 웹 개발 실무 기술 A to Z' 카테고리의 다른 글
- Total
- Today
- Yesterday
- 리액트
- llm
- REACT
- Next.js
- Project
- Webpack
- 웹개발
- babel
- 프론트엔드
- kotlin
- 개발블로그
- 챗봇개발
- rag
- 페이지
- fastapi
- github
- 백엔드
- AI챗봇
- Python
- nextJS
- Docker
- Page
- LangChain
- 로컬LLM
- nodejs
- Ktor
- til
- PostgreSQL
- 백엔드개발
- 관리자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |