컨테이너 방식
클라우드타입은 각종 언어로 작성된 어플리케이션 및 SaaS 서비스를 빠르고 편리하게 배포할 수 있는 컨테이너 기반 PaaS 클라우드 서비스입니다. 따라서 VM 및 VPS 기반의 클라우드와는 다른 특성을 가지고 있습니다.
장점
컨테이너 방식은 VM 대비 다음과 같은 장점이 있습니다.
- 코드가 이미지로 빌드 되어 언제나 동일한 환경이 보장됩니다.
- CI/CD 기반의 배포 자동화에 유리합니다.
- 무중단 배포와 자동 복구가 가능합니다.
- 특정 배포 시점으로의 복구가 원활합니다.
- 타 클라우드 서비스로부터의 마이그레이션이 용이합니다.
단점
하지만 컨테이너 방식에도 단점이 존재합니다.
- 코드를 이미지로 빌드하는 과정(컨테이너화)에서 문제를 겪을 수 있습니다.
- 고정/퍼블릭 IP가 제공되지 않습니다.
- SSH 직접 연결이 제공되지 않습니다. (클라우드타입은 대시보드와 CLI 를 통해 터미널 접속을 제공합니다.)
- FTP/SFTP 등을 통한 파일 업로드/다운로드를 지원하지 않습니다.
- 중지 후 재시작시 데이터가 삭제됩니다. (영구 디스크에 저장된 데이터는 서비스와 별개로 유지 가능 / 추후 지원 예정)
- 배포가 성공한 이후 터미널 연결이 가능합니다.
클라우드타입 도입
클라우드타입이 적합한 경우
클라우드타입은 컨테이너화가 가능한 일반적인 서버 소프트웨어를 구동하는 것에는 큰 문제가 없지만, 컨테이너 기반인 만큼 컨테이너화에 최적화된 무상태(Stateless) 기반의 소프트웨어 개발 및 운영에 가장 적합합니다.
무상태 기반 소프트웨어란?
- 서비스가 언제든 중단되고 재시작 되어도 문제가 없는 구조
- 여러 개의 인스턴스로 수평 확장이 되어도 정상 작동
- 타 인스턴스와 공유되는 데이터는 캐시(Redis 등)를 활용
- 이미지 등의 데이터는 스트리밍으로 처리, 보존은 S3 등 오브젝트 스토리지와 CDN을 사용
클라우드타입이 적합하지 않은 경우
클라우드타입이 제공하는 공유 클러스터는 다수의 사용자가 안정적으로 함께 사용할 수 있는 방식에 초점이 맞추어져 있습니다. 따라서 소프트웨어에 따라 공유 클러스터에 배포하기에 적합하지 않거나 불가능한 경우가 있습니다.
적합하지 않은 경우
- 소스 코드가 Git을 사용하지 않는 경우 (SVN 불가)
- HTTP(S) 가 아닌 외부에서 TCP 접속이 필요한 경우
- 복잡하고 긴 빌드 시간(20분 이상)이 소요되는 경우
- 빌드 완료된 이미지 사이즈가 2GB 이상인 경우
- 이미지, 동영상, 음원 등의 스트리밍 서비스
- 대규모 트래픽이 수시로 발생하는 경우
- GPU가 필요하거나 CPU 소요량이 많은 소프트웨어 (블록체인/AI 엔진 등)
- 대용량 파일을 내부에 저장하고 처리하는 경우
- 보안에 매우 민감한 데이터를 다루는 경우
- 데이터의 백업 및 보존을 위한 스냅샷 기능을 필요로 하는 경우
- 대용량 로깅과 모니터링이 중요한 경우
클라우드타입의 공유 클러스터는 개발 및 초기 운영 단계를 벗어나 CPU 및 트래픽 사용량이 일정 수준 이상 넘어서면 기존의 클라우드 서비스 대비 요금이 부담될 수 있습니다. 이 경우 쿠버네티스 연결 기능을 통해 시트당 요금으로 GKE, EKS 등 직접 개설한 쿠버네티스를 연결하여 사용하는 것이 좋은 선택이 될 수 있습니다.
쿠버네티스 연결 기능
클라우드타입은 최대한 많은 유형의 서비스를 지원하기 위해 노력하고 있지만 공유 클러스터에서 서비스하기 적합하지 않은 경우 쿠버네티스 연결 기능을 통해 직접 사용 중인 쿠버네티스(GKE, EKS 등)를 연결하여 사용할 수 있는 방식을 제공합니다.
쿠버네티스 연결 기능이란?
GCP, AWS 및 VPS 호스팅 서비스에서 직접 개설한 쿠버네티스 클러스터를 클라우드타입에 연결하여 빌드, 배포 자동화 등 클라우드타입의 모든 기능을 시트 당 요금으로 제한없이 사용할 수 있는 기능입니다.
쿠버네티스 연결 기능의 장점
- 사내 전용 PaaS 및 개발자 플랫폼으로 활용
- 쿠버네티스 클러스터를 학습할 필요없이 다수의 개발자가 체계적으로 사용
- 팀의 개발 진행 상황과 배포 상황을 쉽고 편리하게 파악
- 개발자 및 브랜치 별 개발 서버와 프리뷰 URL 로 간편하게 개발 상황 공유
- 오픈소스, 블로그, CMS 등 별도 개발없이 다양한 SW를 서비스에 통합
- 개발자와 비개발 팀원간의 협업 증진
- 이미지 크기 및 레지스트리, GPU, OS 유형(Windows/Linux), 스토리지 등을 원하는 사양으로 사용
- 더 세밀한 네트웍 설정 등 사용 중인 인프라 관리 체계에 기반
- 모니터링 및 보안, 요금 등 클라우드 제공자마다 유리한 점을 취사 선택
즉, 기존의 인프라 계정을 그대로 유지하면서 클라우드타입을 더 편리한 개발과 배포/관리를 위한 도구로 제한 없이 활용할 수 있습니다.
데모 영상
클라우드타입으로 AWS EKS를 연결하여 개발자 PaaS플랫폼 구축하기
구글 쿠버네티스 엔진(Google Kubernetes Engine)에 클라우드타입 연결하기
참고
클라우드타입 블로그
기술문의
디스코드 서버
디스코드 서버의 문제해결 채널에서 클라우드타입 사용시 발생한 에러 및 문의사항을 남겨주세요