가용성
가용성 (Availability) 이란, 어떤 시스템을 원하는 때에, 장애 없이 이용할 수 있는 성질을 말합니다. 다시 말해, 가용성이 높다는 것은 시스템에 장애가 발생할 확률이 낮고, 장애가 발생해도 회복 능력이 뛰어남을 의미합니다.
고가용성 시스템은 고가용성 인프라와 고가용성 설계로 만들어집니다. 일반적으로, 클라우드 서비스 제공자들은 서비스 수준 협약 (Service Level Agreement, SLA)을 통해 서비스의 높은 가용성을 보장합니다. 예를 들어, 아마존은 AWS의 EC2와 S3에 대해 99.99%의 가용성을 보장합니다. 이는 1년 동안 장애가 발생하는 시간이 1시간 미만이라는 뜻입니다.
또한, 클라우드 플랫폼을 이용하면 온프레미스 환경에서는 적용하기 어려운 고가용성 설계도 적용할 수 있습니다. 많은 클라우드 서비스 회사는 세계의 다양한 지역에 데이터 센터를 설치하였으며, 사용자는 그중 원하는 곳에 시스템을 구축할 수 있습니다. 이런 장점을 극대화하면 여러 국가에 같은 시스템을 배포하여 지역적인 재난에도 안정적인 서비스를 유지할 수 있습니다.
확장성
확장성 (Scalability) 이란, 시스템의 성능을 얼마나 쉽게 조절할 수 있는지를 나타냅니다. 시스템의 성능을 증대하는 방법은 스케일 업 (Scale up)과 스케일 아웃 (Scale out)으로 구분됩니다.
스케일 업은 시스템 자원의 성능을 높이는 것을 말합니다. 클라우드 플랫폼은 한 종류의 클라우드 인프라에 대해 성능과 비용이 각기 다른 다양한 유형의 제품을 제공합니다. 예를 들어, AWS의 연산 자원인 EC2에는 수십 개의 인스턴스 유형이 있습니다. 실행 중인 인스턴스의 유형을 높은 성능의 것으로 변경하면, 클라우드 플랫폼이 애플리케이션을 자동으로 마이그레이션합니다.
스케일 아웃은 시스템 자원의 수를 늘리는 것입니다. 온프레미스 시스템에 서버를 추가하려면 벤더를 통해 서버를 구매하고, 서버가 운송될 때까지 기다려야 합니다. 그리고 도착한 서버를 시스템에 추가하는 작업을 해야 합니다. 반면, 클라우드 플랫폼에서는 새로운 인스턴스를 실행하고, 로드 밸런서에 추가하는 것만으로 시스템의 성능을 높일 수 있습니다.
스케일 업, 스케일 아웃과 반대되는 용어로는 스케일 다운, 스케일 인이 있습니다.
탄력성
탄력성 (Elasticity) 이란, 변화하는 시스템 부하에 맞춰 얼마나 빠르게 성능을 조절할 수 있는지를 나타냅니다. 일반적으로, 시스템에 많은 부하가 발생하면 자원을 추가하여 성능을 높이고, 부하가 줄어들면 자원을 감소시켜 비용을 절감합니다. 탄력성이 높은 시스템은 이 과정이 매우 빠르게 이뤄지므로 성능과 비용면에서 최적화가 이뤄집니다.
확장성이 장기적 관점에서의 자원 관리와 관련된 성질이라면, 탄력성은 순간적 변화에 대한 반응성과 관련이 있습니다.
어떤 시스템의 부하가 점진적으로 증가할 때, 미래를 대비하여 자원을 증설하기가 쉽다면, 이는 확장성이 뛰어나기 때문입니다. 반면, 어떤 이슈로 부하가 급증했을 때, 순간적으로 자원을 늘렸다가 원래 규모로 돌아올 수 있다면, 이는 탄력성이 뛰어나기 때문입니다.
높은 탄력성은 높은 확장성과 정확한 모니터링을 요구합니다. AWS를 비롯한 대부분의 클라우드 플랫폼은 클라우드 애플리케이션에 대한 정밀한 모니터링 도구를 제공합니다. 사용자는 이를 이용하여 부하를 측정하고, 쉽게 시스템의 성능을 조절할 수 있습니다. AWS, Azure, GCP는 이러한 과정을 자동화해주는 오토스케일러 (Autoscaler) 도 제공합니다. 이를 적용하면, 사용자가 설정한 예산 범위 안에서 자동으로 성능 조절이 이뤄집니다.
'퍼블릭 클라우드 관련' 카테고리의 다른 글
Network ACL에 등장하는 stateless 란? (0) | 2024.11.29 |
---|---|
NCP - Webshell behavior detector | AWS, GCP, Azure 비교 (0) | 2024.11.29 |