Cloud 에서 workload 가 증가할 시, 부하를 감당할 수 있을만한 Resource Capacity를 갖고 있느냐
예상되는 요청에 대해서 아키텍쳐적인 관점에서 "Scalable 하다." 는 것은 "예상치를 충분히 감당할만한 Resource를 갖고있다." 는 의미
서버는 많은 양의 요청을 처리하기 위해 충분한 Scalability 를 갖추고 있어야 한다.
충분한 Scalability 를 갖추기 위해, Scale Out / Scale Up 등...을 통해 리소스를 확보
장기적 관점에서 인프라 증설 (Scale up/down)
Elasticiy : 탄력성/수요에 따라, 필요 시에 늘어나고/줄어드는 특성
막대한 양의 resource 용량에 대해서 순간적으로 할당하거나 해제하는 능력에 대한 성질
→ 즉, 요구에 걸맞는 resource 를 얼마나 빠르고 효과적으로 할당하는지
단기적 관점에서 수요에 따라 확장/감소 (Sclae in/out)
Scalability
예약 인스턴스를 이용하여, 인스턴스 사이즈를 증가시키는 것
Elasticity
Autoscaling 에 기반하여, EC2 의 숫자를 늘리는 것
Scalability
무제한의 스토리지와 처리량
Elasticity
트래픽 폭증 시, IOPS를 추가 증설하고, 감소 후에 그 수를 줄이는 것
(IOPS : 읽기/쓰기 용량)
On-demand Mode : AWS 에 의해 자동으로 워크로드에 따른 읽기/쓰기 용량 조절
Provision Mode
Scalability
인스턴스 사이즈를 증가시키는 것
(small --> medium)
Elasticity
수요에 따라 scale in/out 불가
Scalability
인스턴스 타입 변경
Elasticity
Aurora Serverless
Scalable 한 시스템을 구축하기 위해서는 Elasticity 를 갖고 있어야 하며,
클라우드 환경에서는 리소스 추상화를 통해 빠른 할당과 회수를 가능하도록 환경을 구축하는 것이 중요하다.
참고: Scalability 와 Elasticity 의 차이점
참고: SOA #7, Elastic and Scalability -1