◇ 공부 기록용으로 작성하였으니 틀린점, 피드백 주시면 감사하겠습니다 ◇
기본적으로 전문용어는 영어로 배워야 좋다. 그래야 쉽게 쉽게 이해한다.
가용성
Availability
⭐⭐⭐ 중요 (자주 등장)
"Availability" (가용성)은 AWS 리소스가 정상적으로 동작하고,
유저가 필요할 때 사용할 수 있는 상태를 나타낸다.
High Availability(고가용성)이라는 단어가 자주 등장한다.
🔧 High Availability (고가용성)
Availability를 높이는 아키텍쳐이다. (위험 상황이 발생했을 때르 대비해서)
High Availability는 유저 입장에서 시스템이 항상 사용 가능한 상태 유지하기 위한 것과 같다.
시스템 내부적으로 어떤 문제가 발생해도 항상 서비스를 이용 가능한 상태를 유지하고 다운되지 않도록 하는 것이 High Availability의 목표이다.
👨💻 고가용성을 위한 아키텍쳐 예시:
- 서버를 2개로 서로 다른 지역에 구축하기
- 로드 밸런서로 트레픽 조절하기
👨💻 High Availability 아키텍처 구성 방법
- Multiple Availability Zones (다중 가용 영역) 사용:
- 여러 지역에 서버를 두기
- Auto Scaling (자동 확장):
- 시스템 사이즈를 자동으로 늘리고 줄이는 방법
- Load Balancing (로드 밸런싱):
- 트래픽을 여러 서버로 분산시키기
- 주기적으로 데이터를 백업하기
탄력성
Elasticity
⭐⭐⭐ 중요 (자주 등장)
"Elasticity" (탄력성)은 수요와 요구에 알맞게 리소스의 수용 능력이 자동적으로 확장 및 축소하는 능력을 말한다.
간단하게, Elasticity는 필요에 따라 확장하거나 축소함으로써 시스템이 효율적으로 대응할 수 있는 능력을 의미한다.
성능에 최적화하여, 불필요한 리소스를 사용하지 않기 때문에 💰비용 최소화에 기여한다. (비용을 아낄 수 있다)
확장성
Scalability
⭐⭐⭐ 중요 (자주 등장)
"Scalability" (확장성)은 수요에 따라 리소스가 자동적으로 확장되는 능력을 말한다.
Elasticity와 비슷한 뜻이지만, Scalability은 확장에 많이 집중한다. 얼마나 효과적으로 확장할지를 따진다.
👨💻 Scalability 와 Elasticity를 갖춘 AWS 서비스 예시
Amazon EC2 Auto Scaling:
Auto Scaling은 애플리케이션의 수요에 따라 자동으로 EC2 인스턴스의 수를 조절하는 서비스이다.
웹 애플리케이션의 트래픽이 증가하면 Auto Scaling 그룹이 새로운 EC2 인스턴스를 시작하여 트래픽을 처리하고,
트래픽이 감소하면 불필요한 인스턴스를 종료하여 비용을 절감한다.
신뢰성
Reliability
⭐⭐⭐ 중요 (자주 등장)
"신뢰성(Reliability)"은 서비스가 의도한 기능이 정확하면서 (일관적) 안정적으로 운영되는 정도를 나타낸다.
https://wa.aws.amazon.com/wellarchitected/2020-07-02T19-33-23/wat.pillar.reliability.en.html
신뢰성(Reliability)은 사용자가 서비스에 대해 예상한 기능이 문제 없이 작동되어야 한다.
그렇기 때문에 높은 가용성을 유지하면서 시스템이 오류, 장애 등의 문제에 대처하는 능력이 중요하다.
신뢰성을 보장하기 위한 5가지 설계 원칙 (Design Principles):
- Automatically recover from failure: (시스템에 장애 발생 시 자동으로 복구하는 능력)
시스템 장애에 대한 자동 알림 및 추적, 장애를 해결하거나 복구하는 자동화된 복구 프로세스를 수행. - Test recovery procedures: (복구 절차 테스트)
클라우드에서는 쉽게 장애를 시뮬레이션 할 수 있다. 워크로드가 어떻게 실패하는지 테스트하고 복구 절차를 검증할 수 있다. (이전에 장애를 일으켰던 시나리오를 다시 만들 수 있다) - Scale horizontally to increase aggregate workload availability: (수평적 확장을 통해 가용성을 높이다)
하나의 큰 리소스를 여러 개의 작은 리소스로 분산시켜 하나의 작은 장애가 전체 워크로드에 미치는 영향을 줄인다. - Stop guessing capacity: (용량 추측을 멈추세요)
온프레미스와 달리 클라우드는 용량이 넉넉하다. 용량 걱정 할 필요 없다. - Manage change in automation: (자동화 변경 사항 관리하기)
자동화를 통해 인프라 설정을 변경 시킬 수 있다.
참고 자료: https://wa.aws.amazon.com/wellarchitected/2020-07-02T19-33-23/index.en.html
참고 자료: https://docs.aws.amazon.com/glossary/latest/reference/glos-chap.html