티스토리 뷰

반응형

웹 개발 실무 기술 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 인스턴스 생성

  1. AWS 콘솔 접속 → RDS 서비스 선택
  2. Create Database → MySQL 선택
  3. Free Tier (무료) 옵션 선택
  4. DB 인스턴스 이름, 사용자 이름, 비밀번호 설정
  5. 공개 액세스 허용 (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 테이블 생성

  1. AWS DynamoDB 콘솔 → Create Table 클릭
  2. Table Name: Users, Primary Key: userId (String)
  3. 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 프로젝트 생성

  1. Firebase 콘솔 접속 → 새 프로젝트 생성
  2. 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 보안 전략" 🚀

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함
반응형