## 1. 클라우드 서비스 모델
- IaaS (Infrastructure as a Service) : 인터넷을 통해 인프라 자원을 제공하는 서비스 (ex. AWS EC2)
- PaaS (Platform as a Service) : IaaS와 동일하지만, OS와 미들웨어까지 제공
- SaaS (Software as a Service) : 인터넷을 통해 소프트웨어를 서비스 형태로 제공
---
## 2. Region / Availability Zone(AZ)
- Region : 지리적으로 독립된 데이터센터
- <span style="color:#ffd479">ex. ap-northeast-2 : 서울</span>
- Availability Zone(AZ) : Region 내부의 물리적으로 분리된 데이터센터 (전력, 냉각, 네트워크 독립)
- <span style="color:#ffd479">ex. ap-northeast-<span style="color:#c792ea">2a/2b/2c</span></span>
- AZ는 서로 독립되어있으며, 하나의 AZ 장애가 다른 AZ에 영향을 끼치지 않음
- 중요한 서버는 여러 AZ에 분산 배치 -> 하나가 다운되어도 서비스 가능
---
## 3. On-premise & Cloud
- 초기 비용 : 온프레미스(CapEx, 자본지출) > 클라우드(OpEx, 운영지출)
- 확장 속도 : 온프레미스(물리적 리소스) < 클라우드(논리적 리소스)
- 유지보수
- 온프레미스 : 직접 담당
- 클라우드 : 호스팅 제공자가 담당
- 적합성
- 온프레미스 : 예측 가능한 워크로드
- 클라우드 : 트래픽 변동이 큰 서비스, 빠른 프로토타입 서비스 실행
---
## 4. Scale Up & Scale Out
- Scale Up (수직 확장) : 서버의 성능을 업그레이드하여 서버 규모 업그레이드
- 구조가 단순하며, 물리적 특성상 한계가 명확함 (스케일 업 중 서비스 재시작 필요)
- Scale Out (수평 확장) : 서버의 수량을 늘려 서버의 규모 업그레이드
- 한계가 없으며, 서비스 중단 없이 가능 (단, 로드밸런싱, 분산 설계 필요)
- Scale Out 성립 전제조건 : Stateless 설계 (서버에 세션/상태 저장 안 함)
---
## 5. 고가용성(HA, High Availability)
- 장애가 발생해도 서비스가 멈추지 않게 만드는 설계 원칙
- 방법
- (1) 다중 AZ 배치 : 여러 AZ에 인스터스를 분산
- (2) 로드밸런서(LB) : 트래픽을 여러 인스턴스에 분산시키고, 죽은 인스턴스는 자동으로 제외
- (3) 오토 스케일링 : 인스턴스가 죽으면, 신규 인스턴스를 자동으로 새로 띄움 (인스턴스 교체)
- 중요한 데이터는 인스턴스 내부가 아닌, S3와 같은 외부 스토리지에 분리하는 것이 원칙
- Health Check : LB, 오토 스케일링이 인스턴스 생사를 판단하는 방식 (HTTP Response, ping 등)
- (4) 다중화(Redundancy) : 단일 장애점 제거 (SPOF, Single Point of Failure)
---
## 6. 장애 대응 개념
- SPOF 제거 : 하나만 죽어도 전체가 멈추는 지점을 없앰
- 페일오버(Failover) : 주 시스템 장애 시 대기 시스템으로 자동 전환 (Primary, Standby 2대 운영)
- RTO (Recovery Time Objective) : 장애 후 서비스 복구까지 걸려도 되는 최대 시간
- RPO (Recovery Point Objective) : 장애 시 허용 가능한 최대 데이터 손실 범위(시점)
- DR (Disaster Recovery) : 재해 발생 시 서비스 복구에 대한 전체 전략(계획)
- 모니터링/알람 : 이상 징후 사전 탐지 (ex. CloudWatch)
- 배포 관련 장애 예방 기법
- Blue-Green : 기존 버전(Blue), 신버전(Green) 2세트 동시 운영 (Green 배포 -> 장애 시 Blue 롤백)
- Canary : 신버전을 일부 트래픽(예 : 5%)에 먼저 노출 -> 점진적 비율 확대