온프레미스
직접 데이터센터에 필요한 요소들을 구축해서 사용하는 것을 의미한다.
- 장점
- 비용 계획 유리
- 폐쇄 환경에서 워크로드 구성 용이
- 장애시 의존도 저하
- 보안 컴플라이언스 준수 유리
- 단점
- 운영 부담 증가
- 탄력성 및 확장성 저하
- 초기 비용 부담
- 장애시 책임 광범위
클라우드
물리적 저장매체의 개입 없이 인터넷을 통해서 데이터를 관리하고 저장하는 방식이다.
- 장점
- 확장성, 탄력성
- 접근 장벽(초기 투자 비용) 저렴
- 운영 및 보안 이슈의 책임 분담(관리형 서비스)
- 풀스택 프로그래밍 용이
- 단점
- 장기 비용 부담 및 비용 계획
- 벤더에 의존한 버전 관리
- 보안에 대한 부담
- 글로벌 인프라
Region, Availability Zone, Edge location으로 이루어져 있다.
이들을 통해 극도로 발전된 가용성, 글로벌 진출의 용이성을 제공한다.
하지만 각 클라우드 제공 업체마다 리전이나 가용 영역에 대한 정의가 조금씩 다르다 보니 어떤 업체를 사용하느냐에 따라 정의를 확인해 봐야 한다.
-
Region
- 데이터 센터들이 모여있는 전세계에 분산되어 있는 도시
- 개인정보 같은 보안에 민감한 정보에 대해 Locality 보장
- Low latency 제공
- 더 높은 가용성, 확장성 보장
- 하나의 리전은 다수의 가용 영역으로 이루어져 있음
-
Availability Zone
- 완전히 물리적으로 격리된 하나 이상의 데이터 센터
- 단일한 실패지점을 없애고 고가용성을 확보
-
CDN
- 최종 사용자에게 더 짧은 지연시간으로 컨텐츠를 제공하기 위해 최종 사용자와 물리적으로 가까운 거리의 컨텐츠를 캐싱해놓는 자원을 의미
- AWS에서는 Edge Location 으로 제공하고 있다.
- 전 세계 곳곳에 구성되어 있다.
- 이를 통해 사용자는 어디에서든 어플리케이션을 운영 및 배포를 할 수 있고 더 짧은 지연시간을 통해 글로벌 사용자에게 사용환경을 제공할 수 있다.
API Defined 환경
온프레미스에서 서버를 키려면 박스를 구성하고, 회선을 깔고, 콘솔로 Os 부팅 등등 직접 모두 해야하지만 클라우드는 이러한 작업이 다 추상화되어 있기 때문에 명령어 한줄로 서버를 만들 수 있다.
그것이 가능한 이유가 클라우드는 API Defined 환경이기 때문이다.
콘솔에서 클릭을 통해 구성하거나, CLI나 SDK 환경에서도 서버를 구성할 수 있지만 모든 방식의 공통점은 API를 이용해 구성한다는 점이다.
클라이언트가 AWS 리소스에 보내는 모든 CRUD 요청들은 모두 API로 이루어지고 자원들끼리 주고받는 요청과 응답도 API를 통해 이루어진다.
- 운영성 및 속도, 보안성 보장
- IaC -> 인프라를 코드로 관리한다
- 인프라를 하나 만들고 싶다면 IaC 툴에 따라 필요한 문법에 맞춰 필요한 파라미터를 지정해주면 자동으로 그 인프라를 프로비저닝 해준다.
- 간단한 정의만으로도 복잡한 워크로드 생성 가능
- 복제나 복구에 강하다.