애플리케이션 워크로드
IBM Cloud® Code Engine 는 코드 실행을 원하는 개발자의 요구를 해결하기 위해 설계되었습니다. Code Engine 는 Kubernetes 에서 워크로드 구축, 배포 및 관리의 운영 부담을 추상화하여 개발자가 가장 중요한 것, 즉 소스 코드에 집중할 수 있도록 합니다. 개발자는 워크로드 빌드 및 관리의 복잡도를 Code Engine에 위임하여 프레임워크 또는 언어로 작성된 애플리케이션을 배치하고 확장할 수 있습니다. Code Engine 애플리케이션 작업에 대해 알아보세요.
애플리케이션 워크로드의 개념
애플리케이션 또는 앱은 코드를 실행하여 HTTP 요청을 제공합니다. 기존 HTTP 요청 외에 IBM Cloud® Code Engine은 WebSocket을 통신 프로토콜로 사용하는 애플리케이션도 지원합니다. 앱의 실행 중인 인스턴스 수는 수신 요청 및 구성 설정에 따라 자동으로 확장 또는 축소(0으로)됩니다. 앱에는 하나 이상의 개정이 포함되어 있습니다. 개정은 앱 구성 특성의 불변 버전을 나타냅니다. 앱 구성 특성을 업데이트할 때마다 앱 개정이 새로 작성됩니다.
Code Engine 애플리케이션에 대한 작업의 주요 기능은 무엇입니까?
Code Engine에서 애플리케이션에 대한 작업에 대해 자세히 알아보려면 다음 주제를 검토하십시오.
격리
Code Engine은 테넌트가 동일한 네트워크 및 컴퓨팅 인프라를 공유하는 다중 테넌트 지역 서비스입니다. 특히 네트워크 및 컴퓨팅 인프라는 공유 리소스이며 일부 관리 컴포넌트는 모든 테넌트에 공통입니다. 그러나 테넌트 및 해당 워크로드는 Code Engine 프로젝트를 사용하여 서로 격리됩니다. Code Engine 는 프로젝트 간의 통신을 방지하여 다중 테넌트 환경 내의 애플리케이션에 격리를 제공합니다. 또한 권한 부여된 사용자만 애플리케이션 또는 기타 Code Engine 워크로드와 같은 프로젝트 자원에 대해 특정 조작을 수행할 수 있도록 자원 레벨에서 수행되는 액세스 제어가 있습니다.
워크로드 격리에 대한 자세한 정보는 Code Engine 워크로드 격리 를 참조하십시오.
로깅
콘솔에서 로깅을 사용하도록 설정한 상태에서 Code Engine 애플리케이션으로 작업하는 경우 로그는 Code Engine IBM Cloud Logs 프로젝트와 연결된 서비스 인스턴스로 전달됩니다. IBM Cloud Logs 서비스 인스턴스에서는 로그가 색인화되어 생성된 모든 메시지를 전체 텍스트로 검색하고 특정 필드에 따라 편리하게 쿼리할 수 있습니다. 애플리케이션에 대한 로그 가져오기 를 참조하십시오.
시스템 이벤트 정보는 작업을 실행할 때 문제를 해결하는 데도 도움이 될 수 있습니다. CLI를 사용하여 시스템 이벤트 정보를 볼 수 있습니다. 애플리케이션에 대한 시스템 이벤트 정보 가져오기 를 참조하십시오.
로깅에 대한 자세한 정보는 로그 보기를 참조하십시오.
애플리케이션 실행
코드가 로컬 파일이나 Git 리포지토리에 소스로 존재하든, 공개 또는 비공개 레지스트리에 존재하는 컨테이너 이미지이든, Code Engine 에서는 코드를 앱으로 실행할 수 있는 간소화된 방법을 제공합니다.
다음 방법으로 Code Engine 에서 애플리케이션을 배치하고 실행할 수 있습니다.
-
기존 컨테이너 이미지에서 실행합니다. 애플리케이션을 작성하고 Code Engine를 사용하여 앱을 배치할 때 사용할 이미지에 대한 참조를 제공하십시오.
-
컨테이너 이미지 없이 기존 소스 코드에서 실행합니다. Git 저장소 또는 로컬 워크스테이션에 있는 소스 코드로 시작하는 경우 소스의 위치를 가리킬 수 있으며 Code Engine 가 이미지 빌드를 처리합니다. Code Engine 는 소스 코드를 검사하여 컨테이너 이미지로 빌드하고 패키지해야 하는 방법을 판별하는 Dockerfile및 Cloud Native Buildpack에서 빌드를 지원합니다.
애플리케이션 배치 및 실행에 대한 자세한 정보는 Code Engine에서 앱에 대한 작업 을 참조하십시오.
스케일링
Code Engine 애플리케이션은 수신 요청에 따라 확장 또는 축소됩니다. 애플리케이션은 0으로 스케일링 모델을 따르며, 여기서 트래픽이 없을 때 인스턴스가 작성되지 않으므로 비용 최적화가 발생합니다. 수신 요청이 있는 경우 앱은 워크로드를 수용하기 위해 0에서 자동으로 스케일링 업됩니다.
Code Engine를 사용하면 인스턴스의 최소 및 최대 수를 설정하여 자동 스케일링을 제어할 수 있습니다. 새 인스턴스가 프로비저닝되는 시기를 판별하는 데 도움이 되도록 특정 애플리케이션 인스턴스에 대해 병렬로 실행할 요청 수를 지정하여 애플리케이션의 동시성을 지정할 수도 있습니다.
앱 스케일링에 대한 자세한 정보는 애플리케이션 스케일링 구성을 참조하십시오.
보안
Code Engine 는 애플리케이션에 즉각적인 DDOS 보호 기능을 제공합니다. Code Engine 의 DDOS 보호는 Cloud Internet Services (CIS) 에서 추가 비용 없이 제공합니다. DDoS 보호는 시스템 상호 연결(OSI) 레이어 3 및 레이어 4(TCP/IP) 프로토콜 공격에는 적용되지만 레이어 7 HTTP ) 공격에는 적용되지 않습니다. DDoS 보호를 참조하세요.
Code Engine 는 또한 애플리케이션에서 상호 TLS (Transport Layer Security) 트래픽을 사용으로 설정하여 서비스 대 서비스 및 사용자 대 서비스 통신을 보호하는 네트워킹 계층을 사용하기 위한 서비스 메시를 제공합니다.
보안에 대한 자세한 정보는 Code Engine 및 보안 을 참조하십시오.
이벤트가 있는 애플리케이션 트리거
Cron 이벤트, IBM Cloud Object Storage 이벤트 또는 Kafka 주제를 수신하도록 Code Engine 애플리케이션을 구성할 수 있습니다. 이벤트 생성자에 등록할 때 이벤트를 수신할 대상 애플리케이션의 이름을 지정해야 합니다.
이벤트 생성자 작업에 대한 자세한 정보는 등록 시작하기 를 참조하십시오.
가시성
Code Engine 을 사용하면 요청 수신에 사용할 수 있는 엔드포인트 또는 시스템 도메인 매핑을 정의하여 애플리케이션에 적합한 가시성 수준을 결정할 수 있습니다. 애플리케이션은 인터넷, IBM Cloud 사설 네트워크에 노출되거나 동일한 Code Engine 프로젝트의 다른 리소스에만 범위가 지정될 수 있습니다.
기본적으로 실행 중인 모든 애플리케이션은 사용자 고유의 도메인에 맵핑할 수 있는 자체 TLS 보안 엔드포인트를 가져옵니다.
또한 사용자 지정 도메인을 Code Engine 애플리케이션에 매핑하여 사용자 지정 URL 애플리케이션으로 요청을 라우팅할 수 있습니다. 사용자가 소유한 도메인을 사용하여 애플리케이션을 대상으로 지정하려는 경우 사용자 정의 도메인 맵핑을 사용할 수 있습니다. Code Engine 사용자 지정 도메인 매핑을 설정하면 프로젝트에서 FQDN(정규화된 도메인 이름)과 Code Engine 애플리케이션 간의 1-to-1 매핑을 정의하게 됩니다.
가시성에 대한 자세한 정보는 Code Engine 애플리케이션에 대한 가시성 옵션 및 애플리케이션에 대한 사용자 정의 도메인 맵핑 구성 을 참조하십시오.
애플리케이션을 어떻게 시작할 수 있습니까?
icr.io/codeengine/helloworld 샘플 이미지를 사용하여 단순 Code Engine 애플리케이션을 배치하려면 첫 번째 Code Engine 앱 작성 을 참조하십시오.
또한 애플리케이션 학습을 시도할 수 있습니다. 애플리케이션 배치 및 스케일링 을 참조하십시오.
애플리케이션에 대한 작업을 자세히 살펴보려면 Code Engine에서 앱에 대한 작업 을 참조하십시오.