'Pay as you go', '소유에서 공유로'
이 두 키워드가 클라우드가 도입되게 만든 관통적인 키워드라고 생각한다.
이 글을 읽게 됨으로써 클라우드에 대해 좀 더 친숙해질 수 있도록 만들고자 한다.
클라우드란 무엇일까?

클라우드(Cloud) 단순하게 해석하자면 '구름'이라는 뜻을 가지고있다.
어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)을 원하는 대로 가져다 쓸 수 있다는 말을 가지고 있으며,
구름에 싸여 있다는 것은 그 내부를 보려고 하거나 알지 않아도 얼마든지 내가 원하는 것을 꺼내어 사용할 수 있다는 것을 말한다.
즉, 광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경
이라고 정의를 내릴 수 있다.
이렇게 어디서든 사용이 가능하다는 클라우드는 이에 맞게
4가지 특성과 4가지 속성을 가지고있다.
특성
- 온디맨드(On-Demand)
- 해석할 시 '주문형서비스'를 말하는 특성으로 필요에 따라 언제든 접근할수있는 IT인프라를 필요한 만큼 사용 가능
- 인터넷을 통한 자원 접근
- 사용자는 인터넷을 통해 언제 어디서든 서비스 이용 가능
- 사용자별 과금 모델
- 사용자는 인터넷을 통해 언제 어디서든 서비스 이용
- 장애를 기능으로 전환
- 장애 발생시 서비스 중단없이 서비스 될 수 있도록 장애 복구를 기능으로 제공
(이에 대한 자세한 설명은 뒤에서 다시 하도록 하겠다)
속성
- 확장성(scalability)
- 요청이나 상황에 따라 쉽게 확장하고 축소할 수 있다
- auto scaling, scale in/out
- 탄력성(elasticity)
- 수요에 맞춰서 적절하게 모양을 바꿔나가는것
- 수요 증가/감소 에 따른 비용 절감 효과 및 장애 회피
- 내결함성(Fault Tolerance)
- 결함이 발생해도 스스로 참고 전환할 수 있게 해준다
- 무중단 서비스 지원
- 여러개 복제된 인스턴스를 띄워서 하나가 죽더라도 서비스
- 민첩성(Agility)
- 변화를 빠르게 수용할 수 있도록 대응
- 시장과 기술의 변화에 신속하게 대응
이런 특성과 속성을 가진 클라우드는 크게 3가지의 서비스를 제공하게 된다.

- IaaS(Infrastructure as a Service)
기존 온프래미스(데이터센터)에서 운영하던 애플리케이션을 변경 없이 그대로 클라우드로 옮기는 방식이다.
Cloud Ready
✅ 기존 시스템을 빠르게 클라우드로 이전 가능 → 다운타임 최소화
✅ 별다른 코드 수정 없이 클라우드 인프라로 비용 절감 가능
✅ 기존의 운영 방식(네트워크, 보안, 모니터링 등) 유지 가능
❌ 클라우드 네이티브 기능을 제대로 활용하지 못함 (확장성, 자동화 부족)
❌ 기존의 VM 방식이므로 비용 최적화가 어려울 수 있음
❌ 클라우드에 최적화된 형태로 개선하려면 추가적인 작업 필요
- PaaS(Platform as a Service)
애플리케이션을 개발, 실행, 관리하기 위한 플랫폼을 제공하는 서비스이다
앞선 Cloud Ready에서 확장성을 추가한 개념이 Cloud Friendly이고,
내결함성을 추가한 개념이 Cloud Resilient이다.
✅ 장애에 강한 서비스 운영 가능
✅ 서비스의 가용성이 높아짐 (SLA 향상)
❌ 초기 설계 및 운영이 복잡함
❌ 비용이 상대적으로 증가할 수 있음
- SaaS(Software as a Service)
서비스 중심의 클라우드로 개발없이 요청시 바로 서비스를 제공한다.
앞선 Cloud Resilient에서 탄력성과 민첩성까지 가지게 해주는게 Cloud Native이다. 이 과정에서 아예 태생이 변화해야하는데 해당 과정을 Re-architecturing이라고 한다.
✅ 클라우드 환경에 최적화된 애플리케이션으로 확장성이 뛰어남
✅ 운영 비용이 절감될 수 있음 (필요한 만큼 리소스 사용)
✅ 배포 및 업데이트 속도가 빠름
❌ 설계 및 개발이 복잡할 수 있음
❌ 기존 레거시 애플리케이션을 Cloud Native로 전환하려면 비용과 시간이 많이 소요됨
