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