정적 스토리지에서 관리형 데이터베이스로: Amazon RDS, DynamoDB 및 AWS Lambda 학습 (Day 5)
I’m ready to translate the article for you, but I’ll need the full text you’d like translated. Could you please paste the content (excluding the source line you already provided) here? Once I have it, I’ll translate it into Korean while preserving all formatting, markdown, and technical terms as requested.
🚀 목표
오늘의 목표는 클라우드 애플리케이션이 데이터를 관리하고 처리하는 방식을 이해하는 것이었습니다.
중점 영역은 다음과 같습니다:
- 관리형 관계형 데이터베이스를 배포하고 애플리케이션 서버와 연결하기
- NoSQL 데이터베이스 아키텍처 학습
- 서버리스 함수를 사용하여 백엔드 로직 실행하기
이 작업에는 세 가지 주요 AWS 서비스가 포함되었습니다:
- Amazon RDS
- Amazon DynamoDB
- AWS Lambda
🗄️ Step 1: Understanding Amazon RDS
Amazon RDS (Relational Database Service)는 일반적인 운영 작업을 추상화해 주는 관리형 데이터베이스 서비스입니다:
- OS 패치
- 백업
- 고가용성 구성
- 스케일링
지원되는 엔진에는 MySQL, PostgreSQL, MariaDB, Oracle Database, 그리고 Microsoft SQL Server가 포함됩니다.
연습을 위해 MySQL RDS 인스턴스를 생성했습니다.
⚙️ Step 2: Launching an RDS Database
AWS 콘솔을 사용하여 다음 구성으로 무료 티어 대상 인스턴스를 프로비저닝했습니다:
| Parameter | Value |
|---|---|
| Engine | MySQL |
| Instance type | db.t3.micro |
| Storage | 20 GB |
| Region | Mumbai (ap‑south‑1) |
| Public accessibility | Enabled (for testing) |
생성 후, AWS에서 데이터베이스 엔드포인트를 제공했으며, 예시:
mydb.xxxxxx.ap-south-1.rds.amazonaws.com
이 엔드포인트는 애플리케이션이 데이터베이스에 연결할 때 사용하는 주소입니다.
🔗 Step 3: EC2와 RDS 연결
Amazon EC2 인스턴스를 RDS 데이터베이스와 연결하기 위해 다음 단계를 수행했습니다:
- 보안 그룹 구성 – EC2 보안 그룹에서 들어오는 MySQL 트래픽(포트 3306)을 허용했습니다.
- RDS 엔드포인트 사용 – 연결 문자열에 엔드포인트를 지정했습니다.
- MySQL 클라이언트로 연결 – EC2 서버에서
mysql -h <endpoint> -u <user> -p명령을 실행했습니다.
연결이 완료되면 다음을 수행할 수 있었습니다:
- 데이터베이스와 테이블 생성
- 데이터 삽입 및 조회
이는 애플리케이션 서버가 관리형 관계형 데이터베이스와 상호 작용하는 일반적인 패턴을 보여줍니다.
🧩 Step 4: Understanding DynamoDB (NoSQL)
Amazon DynamoDB는 높은 확장성과 낮은 지연 시간을 위해 설계된 완전 관리형 NoSQL 서비스입니다. 데이터는 다음과 같이 구성됩니다:
- Tables – 아이템을 담는 컨테이너
- Items – 행에 해당하는 개념
- Attributes – 열에 해당하는 개념
주요 장점
- 자동 스케일링
- 밀리초 수준의 지연 시간
- 서버리스 아키텍처
- 완전 관리형 인프라
일반적인 사용 사례로는 모바일 앱, 게임 백엔드, 실시간 분석 및 기타 서버리스 워크로드가 있습니다.
⚡ Step 5: AWS Lambda로 서버리스 코드 실행하기
AWS Lambda는 개발자가 서버를 프로비저닝하거나 관리하지 않고 코드를 실행할 수 있게 해줍니다. 함수는 다음과 같은 트리거가 발생할 때만 호출됩니다:
- API 요청 (API Gateway를 통해)
- S3 파일 업로드
- DynamoDB 스트림
- 예약된 CloudWatch 이벤트
연습을 위해 DynamoDB 테이블에 대한 CRUD 작업을 수행하는 Lambda 함수를 만들었습니다. 흐름은 다음과 같습니다:
- 클라이언트 요청 → API Gateway를 통해 Lambda 트리거
- Lambda 실행 → DynamoDB와 상호 작용
- 응답 → 클라이언트에 반환
Lambda는 인프라, 스케일링 및 실행 환경을 추상화하여 개발자가 비즈니스 로직에만 집중할 수 있게 합니다.
🧠 핵심 기술 요약
- Amazon RDS는 관리형 관계형 데이터베이스를 제공하며, 패치, 백업 및 스케일링을 처리합니다.
- EC2 애플리케이션은 엔드포인트와 적절한 보안 그룹을 사용해 RDS에 안전하게 연결할 수 있습니다.
- SQL vs. NoSQL: 관계형 데이터베이스는 스키마를 강제하고; DynamoDB는 자동 스케일링이 가능한 유연한 스키마‑리스 스토리지를 제공합니다.
- DynamoDB는 높은 처리량과 낮은 지연시간 워크로드에 뛰어납니다.
- AWS Lambda는 서버리스 백엔드 로직을 가능하게 하며, 컴퓨팅 리소스를 자동으로 관리합니다.
- 서버리스 아키텍처는 인프라 관리가 간소화되고 빠른 스케일링을 허용합니다.
핵심 인식: 클라우드 플랫폼은 개발자가 애플리케이션 요구사항에 따라 전통적인 서버, 객체 스토리지, 혹은 서버리스 서비스 중 가장 적합한 아키텍처를 선택할 수 있는 유연성을 제공합니다.
🎯 회고
몇 일 만에 클라우드 엔지니어링 학습을 진행하면서, 세 가지 서로 다른 배포 모델을 탐색했습니다:
| Day | Technology | Primary Use Case |
|---|---|---|
| 3 | Amazon EC2 + Nginx | 전체 제어 서버 호스팅 |
| 4 | Amazon S3 (static website) | 경량, 비용 효율적인 정적 호스팅 |
| 5 | Amazon RDS, DynamoDB, Lambda | 확장 가능한 백엔드 및 서버리스 아키텍처 |
각 접근 방식은 서로 다른 문제를 해결하며, 언제 각각을 적용해야 하는지를 이해하는 것이 효과적인 클라우드 엔지니어링의 핵심입니다. 여정은 계속됩니다—앞으로도 더 많은 탐험이 기다리고 있습니다! 🚀