Amazon AppStream 2.0
- Fully managed application & desktop streaming service
- Confy application streaming through browser
- Application and data are stored in AWS
- Auto-scalable
- Instances that streams app & desktop is disposable
AWS AppStream 2.0 Architecture
- Video & User Input is streamed via HTTPS
- AppStream instance running the app and the end-user are encrypted via SSL
- Network Access managable via 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
- Provisioning
- 20 instances per minute for single fleet
- 15 min, 25 min when feelts are joing to an Active Directory domain
Scaling Policy Metric
- Capacity Utilization
- The percentage of instances in a fleet that are being used
- e.g. If Capacity Utilization < 25%, remove 25% capacity
- Available Capacity
- The number of instances in a fleet that are available for users
- e.g. If Available Capacity < 5, add 5 instances
- Insufficient Capacity Error
- The number of session requests rejected due to lack of capacity
- e.g. If Insufficient Capacity Error > 0, add 1 instance
Scaling Policies
- Step scaling
- Recommended to scale with the percentage of capacity
- Target tracking
- Is effective for high-churn situations
- Large number of users start, or end sessions in a short period of time
- Schedule-based scaling
- Recommended to scale up when working hours
References