클라우드 컴퓨팅 개요
클라우드 컴퓨팅 개요¶
1. 클라우드 컴퓨팅이란?¶
클라우드 컴퓨팅은 인터넷을 통해 IT 리소스(서버, 스토리지, 네트워크, 데이터베이스 등)를 온디맨드로 제공하는 서비스 모델입니다.
1.1 전통적 인프라 vs 클라우드¶
| 구분 | 온프레미스 (전통) | 클라우드 |
|---|---|---|
| 초기 비용 | 높음 (하드웨어 구매) | 낮음 (사용량 기반) |
| 확장성 | 수주~수개월 | 수분~수시간 |
| 유지보수 | 직접 관리 | 제공자가 관리 |
| 위험 | 미사용 리소스 낭비 | 필요한 만큼만 사용 |
| 책임 | 모든 계층 직접 관리 | 공동 책임 모델 |
1.2 NIST 클라우드의 5가지 특성¶
미국 국립표준기술연구소(NIST)가 정의한 클라우드 컴퓨팅의 핵심 특성:
- On-demand Self-service (온디맨드 셀프서비스)
- 사용자가 직접 리소스를 프로비저닝
-
사람의 개입 없이 자동화된 배포
-
Broad Network Access (광범위한 네트워크 접근)
- 표준 메커니즘으로 네트워크를 통해 접근
-
다양한 클라이언트 플랫폼 지원
-
Resource Pooling (리소스 풀링)
- 멀티테넌트 모델로 리소스 공유
-
물리적 위치 추상화
-
Rapid Elasticity (빠른 탄력성)
- 수요에 따라 자동 확장/축소
-
사용자에게는 무한한 리소스처럼 보임
-
Measured Service (측정된 서비스)
- 사용량 모니터링 및 보고
- 투명한 과금
2. 서비스 모델: IaaS, PaaS, SaaS¶
2.1 개념 비교¶
┌─────────────────────────────────────────────────────────────┐
│ SaaS │
│ (Software as a Service) │
│ 예: Gmail, Salesforce, Slack │
├─────────────────────────────────────────────────────────────┤
│ PaaS │
│ (Platform as a Service) │
│ 예: Heroku, App Engine, Elastic Beanstalk │
├─────────────────────────────────────────────────────────────┤
│ IaaS │
│ (Infrastructure as a Service) │
│ 예: EC2, Compute Engine, Azure VMs │
├─────────────────────────────────────────────────────────────┤
│ Physical Infrastructure │
│ 데이터센터, 서버, 네트워크 장비 │
└─────────────────────────────────────────────────────────────┘
2.2 책임 범위 비교¶
| 계층 | 온프레미스 | IaaS | PaaS | SaaS |
|---|---|---|---|---|
| 애플리케이션 | 고객 | 고객 | 고객 | 제공자 |
| 데이터 | 고객 | 고객 | 고객 | 고객* |
| 런타임 | 고객 | 고객 | 제공자 | 제공자 |
| 미들웨어 | 고객 | 고객 | 제공자 | 제공자 |
| OS | 고객 | 고객 | 제공자 | 제공자 |
| 가상화 | 고객 | 제공자 | 제공자 | 제공자 |
| 서버 | 고객 | 제공자 | 제공자 | 제공자 |
| 스토리지 | 고객 | 제공자 | 제공자 | 제공자 |
| 네트워킹 | 고객 | 제공자 | 제공자 | 제공자 |
*SaaS에서도 데이터 관리 책임은 고객에게 있음
2.3 사용 사례¶
IaaS 적합 사례: - 완전한 인프라 제어가 필요한 경우 - 레거시 애플리케이션 마이그레이션 - 개발/테스트 환경 - 고성능 컴퓨팅 (HPC)
PaaS 적합 사례: - 빠른 애플리케이션 개발 - 마이크로서비스 아키텍처 - API 개발 - 인프라 관리 부담 최소화
SaaS 적합 사례: - 이메일, 협업 도구 - CRM, ERP 시스템 - 즉시 사용 가능한 솔루션 필요
3. AWS vs GCP 비교¶
3.1 시장 포지셔닝¶
| 항목 | AWS | GCP |
|---|---|---|
| 출시 | 2006년 | 2008년 |
| 시장 점유율 | ~32% (1위) | ~10% (3위) |
| 강점 | 서비스 다양성, 생태계 | 데이터 분석, ML/AI, 가격 |
| 서비스 수 | 200+ | 100+ |
| 글로벌 리전 | 30+ | 35+ |
3.2 핵심 서비스 매핑¶
| 카테고리 | AWS | GCP |
|---|---|---|
| 가상 머신 | EC2 | Compute Engine |
| 서버리스 함수 | Lambda | Cloud Functions |
| 컨테이너 오케스트레이션 | EKS | GKE |
| 서버리스 컨테이너 | Fargate | Cloud Run |
| 객체 스토리지 | S3 | Cloud Storage |
| 블록 스토리지 | EBS | Persistent Disk |
| 관리형 RDB | RDS, Aurora | Cloud SQL, Spanner |
| NoSQL (Key-Value) | DynamoDB | Firestore |
| 캐시 | ElastiCache | Memorystore |
| DNS | Route 53 | Cloud DNS |
| CDN | CloudFront | Cloud CDN |
| 로드밸런서 | ELB (ALB/NLB) | Cloud Load Balancing |
| VPC | VPC | VPC |
| IAM | IAM | IAM |
| 키 관리 | KMS | Cloud KMS |
| 비밀 관리 | Secrets Manager | Secret Manager |
| 모니터링 | CloudWatch | Cloud Monitoring |
| 로깅 | CloudWatch Logs | Cloud Logging |
| IaC | CloudFormation | Deployment Manager |
| CLI | AWS CLI | gcloud CLI |
4. 과금 모델¶
4.1 과금 원칙¶
두 플랫폼 모두 사용한 만큼 지불 (Pay-as-you-go) 원칙을 따릅니다.
총 비용 = 컴퓨팅 + 스토리지 + 네트워크 + 추가 서비스
4.2 컴퓨팅 과금 옵션¶
| 옵션 | AWS | GCP | 특징 |
|---|---|---|---|
| 온디맨드 | On-Demand | On-demand | 시간/초 단위, 약정 없음 |
| 예약 | Reserved Instances | Committed Use | 1-3년 약정, 최대 72% 할인 |
| 스팟/선점형 | Spot Instances | Preemptible/Spot VMs | 최대 90% 할인, 중단 가능 |
| 자동 할인 | - | Sustained Use | 월 사용량에 따라 자동 할인 |
4.3 데이터 전송 비용¶
┌─────────────────────────────────────────────────────────┐
│ 클라우드 │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ 인바운드 │ 무료 │ 같은 │ 무료 │아웃바운드│ │
│ │(외부→내부)│ ────→ │ 리전 │ ────→ │(내부→외부)│ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ 무료 무료/저렴 유료 │
└─────────────────────────────────────────────────────────┘
- 인바운드: 일반적으로 무료
- 같은 리전 내: 무료 또는 저렴
- 아웃바운드: GB당 과금 (월 무료 할당량 후)
4.4 무료 티어¶
AWS 무료 티어: - 12개월 무료: t2.micro EC2 (750시간/월), 5GB S3, 750시간 RDS - 항상 무료: Lambda 100만 요청/월, DynamoDB 25GB
GCP 무료 티어: - 90일 $300 크레딧 (신규 계정) - Always Free: e2-micro VM, 5GB Cloud Storage, Cloud Functions 200만 호출/월
5. 공동 책임 모델 (Shared Responsibility Model)¶
클라우드 보안은 제공자와 고객이 역할을 분담합니다.
5.1 책임 분담¶
┌────────────────────────────────────────────────────────────┐
│ 고객 책임 (IN the cloud) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • 고객 데이터 │ │
│ │ • 플랫폼, 애플리케이션, IAM │ │
│ │ • 운영체제, 네트워크, 방화벽 구성 │ │
│ │ • 클라이언트 측 데이터 암호화 │ │
│ │ • 서버 측 암호화 (파일 시스템/데이터) │ │
│ │ • 네트워크 트래픽 보호 (암호화, 무결성, 인증) │ │
│ └──────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────┤
│ 제공자 책임 (OF the cloud) │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ • 글로벌 인프라 (리전, 가용 영역, 엣지 로케이션) │ │
│ │ • 하드웨어 (컴퓨팅, 스토리지, 네트워킹) │ │
│ │ • 소프트웨어 (호스트 운영체제, 가상화) │ │
│ │ • 물리적 보안 (데이터센터) │ │
│ └──────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────┘
5.2 서비스 유형별 책임¶
| 서비스 유형 | 고객 책임 | 제공자 책임 |
|---|---|---|
| IaaS (EC2) | OS부터 애플리케이션까지 | 하드웨어, 가상화 |
| PaaS (Lambda) | 코드, 데이터 | 런타임, OS, 인프라 |
| SaaS | 데이터, 접근 관리 | 거의 모든 것 |
6. 클라우드 아키텍처 원칙¶
6.1 Well-Architected Framework¶
AWS와 GCP 모두 비슷한 설계 원칙을 제시합니다:
| 원칙 | 설명 |
|---|---|
| 운영 우수성 | 시스템 실행 및 모니터링, 지속적 개선 |
| 보안 | 데이터, 시스템, 자산 보호 |
| 신뢰성 | 장애 복구, 수요 변화 대응 |
| 성능 효율성 | 리소스 효율적 사용, 기술 선택 |
| 비용 최적화 | 불필요한 비용 제거, 효율적 지출 |
| 지속 가능성 | 환경 영향 최소화 (GCP 강조) |
6.2 설계 모범 사례¶
1. 장애에 대비한 설계 (Design for Failure)
- 단일 장애점 제거
- 멀티 AZ/리전 배포
- 자동 복구
2. 컴포넌트 분리 (Loose Coupling)
- 마이크로서비스 아키텍처
- 메시지 큐 활용
- API 기반 통신
3. 탄력성 (Elasticity)
- 오토스케일링 활용
- 서버리스 고려
- 예측 불가능한 부하 대비
4. 보안 내재화 (Security by Design)
- 최소 권한 원칙
- 암호화 기본 적용
- 네트워크 격리
7. 학습 로드맵¶
7.1 입문자 경로 (1-2주)¶
[클라우드 개념] → [계정 생성] → [콘솔 탐색] → [첫 VM 생성] → [S3/GCS 실습]
7.2 기초 실무 경로 (1-2개월)¶
[VPC 네트워킹] → [로드밸런서] → [RDS/Cloud SQL] → [IAM 정책] → [모니터링]
7.3 심화 경로 (3-6개월)¶
[컨테이너/K8s] → [서버리스] → [Terraform IaC] → [CI/CD] → [비용 최적화]
8. 다음 단계¶
- 02_AWS_GCP_Account_Setup.md - 계정 생성 및 초기 설정
- 03_Regions_Availability_Zones.md - 글로벌 인프라 이해