目標
- 類別: Game-Based Learning
- 課名: AWS Card Clash – an Architecture Design Game
- 關卡名稱(遊玩主題): CardClash_ServerlessDevelopement_第5關_活動管理應用程式
透過遊玩本關,學習如何運用各種服務建構進階的無伺服器服務架構,理解此系統如何處理訪客註冊、報到的活動和開發人員更新網站的行為。
第五關 架構圖雛形

架構場景應用
Event Management Application,活動管理應用程式
本關架構建立了一個可擴展的事件管理應用程式,無需伺服器管理即可處理註冊和報到 (check-in)。
場景是訪客註冊和check-in時,前後端和程式的運作;以及開發者如何編輯前端。
卡牌功能說明
Service Cards:


- AWS Amplify
- 服務介紹:
是一種全端開發工具,幫助開發者簡單並快速建構和部署Web或Mobile應用。 - 本關功能:
本應用程式的前端結構。 - 服務網址:
https://aws.amazon.com/tw/amplify/
- 服務介紹:


- Amazon API Gateway
- 服務介紹:
是一種全受管的服務,負責管控系統中所有用到的API,使用時可以建立 RESTful API 和 WebSocket API,以啟用即時雙向通訊應用程式。 - 本關功能:
接收前端送來的check-in指令,向Amazon Cognito認證後,請求Lambda執行check-in程式。 - 服務網址:
https://aws.amazon.com/tw/api-gateway/
- 服務介紹:


- Amazon Cognito
- 卡牌介紹:
管理系統用戶的服務,提供註冊、登入等存取權限相關的服務。 - 本關功能:
負責系統的認證,確保用戶身分 - 服務網址:
https://aws.amazon.com/tw/cognito/
- 卡牌介紹:


- Amazon DynamoDB
- 卡牌介紹:
是Amazon的無伺服器NoSQL資料庫服務,用來儲存結構化資料 - 本關功能:
作為系統中存放資料的地方,儲存訪客資料。 - 服務網址:
https://aws.amazon.com/tw/dynamodb/
- 卡牌介紹:


- AWS Lambda
- 卡牌介紹:
是一種運算服務,可執行程式碼以回應事件並自動管理運算資源,無須伺服器或叢集 - 本關功能:
負責系統中的程式運行,接收 API 的請求執行check-in程式,將訪客資料存放進Amazon DynamoDB,並呼叫 Amazon Pinpoint的 API 聯絡訪客。 - 服務網址:
https://aws.amazon.com/tw/lambda/
- 卡牌介紹:


- Amazon Pinpoint
- 卡牌介紹:
是一種顧客參與服務,可已發送通知、行銷推播或和使用者溝通,可以透過Email、SMS、推播通知等多管道聯絡客戶。 - 本關功能:
收到 AWS Lambda 的呼叫後,發送簡訊和電子郵件通知給訪客。 - 服務網址:
https://aws.amazon.com/tw/pinpoint/
- 卡牌介紹:


- Amazon Route 53
- 卡牌介紹:
是一個網域名稱系統 (DNS) Web服務,方便管理網域。 - 本關功能:
讓使用者與部署於其內部的網路應用程式連線。 - 服務網址:
https://aws.amazon.com/tw/route53/
- 卡牌介紹:


- Amazon S3
- 卡牌介紹:
全名Amazon Simple Storage Service,是一種雲端物件儲存服務,儲存非結構化資料,以Artifact(物件)為單位 - 本關功能:
作為系統中存放資料的地方,提供 AWS Amplify 和 Amazon API Gateway 靜態資料。 - 服務網址:
https://aws.amazon.com/tw/s3/
- 卡牌介紹:


- AWS X-RAY
- 卡牌介紹:
能分析和偵錯生產、分散式應用程式的服務,也能提供「請求」在程式中流動的紀錄,並能在無/低程式碼情況下過濾有效負載、函數、追蹤、服務、API 等中的可視資料。 - 本關功能:
在系統中分析和偵錯。 - 服務網址:
https://aws.amazon.com/tw/xray/
- 卡牌介紹:
Sercurity Cards:
- IAM
- 卡牌介紹:
全名AWS Identity and Access Management,是管理身分和AWS服務存取權的防護服務 - 本關功能:
在關卡中可消耗一點體力打出,保護指定的我方服務卡不被對手佔領,本關中的服務卡全部皆可使用。 - 服務網址:
https://aws.amazon.com/tw/iam/
- 卡牌介紹:

- AWS WAF
- 卡牌介紹:
Web Application Firewall的縮寫,是一種網頁應用程式的防火牆,用來保護Web應用程式的服務,防止遭受網路攻擊。 - 本關功能:
在關卡中可消耗一點體力打出,保護指定的我方打出的Web應用程式卡不被對手佔領,如本關中的Amazon API Gateway。 - 服務網址:
https://aws.amazon.com/tw/waf/
- 卡牌介紹:
其他:

- AWS Management Console
- 卡牌介紹:
AWS管理主控台,是管理AWS服務的網路介面。 - 本關功能:
在關卡中打出可增加一點體力 - 服務網址:
https://aws.amazon.com/tw/console/
- 卡牌介紹:

- AWS CLI
- 卡牌介紹:
全名AWS Command Line Interface,即AWS命令列介面,是一種管理AWS服務的統一工具。可以透過指令來與 AWS 各項服務互動,不需透過 AWS 管理主控台。 - 本關功能:
在關卡中打出可以增加兩點體力 - 服務網址:
https://aws.amazon.com/tw/cli/
- 卡牌介紹:

- AWS CloudFormation
- 卡牌介紹:
是一種基礎設施即程式碼(IaC) 服務,可以幫助使用者利用程式建立、管理AWS或第三的服務,以及進行模型化。 - 本關功能:
在關卡中打出可增加三點體力 - 服務網址:
https://aws.amazon.com/tw/cloudformation/
- 卡牌介紹:
最終架構圖樣貌

總結
- 學習進階的無伺服器架構
- 掌握AWS服務運用:
- AWS Amplify 提供開發人員建構前端的環境。
- Amazon Cognito 負責進行訪客身分認證。
- Amazon Pinpoint 可以發送訊息給。
- Amazon Route 53 提供系統 DNS 讓外部使用者連線到內部應用程式。
- AWS X-RAY 可以負責系統的分析和偵錯。
參考資料
- Service Card:
- https://aws.amazon.com/tw/amplify/
- https://aws.amazon.com/tw/api-gateway/
- https://aws.amazon.com/tw/cognito/
- https://aws.amazon.com/tw/dynamodb/
- https://aws.amazon.com/tw/lambda/
- https://aws.amazon.com/tw/pinpoint/
- https://aws.amazon.com/tw/route53/
- https://aws.amazon.com/tw/s3/
- https://aws.amazon.com/tw/xray/
- Sercurity Cards 和其他: