icon

Container기반 Web Appliation

Container기반 Web Appliation

개요

컨테이너는 애플리케이션의 실제 구동 환경을 가상화하여 제공합니다. 개발자는 어떤 환경에서든 애플리케이션을 쉽고 지속적으로 배포할 수 있습니다. 가상머신은 하드웨어 스택을 가상화하지만, 컨테이너는 운영 체계 수준에서 가상화하기 때문에 OS 커널을 공유하고, 메모리를 훨씬 적게 사용하고, OS 재부팅보다 빠르게 구동할 수 있습니다.

Kubernetes는 수많은 컨테이너 애플리케이션을 자동화하여 관리하기 때문에 분산 시스템 환경을 탄력적으로 실행 및 관리할 수 있도록 제공되는 플랫폼입니다. Kubernetes는 애플리케이션의 확장과 장애 조치의 용이성을 제공하고, 쉽고 빠르게 지속적으로 배포할 수 있는 환경을 제공하여, 웹 애플리케이션 시스템을 성공적으로 구축 운영할 수 있도록 도와 줍니다.

아키텍처 다이어그램

Container Application
그림. Container기반 Web Application 구성
  1. 컨테이너 런타임 관리와 오케스트레이션을 위해 Kubernetes Engine 상품 서비스를 프로비저닝한다
  2. 클러스터 외부로 내부 서비스의 HTTP 와 HTTPS 경로를 노출하기 위해서 Kubernetes의 Ingress Controller를 설치한다.
  3. Ingress Controller의 가용성을 확보하기 위해서 Load Balancer 상품을 신청하고 Ingress Controller와 연결하기 위한 Worker Node IP 를 등록한다.
  4. WEB/WAS 애플리케이션을 구성하기 위해서 Apache HTTP Server, Tomcat 등의 컨테이너 이미지를 실행한다.

사용 사례

경영 정보 시스템의 컨테이너 전환

컨테이너 기술 및 표준 오픈 소스 S/W을 적용하면 일반적으로 H/W 자원을 20% 내외로 절감할 수 있고, S/W의 라이선스 비용도 80% 내외로 줄어듭니다. 시스템 별 적용 기술과 S/W, 버전 등이 달라서 동일 기능에 대한 개발 및 투자 비용이 발생하던 것을 컨테이너로 전환함으로써, 중복 개발을 최소화하고, 전환 기간을 단축할 수 있습니다.

사용자의 폭증에 의한 자원 증설이 필요한 시스템의 컨테이너 전환

사용자 폭증이 예상되는 시간에 앞서 WEB/WAS 컨테이너 자원을 Scale Out하여 사용자 폭증에 대비할 수 있습니다.

사용자 폭증을 예측할 수 없는 경우를 대비하여 Kubernetes의 Auto Scaling을 적용하여 CPU/Memory의 자원 임계 값 이상으로 사용할 때에는 자동으로 컨테이너 자원을 늘릴 수 있습니다. 반대로 임계 값 이하로 떨어지는 경우에는 자동으로 컨테이너 자원을 반납하여 비용 효율적으로 시스템 운영을 할 수 있습니다.

선결 사항

없음

제약 사항

Kubernetes Engine의 Worker Node 생성 최대 개수는 서브넷에서 사용 가능한 IP 범위 내로 제한되며, 최대 100개까지만 생성 가능합니다.

고려 사항

컨테이너 기반의 WEB/WAS등의 구성은 애플리케이션의 특성에 따라서 최적화되어야 합니다. 컨테이너 이미지의 최적화 구성 및 WEB/WAS 등의 환경 설정은 각 컨테이너 이미지 제공 Community를 참고하여 설정하는 것을 권고합니다.

Ingress Controller를 활용하는 경우에는 Ingress Controller의 부하 분산 및 가용성을 보장하기 위해서 Load Balancer를 통해서 서비스되도록 구성하는 것을 권고하며, Ingress Controller는 도메인 기준으로 애플리케이션 컨테이너를 연결 관리하기 때문에 도메인 및 DNS 등록 후에 사용하는 것을 권고합니다.

WEB/WAS 컨테이너에서 DB 시스템과 연결하기 위해서는 컨테이너가 실행되는 Worker Node의 IP로 연결됩니다. Security Group이나 DB 접근 제어를 사용하는 경우에는 컨테이너가 구동되는 Worker Node IP 가 등록되어야 DB 시스템과 연결될 수 있습니다.

관련 서비스

본 가이드에서 설명하는 기능 또는 구성과 연결되는 Samsung Cloud Platform의 서비스 목록입니다. 서비스 선택 및 설계 시에 참고하세요.

서비스군서비스상세 설명
ComputeVirtual Server클라우드 컴퓨팅에 최적화된 가상 서버
ContainerKubernetes EngineKubernetes 컨테이너 오케스트레이션 서비스
DatabasePostgreSQL(DBaaS)오픈소스 PostgreSQL을 간편하게 생성하고 관리하는 서비스
NetworkingVPC클라우드 환경에서 독립된 가상 네트워크를 제공하는 서비스
NetworkingSecurity GroupVM의 트래픽을 제어하는 가상 방화벽
NetworkingLoad Balancer서버 트래픽 부하를 자동으로 분산하는 서비스
StorageFile Storage네트워크 연결을 통하여 연결된 서버들이 손쉽게 데이터를 저장하고 공유하는 스토리지
표. 관련 서비스 목록