호스팅·클라우드
애플리케이션이 실제로 실행되는 곳.
호스팅·클라우드
이 목록이 다루는 범위
애플리케이션을 실행하는 곳입니다. 저장소에서 배포하는 관리형 플랫폼, 컨테이너 서비스, 가상 머신, 수백 개의 서비스가 딸린 종합 클라우드 공급사가 해당합니다.
정답은 규모보다 운영 업무를 얼마나 직접 떠안고 싶은지에 더 좌우됩니다. 통제의 층을 하나 더 가질 때마다, 불편한 시간에 찾아오는 책임이 하나 늘어납니다.
데이터베이스는 데이터베이스에 별도 목록이 있습니다. 서비스가 운영되기 시작한 뒤 상태를 지켜보는 일은 모니터링에 속합니다.
통제의 네 단계
관리형 플랫폼은 코드를 받아 실행합니다. 배포는 저장소에서 이루어지고, 확장은 설정 하나이며, 인프라 결정 대부분을 대신 내려 줍니다. 프로덕션까지 가장 빠른 길이지만, 특이한 요구가 생기면 가장 유연하지 못합니다.
컨테이너 서비스는 한 단계 아래입니다. 직접 빌드한 이미지를 직접 설정한 오케스트레이션으로 실행합니다. 일이 더 많고 통제권도 더 크며, 공급사 사이를 옮길 수 있는 이식 가능한 산출물이 생깁니다.
가상 머신은 운영체제와 그에 딸린 모든 것을 줍니다. 패치, 보안, 백업도 포함입니다.
종합 클라우드 공급사는 위 세 가지에 관리형 서비스 카탈로그까지 제공하며, 그 대가는 복잡함과 신경 써야 하는 청구서입니다.
성능을 가르는 질문들
- 리전 선택: 사용자와 데이터베이스에서 가까운 곳.
- 콜드 스타트: 요청 사이에 0으로 줄어드는 모든 구성에서.
- 지속 연결: 일부 서버리스 모델이 잘 다루지 못합니다.
- 빌드와 배포 시간: 배포에 10분이 걸리면 사람들이 배포하는 빈도가 달라집니다.
- 정적 전달: 매번 원본에서 보내지 않고 방문자 가까이에 캐시.
애플리케이션과 데이터 사이의 거리는 가장 흔한 자초한 문제입니다. 페이지 하나에 리전 경계를 넘는 쿼리가 50개면, 프런트엔드를 아무리 손봐도 구할 수 없는 느린 사이트가 됩니다.
안정성, 그리고 나쁜 날에 일어나는 일
가동 시간 보증은 믿기보다 읽어 볼 만합니다. 대부분 공급사 자체의 컨트롤 플레인만 대상으로 하고 서비스 크레딧으로 보상하는데, 이는 장애로 인해 실제로 치르는 비용이 아닙니다.
장애 도메인을 물어보세요. 인스턴스가 한 존에 있는지 여러 존에 있는지, 재배포가 실시간 트래픽에 어떤 영향을 주는지, 롤백이 버튼 하나인지 재빌드인지입니다. 로그가 얼마나 보관되는지, 대시보드를 쓸 수 없을 때도 접근할 수 있는지도 물어보세요.
그다음 내가 통제하는 복구를 물어보세요. 데이터의 사본이 다른 곳에 있고 배포를 재현할 수 있다면 공급사 장애는 견딜 수 있습니다. 둘 다 기본으로 되어 있지는 않습니다.
비용, 그리고 조용히 커지는 항목들
컴퓨팅은 요금 페이지에 적힌 숫자입니다. 청구서는 대개 다섯 가지로 이루어집니다.
송신 트래픽은 공급사 밖으로 나가는 데이터에 기가바이트당 청구되며, 영상, 다운로드, 리전 간 트래픽에서 가장 빨리 쌓입니다. 스토리지는 늘어나기만 하고 줄어드는 일이 드뭅니다. 관리형 서비스에는 각자의 계량이 있습니다. 푸시할 때마다 재빌드하는 플랫폼에서는 빌드 시간이 과금됩니다. 기본 단계 위의 지원 플랜은 거의 어디서나 별도입니다.
개발 및 스테이징 환경은 규모를 줄이거나 밤새 멈추지 않으면 이 대부분을 두 배로 만듭니다. 현재 트래픽의 세 배일 때 총액이 어떻게 되는지 물어보세요. 실제로 마주하게 될 숫자이기 때문입니다. 이런 계량 항목을 숨기는 관행은 요금 페이지가 숨기는 것에서 다룹니다.
이식성, 그리고 그것을 지키는 방법
이 카테고리에서 종속은 극적으로 생기는 일이 드뭅니다. 편리한 서비스가 하나씩 쌓이면서 생깁니다.
컨테이너와 표준 런타임은 옮길 수 있습니다. 전용 함수, 큐, ID 서비스, 데이터베이스는 그렇지 않으며, 하나를 쓸 때마다 떠나는 비용이 올라갑니다. 그 서비스가 실제 작업을 덜어 준다면 정당한 거래이고, 오후 한나절만 덜어 준다면 나쁜 거래입니다.
인프라를 콘솔 클릭이 아니라 파일로 정의해 두고, 전체를 처음부터 한 번 세워 보세요. 그 과정에서 배운 것은 어떤 비교표보다 가치가 큽니다.
플랫폼을 애플리케이션에 맞추기
데이터베이스가 있는 일반적인 웹 애플리케이션에는 관리형 플랫폼이 잘 맞고, 전담 운영 인력이 없는 거의 모든 팀에게 절약되는 시간이 추가 비용만큼의 가치가 있습니다.
백그라운드 처리, 큐, 예약 작업은 상황을 바꿉니다. 서버리스 모델은 오래 실행되는 작업을 잘 처리하지 못하고, 일부 플랫폼에는 그런 작업을 둘 곳 자체가 없습니다.
특정 하드웨어, 지속적인 높은 트래픽, 엄격한 데이터 상주 요건처럼 특이한 요구가 있다면 일반 클라우드나 전용 서버 쪽으로 기우는 경향이 있습니다.
정적 사이트는 저렴한 쪽에 속하며, 제대로 서비스하는 데 비용이 들지 않는 경우도 많습니다.
회사의 크기가 아니라 워크로드의 모양에서 정하세요. 작은 팀이 까다로운 애플리케이션을 운영하기도 하고, 큰 팀이 단순한 애플리케이션을 운영하는 일도 흔합니다.
자주 묻는 질문
플랫폼과 일반 클라우드는 무엇이 다른가요?
플랫폼은 코드를 받아 실행하고 인프라 대부분을 대신 결정합니다. 일반 클라우드는 서버와 네트워크를 직접 조립하도록 내어 줍니다. 전자는 통제권을 주고 시간을 얻고, 후자는 시간을 들여 통제권을 얻습니다.
가장 빠르게 하려면 어디에 호스팅해야 하나요?
사용자와 데이터베이스에서 가까운 곳입니다. 애플리케이션과 데이터 사이의 리전 간 거리는 다른 최적화 대부분을 무효로 만들고, 콘텐츠 네트워크는 정적 파일에만 도움이 됩니다.
송신 트래픽 요금은 어떻게 계산되나요?
공급사 밖으로 나가는 데이터에 기가바이트당 요금이 붙으며, 저장하는 비용보다 비싼 경우가 많습니다. 영상, 다운로드, 리전 간 트래픽에서 쌓이고, 일부 공급사는 이를 아예 면제하므로 초기에 확인할 만합니다.
콘텐츠 전송 네트워크가 필요한가요?
전 세계에 방문자가 있는 사이트라면 필요하며, 대부분의 플랫폼에 포함되어 있습니다. 방문자 가까이에 정적 파일을 캐시할 뿐, 원본에서 오는 동적 응답에는 도움이 되지 않습니다.
종속을 피하려면 어떻게 하나요?
애플리케이션을 이식 가능하게 유지하고 어떤 관리형 서비스를 쓸지 신중하게 정하세요. 컨테이너와 표준 런타임은 옮길 수 있습니다. 전용 함수, 큐, 데이터베이스가 이전을 재개발로 만듭니다.