클라우드 서비스를 이용하는 이유 중의 하나는 필요한 만큼만의 자원에 대한 비용을 지불할 수 있는 것이다. 초기에 서비스가 시작했을 때부터 10만명 이상의 사용자를 위한 서버를 구입하는 것은 비용 낭비이다.
또한 클라우드 서비스가 제공하는 확장성도 중요할 것이다. 초기에 100명이 사용하던 서비스가 이후 성장하면서 1만명, 10만명이 되었을 때 쉽게 확장할 수 있으면 좋을 것이다. 마찬가지로 주중에는 사용량이 적었다가 주말에 되서 사용량이 많아졌을 때에도 서버 자원을 낭비없이 줄였다 키웠다 할 수 있다면 인프라에 사용하는 비용을 크게 줄일 수 있을 것이다.
AWS는 이러한 확장성을 자동으로 해주는 AWS Auto Scaling 서비스를 제공한다.
확장(Scaling)의 형태는 다음 두가지가 있다.
수직 확장은 기기의 성능을 높이는 것 이다. 인텔 i3 CPU에서 i5로 교체하거나, 디스크 용량을 큰 것을 사용하거나이다. 수직 확장의 장점은 프로그램에서 굳이 크게 고려할 필요 없다는 것이지만, 단점은 어느 이상이 되면 비용이 기하 급수적으로 늘어나며, 동시에 그 효과는 점점 작아지는 것이다.
수평 확장은 기기를 여러개 사용하는 것이다. 같은 컴퓨터를 한대 더 구입하는 것이 그 예가 된다. 수평 확장의 장점은 수직 확장보다 비용이 저렴할 수 있으며, 확장 자체가 편리하다는 것이다. 단점은 시스템 전체가 수평 확장이 용이하도록 설계되어야 한다는 것이다.
AWS의 Auto Scaling은 Elastic Load Balancing 와 Amazon CloudWatch로 구성된다.
Auto Scaling은 다음과 같은 사이클을 가진다.
AWS Auto Scaling은 따로 요금을 지불하지 않는다. 다만 Amazon CloudWatch + Instance / ELB 요금을 지불한다.
Launch Configuration은 Auto Scaling할 때, 어떤 인스턴스를 생성할 지에 대해 설정할 수 있다. 이는 EC2 Instance 생성과 거의 유사하다.
시작 구성은 생성 후 수정이 불가하다. 원래 있던 시작 구성에서 새로 생성하는 것은 가능하다.
Auto Scaling Group은 반드시 하나의 시작 구성을 가지고 있어야 한다. 그리고 ASG가 작동하는 동안 시작 구성을 교체할 수 있다.
오왕...k 정리 잘하셨네요👍👍