Amazon AppStream 2.0


  • 완전 관리형 애플리케이션 및 데스크톱 스트리밍 서비스
  • 브라우저를 통해 간편하게 애플리케이션을 스트리밍
  • 애플리케이션과 데이터는 AWS 에 저장된다
  • Auto-scalable
  • 앱과 데스크톱을 스트리밍하는 Instance 는 일회성이라 세션이 끝나면 폐기된다

AWS AppStream 2.0 Architecture


  • 화면과 사용자 입력은 HTTPS 로 스트리밍된다
  • 앱을 실행하는 AppStream Instance 와 최종 사용자 사이 구간은 SSL 로 암호화된다
  • 네트워크 접근은 Security Group 으로 제어

AWS AppStream 2.0 Concepts


  • Image
    • AppStream 2.0 Streaming Instance 의 시작 상태를 미리 구성해놓은 파일
    • EC2 AMI 와 비슷
  • Image Builder
    • Image 를 만들기 위한 인스턴스로, AppStream 2.0 에서 실행할 App Catalog 를 생성하고, Image 를 생성함
    • Desktop 모드가 아닌 기본 AppStream 2.0 을 통해 크롬 브라우저만 사용하게 하려면 Image Builder 를 통해 Chrome 을 설치하고 구동하는 과정을 등록하고, 그 등록된 상태를 Image 로 만들어서 Streaming Instance 로 사용
  • Fleet
    • Fleet 은 지정한 Image 를 실행하는 Fleet Instance(Streaming Instance)로 구성됨
    • Fleet 에 대해 원하는 수의 Streaming Instance 를 설정하고 필요에 따라 Fleet 을 자동으로 조정하도록 Policy 구성 가능
    • User 1명당 1개의 Instance 가 필요
    • 즉, Fleet 은 Scaling 가능한 Streaming Instance 를 묶은 집합
      • EC2 의 Auto Scaling Group 과 흡사
  • Stacks
    • Stack 은 연결된 Fleet, 사용자 엑세스 정책 및 Storage 구성으로 구성됨
    • Stack 을 설정하여 사용자에게 Application 을 Streaming 함
    • 즉, Stack 을 통해 Fleet 과 사용자를 연결해주고 Fleet 제어를 위한 설정을 적용

Fleet 의 유형


  • On-Demand vs Always On
    • On Demand 는 사용자가 접속할 때 Streaming Instance 를 켜고 유기적으로 종료
    • Always On 은 24시간 Streaming Instance 가 On 인 상태
  • Always On 이라도 Scaling Policy 가 중요함
    • 사용자가 붙을 수 있는 개수는 어쨌든 Fleet 의 Instance 개수
    • 사용 가능한 Instance 개수에 따라 그 안에서 사용자들의 세션이 생성되고 만료됨
    • Always On 이면 사용자가 붙어있지 않아도 Streaming Instance 가 계속 켜져있는 것이고, Always On 이라해도, Scaling 정책에 의해 새로 생성되는 Instance 에 접속하면 대기 시간을 기다려야 함

Fleet Auto Scaling


  • Instance 프로비저닝 속도
    • 단일 Fleet 기준 분당 20개 Instance
    • 프로비저닝에 15분이 걸리고, Fleet 이 Active Directory 도메인에 조인하는 경우 25분이 걸린다

Scaling Policy Metric

  • Capacity Utilization
    • Fleet 내에서 실제로 사용 중인 Instance 의 비율
      • e.g. 용량 사용률이 25% 미만이면 용량의 25% 를 줄인다
  • Available Capacity
    • Fleet 내에서 사용자가 접속할 수 있는 Instance 의 개수
      • e.g. 가용 용량이 5개 미만이면 Instance 5개를 추가한다
  • Insufficient Capacity Error
    • 용량이 모자라 거부된 세션 요청의 개수
      • e.g. 용량 부족 오류가 1건 이상이면 Instance 1개를 추가한다

Scaling Policies

  • Step scaling
    • 용량의 비율 단위로 조정할 때 권장된다
  • Target tracking
    • 세션 변동이 잦은 상황에 효과적이다
    • 짧은 시간에 많은 사용자가 세션을 시작하거나 종료하는 경우
  • Schedule-based scaling
    • 업무 시간에 맞춰 미리 확장할 때 권장된다

Amazon DCV vs AppStream 2.0 vs WorkSpaces


세 서비스는 AWS 에서 제공하는 원격 데스크톱 및 애플리케이션 스트리밍 솔루션이다.

  • Amazon DCV (프로토콜 / 원천 기술)
    • AWS 가 소유한 고성능 원격 스트리밍 프로토콜
    • 고성능 그래픽(GPU) 및 HD 디스플레이 스트리밍을 최적화하여 전달
    • AppStream 2.0 과 WorkSpaces 내부에서 원격 화면을 전송하는 기술로 쓰이며, EC2에 직접 설치해 사용할 수도 있다
  • AppStream 2.0 (애플리케이션 스트리밍)
    • 전체 OS가 아닌 단일 애플리케이션만 웹 브라우저로 스트리밍하는 SaaS/PaaS 형 서비스
    • 사용자는 데스크톱 전체를 빌리는 대신, 특정 앱(예: CAD 프로그램, 3D 렌더링 툴)만 서비스 형태로 실행
  • WorkSpaces (가상 데스크톱 서비스 - VDI)
    • 완전한 클라우드 기반 가상 PC(Windows/Linux 데스크톱)를 제공
    • 원격 근무자에게 개별 작업 공간(파일, 설정, 설치된 앱 유지)을 통째로 할당할 때 사용

References