다음을 통해 공유


Azure Container Apps의 동적 세션

Azure Container Apps 동적 세션은 다른 워크로드로부터 강력한 격리가 필요한 코드 또는 애플리케이션을 실행하는 데 이상적인 안전한 샌드박스 환경에 대한 빠른 액세스를 제공합니다.

세션은 세션의 즉각적인 가용성을 보장하기 위해 콜드 스타트를 완화하는 세션 의 컨텍스트 내에서 작동합니다.

세션을 사용하면 다음을 얻을 수 있습니다.

  • 강력한 격리: 세션이 서로 격리되고 호스트 환경에서도 격리됩니다. 각 세션은 자체 Hyper-V 샌드박스에서 실행되어 엔터프라이즈급 보안 및 격리를 제공합니다. 선택적으로 네트워크 격리를 사용하도록 설정하여 보안을 더욱 강화할 수 있습니다.

  • 간단한 액세스: REST API를 통해 세션에 액세스합니다. 고유 식별자가 각 세션을 표시합니다. 지정된 식별자를 가진 세션이 존재하지 않으면 새 세션이 자동으로 할당됩니다.

  • 완전 관리: Container Apps는 세션의 수명 주기를 완전히 관리합니다. 세션은 더 이상 사용되지 않으면 자동으로 정리됩니다.

  • 빠른 시작: 새 세션이 밀리초 단위로 할당됩니다. 준비되었지만 할당되지 않은 세션 풀을 자동으로 유지함으로써 신속한 시작이 가능합니다.

  • 크기 조정 가능: 세션을 대규모로 실행할 수 있습니다. 수백 또는 수천 개의 세션을 동시에 실행할 수 있습니다.

  • API 액세스: 세션은 단일 HTTP 엔드포인트를 통해 애플리케이션에 노출됩니다.

세션

세션은 신뢰할 수 없는 코드 또는 애플리케이션을 실행하는 샌드박스 환경입니다.

각 세션은 다른 모든 세션과 Hyper-V 샌드박스가 있는 호스트 환경에서 격리됩니다. Hyper-V 기술은 세션 격리의 기초가 되며, 다양한 세션이 필요한 보안 경계와 독립적으로 작동하도록 보장합니다. 향상된 네트워크 보안을 위해 세션에서 세션 네트워크 격리를 사용하도록 설정할 수 있습니다.

세션에는 두 가지 유형이 있습니다.

세션 유형

Azure Container Apps는 두 가지 형식의 세션을 지원합니다.

유형 설명 청구 모델
코드 인터프리터 세션 널리 사용되는 라이브러리가 미리 설치된 샌드박스에서 코드를 실행할 수 있는 완전히 관리되는 코드 인터프리터입니다.

애플리케이션 사용자가 제공한 코드 또는 LLM(대규모 언어 모델)에서 생성된 코드와 같은 신뢰할 수 없는 코드를 실행하는 데 적합합니다.

세션을 기본 제공 또는 언어 모델 프레임워크와 함께 사용할 수 있습니다.
세션당(사용량)
사용자 지정 컨테이너 세션 사용자가 소유한 컨테이너 이미지를 안전하고 격리된 샌드박스에서 실행하는 가져오기 옵션입니다.

이 방법은 기본으로 지원되지 않는 언어 또는 강력한 격리가 필요한 워크로드에 대해 사용자 지정 코드 인터프리터를 실행하려는 경우에 좋은 옵션입니다.
Container Apps 전용 플랜

각 세션은 형식에 관계없이 세션 풀의 컨텍스트에서 실행됩니다.

세션 풀

1초 미만의 세션 할당 시간을 제공하기 위해 Azure Container Apps는 준비되었지만 할당되지 않은 세션 풀을 유지 관리합니다. 애플리케이션이 이전에 사용되지 않은 세션에 대한 요청을 하면 풀에서 자동으로 새 세션을 할당합니다. 세션이 할당되면 풀이 자동으로 보충되어 일정한 수의 준비된 세션을 유지 관리합니다.

각 세션 풀은 고유한 풀 관리 엔드포인트 위치를 통해 앱에서 사용할 수 있습니다.

세션 수명 주기

Container Apps 런타임은 풀의 각 세션에 대한 수명 주기를 자동으로 관리합니다. 세션의 수명은 세션이 시작되고 세션이 사용 중인 동안 계속됨에 따라 시작됩니다. 쿨 다운 시간이 경과한 후 세션에 대한 요청이 없으면 세션이 제거됩니다.

다음 상태는 이 수명 주기를 정의합니다.

  1. 보류 중: 세션이 시작되면 보류 상태입니다. 세션이 이 상태에서 소비하는 시간은 세션 풀에 지정된 컨테이너 이미지 및 설정에 따라 달라집니다. 이 상태의 세션은 준비된 세션 풀에 추가되지 않습니다.

  2. 할당되지 않음: 세션 시작이 완료되면 풀에 추가되고 할당할 수 있게 됩니다. 사용자 지정 컨테이너 세션의 경우 풀에서 유지 관리할 준비 세션 수를 지정할 수 있습니다. 세션이 보충되는 것보다 더 빠르게 할당되는 경우 이 수를 늘려야 합니다.

  3. 할당됨: 실행하지 않는 세션에 요청을 보낼 때 풀은 새 세션을 제공하고 할당된 상태로 배치합니다. 세션 식별자가 동일한 후속 요청은 동일한 세션으로 라우팅되므로 콜드 시작 없이 효율적으로 재사용할 수 있습니다. 할당된 각 세션은 세션 식별자와 연결됩니다.

  4. 제거됨: 세션이 설정에 정의된 cooldownPeriodInSeconds 기간 동안 요청을 받지 못하면 세션과 해당 Hyper-V 샌드박스가 안전하게 삭제됩니다. 이 자동 정리 설정은 리소스 관리 및 보안을 향상시킵니다.

Container Apps 런타임은 세션 풀의 각 세션에 대한 수명 주기를 자동으로 관리합니다.

지역 가용성

동적 세션은 다음 지역에서 사용할 수 있습니다.

지역 코드 인터프리터 사용자 지정 컨테이너
오스트레일리아 동부
Australia Southeast
브라질 남부
Canada Central
캐나다 동부
Central India
Central US
동아시아
미국 동부
미국 동부 2
프랑스 중부
독일 중서부
이탈리아 북부
일본 동부
일본 서부
한국 중부
미국 중북부
북유럽
노르웨이 동부
폴란드 중부
남아프리카 북부
인도 남부
동남아시아
스웨덴 중부
스위스 북부
스위스 서부
아랍에미리트 북부
영국 남부
UK West
미국 중서부
서유럽
미국 서부
미국 서부 2
미국 서부 3

결제

사용자 지정 컨테이너 세션은 세션 풀에서 사용하는 리소스에 따라 요금이 청구됩니다. 자세한 내용은 Azure Container Apps 청구를 참조하세요.

보안

다음 메서드를 사용하여 동적 세션의 보안을 강화합니다.

  • 보안 식별자: 항상 보안 세션 식별자를 사용합니다. 고유하고 예측할 수 없는 값을 보장하기 위해 암호화 메서드를 사용하여 세션 식별자를 생성합니다. 공격자가 추측할 수 있는 순차 ID를 사용하지 않습니다.

  • HTTPS 사용: 항상 HTTPS를 사용하여 전송 중인 데이터를 암호화합니다. 이렇게 하면 세션 식별자와 클라이언트와 서버 간에 교환된 중요한 데이터가 가로채지 않도록 보호합니다.

  • 세션 수명 제한: 세션에 대한 시간 제한을 구현합니다. 예를 들어 세션이 자동으로 종료되기 전에 최대 15분의 비활성 작업을 허용합니다. 이렇게 하면 분실되거나 무인 디바이스로 인한 위험을 완화할 수 있습니다.

  • 정기적인 감사 및 모니터링: 세션 관리 사례 및 로그를 주기적으로 검토합니다. 반복된 실패한 로그인 시도 또는 비정상적인 세션 길이와 같은 의심스러운 활동을 경고하는 모니터링 도구를 구현합니다.