무상태 웹 계층(stateless web tier)은 웹 서비스 아키텍처의 핵심 개념 중 하나로, 서버가 이전에 받았던 요청과 이후에 받을 요청 사이에 정보나 상태(state)를 저장하지 않는 디자인 패턴을 의미합니다. 이는 웹 애플리케이션의 확장성과 유지 보수성을 향상시킬 수 있는 이점이 있습니다.
무상태 웹 계층(Stateless Web Tier)
무상태 아키텍처(Stateless Architecture)
- 무상태 아키텍처는 시스템의 컴포넌트 간에 상태가 전송되지 않는 설계 방식을 의미합니다.
- 모든 요청에 필요한 모든 정보가 포함되어 있어야 합니다. 따라서 각 요청은 독립적으로 처리될 수 있습니다.
- 이로 인해 확장성과 관리 용이성이 향상됩니다. 여러 서버나 인스턴스 간에 상태를 동기화할 필요가 없기 때문입니다.
- 다만, 상태가 필요한 경우 이를 외부 시스템, 예를 들면 데이터베이스나 캐시 서버와 같은 곳에 저장하게 됩니다.
사례
- 위 아키텍처는 표현 계층 - 애플리케이션 계층 - 데이터 계층으로 이루어진 3계층의 웹 애플리케이션 아키텍처 입니다.
- 애플리케이션 계층(API Server)에서 수신받은 상태 정보를 Cache 서버(Amazon ElasticCache)로 저장합니다. 이를 통해 애플리케이션 계층에서는 상태 정보를 저장할 필요없이 비즈니스 로직만 처리하면 됩니다.
- 이 아키텍처를 통해 가져갈 수 있는 이점은 비즈니스 로직을 담당하는 애플리케이션 계층(API Server)이 Auto Scaling Group로 묶여 트래픽에 따라 자동 확장/축소가 가능합니다. 이를 통해 API Server는 가용성을 확보할 수 있고, 사용자에게 무중단 서비스를 제공할 수 있습니다.
무상태 아키텍처의 장/단점
장점
- 독립성: 각 요청은 독립적으로 처리됩니다. 서버는 이전 요청의 결과나 상태를 기억하지 않으므로 모든 요청은 서버에 처음 접속하는 것처럼 처리됩니다.
- 확장성: 무상태 디자인은 여러 서버 인스턴스 간에 상태를 공유할 필요가 없으므로 수평 확장이 간단해집니다. 요청은 로드 밸런서를 통해 아무 서버로나 전달될 수 있습니다.