클라우드 아키텍처(1)

ww_ung·2025년 2월 16일

SKALA

목록 보기
1/25
post-thumbnail

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

클라우드란 무엇일까?


클라우드(Cloud) 단순하게 해석하자면 '구름'이라는 뜻을 가지고있다.
어딘가에서 구름에 싸여 보이지 않는 컴퓨팅 자원(CPU, 메모리, 디스크 등)을 원하는 대로 가져다 쓸 수 있다는 말을 가지고 있으며,
구름에 싸여 있다는 것은 그 내부를 보려고 하거나 알지 않아도 얼마든지 내가 원하는 것을 꺼내어 사용할 수 있다는 것을 말한다.

즉, 광대한 네트워크를 통하여 접근할 수 있는 가상화된 서버와 서버에서 작동하는 프로그램과 데이터베이스를 제공하는 IT 환경
이라고 정의를 내릴 수 있다.

이렇게 어디서든 사용이 가능하다는 클라우드는 이에 맞게
4가지 특성과 4가지 속성을 가지고있다.

특성

  1. 온디맨드(On-Demand)
  • 해석할 시 '주문형서비스'를 말하는 특성으로 필요에 따라 언제든 접근할수있는 IT인프라를 필요한 만큼 사용 가능
  1. 인터넷을 통한 자원 접근
  • 사용자는 인터넷을 통해 언제 어디서든 서비스 이용 가능
  1. 사용자별 과금 모델
  • 사용자는 인터넷을 통해 언제 어디서든 서비스 이용
  1. 장애를 기능으로 전환
  • 장애 발생시 서비스 중단없이 서비스 될 수 있도록 장애 복구를 기능으로 제공
    (이에 대한 자세한 설명은 뒤에서 다시 하도록 하겠다)

속성

  1. 확장성(scalability)
  • 요청이나 상황에 따라 쉽게 확장하고 축소할 수 있다
  • auto scaling, scale in/out
  1. 탄력성(elasticity)
  • 수요에 맞춰서 적절하게 모양을 바꿔나가는것
  • 수요 증가/감소 에 따른 비용 절감 효과 및 장애 회피
  1. 내결함성(Fault Tolerance)
  • 결함이 발생해도 스스로 참고 전환할 수 있게 해준다
  • 무중단 서비스 지원
  • 여러개 복제된 인스턴스를 띄워서 하나가 죽더라도 서비스
  1. 민첩성(Agility)
  • 변화를 빠르게 수용할 수 있도록 대응
  • 시장과 기술의 변화에 신속하게 대응

이런 특성과 속성을 가진 클라우드는 크게 3가지의 서비스를 제공하게 된다.

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

0개의 댓글