AWS AppStream 2.0 快速上手

- 作者 -
Sam Tu,  Business Development Manager, AWS

orange-bar
App Stream (2)
Amazon AppStream 2.0是託管式程式串流服務,直接在遠端處理完程式要求後,只把畫面傳送到使用者瀏覽器上呈現結果

[挑戰/適用場景]

企業中推行一個軟體,要提供給使用者什麼樣的操作體驗,才能確保不會有各種的相容性問題,往往讓負責資訊的單位或是推行的單位煩心不已。甚至,當今天隨著企業允許使用者自帶設備(BYOD)來公司使用,內部的使用場景也跟著複雜了許多,這讓一些必要且重要的關鍵程式,為了適應各種使用者裝置,而需要考量更多。

但今天我們可以設想一種場景,所有程式操作在伺服器端完成運算,只把結果傳送到使用者的畫面上,是不是讓整件事情簡單多了?不用再去想說使用者的電腦是哪個版本的作業系統,不用去想更新作業系統後,而不用擔心關鍵程式不再相容所衍生出各種安全性問題,是不是美好多了呢?而AppStream2.0很適合上述的場景中使用,例如我之前所任職的公司,雖然允許員工攜帶自己的筆電上班,但是為了要讓自行開發的ERP系統給Mac使用者操作,花了許多的人力,特別把使用者介面另外寫了一套Web版本,這對使用者來說,要另外熟悉一種介面,而每次改版的速度也落後原生Windows的版本許多;對管理/開發者來說,要維持兩個不同的用戶端,盡量維持接近的體驗,每次改版都得花兩次工,實在是吃力不討好的事情,這個時候AppStream就派上用場囉!要先承認的是,我一開始的目的其實是玩以前Windows才能跑的小遊戲,但既然花了時間嘗試,就順便記下來,當成是一種紀錄跟分享。

在開始進入操作前,先說明一下根據以下步驟逐步做完,就可以建立一個供自己串流測試用的小程式 (這次是用免費的電路模擬軟體LCircuit做範例),當然也可以替換成自己想要嘗試的軟體,體驗看看囉。

[操作步驟]

AppStream2.0的建立流程主要分成六大步驟,可以參考如下說明:

[建立流程]

一、選定區域

登入 AWS Console 後,從服務或尋找服務中搜尋 AppStream2.0。進入後從右上角選擇要建立服務的地理區域(很重要!選錯會讓 latency 飆高,預設是北維吉尼亞),台灣使用者建議使用東京。 >>回到步驟表<<

App Stream (3)
    可以從這裡搜尋AWS的各項服務
App Stream (4)

二、使用"Image Builder"建立後續要用來串流使用的程式

1. 左側點選到Images選單後,切換上方的標籤頁選擇Image Builder,按下Launch Image Builder來開始我們的第一步囉 

App Stream (5)
2. 選擇要運行App的底層作業系統,因為我只是測試看看,就選擇standard.medium來跑一般的App
App Stream (6)
App Stream (7)
3. 幫要建立的Image取個名字吧
App Stream (8)
4. 選擇底層的Instance type,這邊要注意的是,這個部分選擇的Instance大小,不是正式部署後的Instance類型,只是要建立Image時的Instance類型而已
App Stream (9)

5. 下方的VPC Endpoints / IAM role的進階選項,可以根據需求設定。簡單來說,就是是否允許使用者在特定VPC(內網)中,以及使用特定的IAM role套用到Image builder中時使用。但因為我需要在Internet環境隨時可以存取,所以這邊選擇了預設值就好(如果是企業內部使用,建議先跟AWS架構師討論過再決定要怎麼連線喔)。 

App Stream (11)
App Stream (12)
6. 選擇了Continue後,進入網路存取的設定頁面,因為我直接想要使用網際網路存取,所以勾選了"Default Internet Access",並且選擇預設的VPN,還有想要使用的Subnet / Security group
App Stream (13)
7. 針對有需要整合AD的用戶,可以在此頁的下半部選擇"Active Directory Domain (Optional)",將組織的AD還有OU資訊進行設定還有選擇,就可以讓使用者登入的部分更簡化囉,設定好後我們就按下“Review”來進行設定的確認,都沒有問題後就可以選擇"Launch"來建立我們的第一個Image
App Stream (14)
App Stream (15)

三、設定要提供存取的App內容

(這個步驟是整個AppStream設定中最重要的一步,因為程式的安裝及設定,還有測試,都在這個階段要完成,所以格外重要,讓我們一起來看看吧)

  1. 首先是選取我們建立好的Image,然後點選上方的"Connect"

  2. 等待連線後,會看到下方選擇使用者視窗

App Stream (16)

3. Administrator是安裝需要程式時候要選擇的使用者,安裝好程式後所做的設定不會保留下來,需要切換至Template User來進行設定

3.1 我們先以之前下載好的免費電路模擬軟體LCircuit當成例子。在下載(並且安裝完成)後,點選"Add App",並選擇該目標程式,在進行下一步前,建議先執行看看是不是可以正常運作。如果要讓使用者透過AppStream 2.0使用的程式不只一個,就逐一完成安裝並加入選單中

App Stream (17)

3.2 可在開啟的視窗中設定該程式的顯示名稱等資訊,完成後選擇"Save"。此處要注意,若是無需安裝可直接執行的程式,不要將程式的資料夾放在桌面或使用者資料夾下的目錄中,因為在切換成其他使用者(如Template/Test User等)的時候,是無法進行存取的;建議可以放在共用目錄或是C:\下

App Stream (18)

4. Template User是針對安裝好的程式來進行使用者設定。常會使用在需要帶特定參數來啟動的程式上

4.1 選擇"Next",並在下個頁面選擇"Switch User"切換至Template User

App Stream (19)

4.2 切換至Template User後,點選稍早加入的LCircuit,確認是否可以正常啟動。若無法正常啟動,建議一樣要切回Administrator檢查是不是因為安裝或是資料夾擺放的位置造成無法開啟的問題

App Stream (20)

1. 左側點選到Images選單後,切換上方的標籤頁選擇Image Builder,按下Launch Image Builder來開始我們的第一步囉 

App Stream (21)
App Stream (22)

5.2 看來使用上沒有問題,我們可以關閉程式後,再次點選"Switch User",切換回Administrator,並且點選右下角的"Next"

5.3 為了讓程式效能最佳化,我們要在這個頁面點選右上角的"Launch",讓系統可以針對程式利用的資源進行分析後進行優化

App Stream (23)
App Stream (24)
App Stream (25)
App Stream (26)

四、建立Fleets ,此為使用者連線時的底層設定(可以跟Image Builder的Instance type不同,這邊的為使用者連線時會啟用的Instance類型)

App Stream (27)
2. 設定好Fleet的名稱/顯示名稱後點選下一步
App Stream (28)
3. 選擇稍早建立好要串流的Image後選擇"Next"
App Stream (29)
4. 跟建立Image時很相似地,選擇要供使用者串流時候的Instance Type
App Stream (30)
App Stream (31)
5. 設定Instance運作的模式是On-Demand或是Always running,在這裡,我選擇了On-Demand來確保使用時計價,讓成本較低
App Stream (32)
6. Session/連線時間是每次連線進來後允許的時間,還有閒置多久後會逾時的設定,先保持預設就可以了
App Stream (33)
7. Fleet capacity是指串流時Instances數量,併行的使用者數量是需要考量的部分,建議將併行執行的最多人數設定為Maximum Capacity的數量(例如同時最多有5位要使用,就將此值設定為5)
App Stream (34)
App Stream (35)
9. 網路的設定也很類似Image Builder的設定,根據我們的需求將網路部分完成設定,以及是否要結合AD Domain,完成後點選"Next"就會進行Review,都沒有問題後點選"Create"就完成了Fleet的建立
App Stream (36)

五、設定供使用者存取的"Stack"

1. 待 Fleet 建立好後,就要來進行我們的下一步,建立 Stack,左側切換到 Stacks 後,點選"Create Stack"
App Stream (37)
2. 完成Stack的相關名稱/顯示名稱,還有結束串流及提供回應的URL位置(Optional)
App Stream (38)

3. Fleet的部分可以選擇稍早建立的Fleet作為運行的底層(此為Optional,也可以點選右側"Create new fleet"來在這邊建立Fleet) 

App Stream (39)
4. 下方的Embed AppStream2.0可以設定允許嵌入Streaming session的Domain(這邊只允許https的連線喔)
App Stream (40)
5. 點選"Next"後,設定S3儲存位置 (包含使用者家目錄資料夾儲存的bucket)、是否允許使用 Google Drive for G Suite / OneDrive for Business可以根據需求來進行選擇
App Stream (41)
6. 下一步,要來設定剪貼簿、本地檔案傳輸權限跟印表機權限。另外,程式的設定值是否允許儲存也是在這個頁面中設定
App Stream (42)
7. 進到下個頁面完成Review沒問題後,點選"Create"來建立需要的Stack

六、User pool

1. 切換到User Pool後,點選"Create User",在彈出視窗後,填入相關資料後按下"Create User"
App Stream (43)
2. 建立好使用者後,勾選使用這前方的選取框,並點選上方的"Actions"按鈕,選取"Assign Stack"來指派Stack
App Stream (44)
3. 設定視窗也可以一併送出邀請信給該使用者,來通知對方可以開始使用
App Stream (45)
4. 可以開始連線,開心使用AppStream2.0串流程式囉
App Stream (46)
App Stream (47)

七、後記

這個粗淺的操作說明,希望可以幫助到有需要類似需求的朋友們,當然AWS的業務還有架構師都非常樂意協助相關需求的建議及規劃,不管是針對文章內容有疑問、建議,或是想要進一步規劃類似架構需要諮詢,歡迎造訪台灣 AWS,可在網頁的最下方聯繫到我們喔!

免費註冊AWS帳號

數百萬名客戶正使用 AWS 雲端解決方案建立提升彈性、可擴展性、安全性和可靠性的應用程式,歡迎探索各類免費方案在 AWS 上進行建置。

免費註冊>>

與我們聯絡

遇到問題?不管是架構設計、架構優化、效能提升等等,都竭誠歡迎你/妳聯絡 AWS 的雲端業務!

與專人線上對談

有任何新專案的想法,想要評估使用 AWS 服務,或目前在使用上需要原廠協助之處,都可以跟我們聊聊!

開啓對話>>