1. API Gateway — API의 입구
외부의 HTTP 요청을 받아 Lambda 등의 백엔드 서비스로 전달하는 서비스
예:
Vue
│
│ GET /users
▼
API Gateway
│
▼
Lambda
API Gateway에서는 /users, /products 같은 API Endpoint를 만들고 GET, POST, DELETE 등의 HTTP 요청을 처리할 수 있다.
핵심
API Gateway = 외부 요청을 받아 적절한 백엔드로 전달하는 API의 입구
2. Lambda — 서버리스 코드 실행
서버를 직접 구축하고 관리하지 않고 코드를 실행할 수 있는 Serverless 서비스
요청 / 이벤트 발생
↓
Lambda
↓
함수 실행
↓
작업 완료
EC2와 달리 서버와 OS 등을 직접 관리할 필요가 없다.
단, Serverless = 서버가 실제로 존재하지 않는다는 뜻은 아니다. 서버 관리를 AWS가 담당한다는 의미에 가깝다.
Lambda는 다양한 이벤트에 의해 실행될 수 있다.
API Gateway ─┐
S3 업로드 ───┼→ Lambda 실행
EventBridge ─┘
핵심
Lambda = 이벤트가 발생했을 때 코드를 실행하는 Serverless 서비스
3. DynamoDB — NoSQL 데이터베이스
AWS의 Serverless NoSQL Database.
데이터를 Item 형태로 저장하며, Key를 중심으로 빠르게 데이터를 조회하도록 설계되어 있다.
예:
Users
userId name age
-------------------------
001 Kim 25
002 Tanaka 27
RDS와 차이
| RDS | DynamoDB |
| 관계형 DB | NoSQL DB |
| MySQL, PostgreSQL 등 | DynamoDB |
| SQL 사용 | Key 기반 접근이 중요 |
| 테이블 간 관계 활용 | 접근 패턴에 맞춘 설계가 중요 |
핵심
DynamoDB = AWS의 Serverless NoSQL 데이터베이스
4. S3 — 파일 저장소
S3 = Simple Storage Service
이미지, 동영상, PDF, 백업 파일 등의 Object를 저장하는 Object Storage.
S3 Bucket
│
├── profile.jpg
├── document.pdf
├── video.mp4
└── data.json
DynamoDB와 구분
사용자 정보
id / name / email
↓
DynamoDB
이미지 / PDF / 동영상
↓
S3
예를 들어 프로필 사진이 있다면:
DynamoDB
userId: 001
name: Kim
profileImage: "images/001.jpg"
│
▼
S3
images/001.jpg
DynamoDB에는 한 Item당 400KB 제한이 있기 때문에 큰 파일 자체를 저장하는 용도로는 적합하지 않다.
핵심
S3 = 이미지·동영상·문서 등의 파일(Object)을 저장하는 서비스
5. CloudWatch — 모니터링 & 로그
AWS 리소스와 애플리케이션을 모니터링하고 로그 등을 확인하는 서비스.
예를 들어 Lambda 실행 중 에러가 발생하면:
API Gateway
↓
Lambda
↓
ERROR
↓
CloudWatch Logs
↓
개발자가 확인
CloudWatch에서는 대표적으로:
Logs
→ 애플리케이션 실행 로그 확인
Metrics
→ CPU 사용률, 호출 횟수 등의 수치 확인
Alarms
→ 특정 조건이 발생하면 알림/동작 수행
등을 사용할 수 있다.
핵심
CloudWatch = AWS 시스템의 상태와 로그를 관찰하는 서비스
특히 처음에는 Lambda 오류 → CloudWatch Logs 확인을 기억하자.
6. IAM — 인증 & 권한 관리
IAM = Identity and Access Management
AWS에서 누가 어떤 AWS 리소스에 어떤 작업을 할 수 있는지 관리한다.
예:
Lambda
↓
IAM Role
↓
IAM Policy
"DynamoDB 읽기 허용"
↓
DynamoDB
주요 개념
IAM User
→ AWS를 사용하는 사용자
IAM Role
→ AWS 서비스 등이 맡을 수 있는 역할
IAM Policy
→ 무엇을 허용/거부할지 정의한 권한 규칙
예를 들어 Lambda가 DynamoDB를 읽으려면 Lambda에 적절한 IAM Role을 부여하고, 해당 Role에 필요한 권한을 설정해야 한다.
인증 vs 인가
인증(Authentication)
"당신은 누구인가?"
↓
인가(Authorization)
"당신은 무엇을 할 수 있는가?"
핵심
IAM = AWS에서 인증과 접근 권한을 관리하는 서비스
7. CloudFormation — 인프라를 코드로 관리
AWS 리소스를 Template으로 정의하여 생성하고 관리하는 IaC 서비스.
IaC = Infrastructure as Code
콘솔에서 직접:
Lambda 생성
→ DynamoDB 생성
→ IAM Role 생성
→ API Gateway 생성
→ 각각 설정
하는 대신,
CloudFormation Template
↓
CloudFormation
↓
┌──────────────────┐
│ API Gateway │
│ Lambda │
│ DynamoDB │
│ IAM Role │
└──────────────────┘
처럼 인프라를 코드로 정의할 수 있다.
장점
동일한 환경을 반복해서 만들기 쉽고, 설정을 코드로 관리할 수 있으며, 변경 이력을 관리하기도 편하다.
그리고 CDK와 CloudFormation의 관계도 중요하다.
CDK
(TypeScript / Java 등)
↓
CloudFormation Template
↓
CloudFormation
↓
AWS Resource 생성
핵심
CloudFormation = AWS 인프라를 코드로 정의하고 관리하는 IaC 서비스
🔗 7개 서비스를 하나로 연결하기
사용자 / Vue
│
GET /users
↓
┌───────────────┐
│ API Gateway │
└───────┬───────┘
↓
┌───────────────┐
│ Lambda │
└───────┬───────┘
│
IAM Role 확인
│
↓
┌───────────────┐
│ DynamoDB │
└───────────────┘
파일 ──────────────────→ S3
Lambda 실행 로그 ──────→ CloudWatch
그리고 이 AWS 환경 전체를
↓
CloudFormation
코드로 생성/관리
예를 들어 Vue에서 사용자 목록 조회 버튼을 눌렀다고 생각하면:
① Vue
"사용자 목록 주세요"
↓
② API Gateway
GET /users 요청을 받음
↓
③ Lambda
사용자 조회 코드 실행
↓
④ IAM
Lambda에게 DynamoDB 읽기 권한이 있는지 제어
↓
⑤ DynamoDB
사용자 데이터 조회
↓
⑥ Lambda
데이터 반환
↓
⑦ API Gateway
↓
Vue
+ Lambda 로그 → CloudWatch
+ 이미지 등의 파일 → S3
이 인프라 구성 → CloudFormation으로 관리 가능
📌 한 줄 암기
| API Gateway | API의 입구 |
| Lambda | Serverless 코드 실행 |
| DynamoDB | NoSQL 데이터베이스 |
| S3 | 파일/Object 저장 |
| CloudWatch | 로그 & 모니터링 |
| IAM | 인증 & 권한 관리 |
| CloudFormation | 인프라를 코드로 관리(IaC) |
API Gateway → Lambda → DynamoDB를 하나의 세트로 이해하고, 그 주변에서 IAM은 권한, CloudWatch는 관찰, S3는 파일 저장, CloudFormation은 인프라 관리를 담당한다고 기억하면 전체 구조가 훨씬 이해하기 쉽다!!
'[Cloud & Infrastructure] > AWS' 카테고리의 다른 글
| AWS 복습 노트 — CI/CD · CDK · CloudFormation · IAM (0) | 2026.09.03 |
|---|