課程名稱:AWS Certified Solutions Architect - Professional (Amazon Cloud AWS SAP) 國際認可證書課程 - 簡稱:Amazon Cloud AWS SAP Training Course |
(重要資訊:AWS SAP 考試範圍是會包括 AWS SAA 技術的,若還未掌握 AWS SAA 技術,請務必先報讀本中心的 AWS Certified Solutions Architect - Associate (Amazon Cloud AWS SAA) 國際認可證書課程。)
第 1 部份:CloudFormation。在 AWS SAA 課程 已經教授了透過 AWS 網頁或 AWS CLI 以建立、設定和刪除 AWS Resources (e.g. EC2, S3, Lambda 等),本課程會教授 CloudFormation 以自動化的方法建立、設定和刪除 AWS Resources,做到如巴塞足球會般的 “one-click deployment of our whole infrastructure.” (Reference: https://aws.amazon.com/solutions/case-studies/futbol-club-barcelona/)

- 教授基本 CloudFormation Stack Script 的基本結構,例如 Parameters、Mappings、Conditions、Metadata 和 Outputs。

- 配合 Designer 寫 Script,但要注意 Designer / Visual Designer 並不是具備有所有 AWS Resources,所以在課堂需要教授如何解決 Designer 的 “不足”。

- 讓用戶在執行 CloudFormation Stack 前輸入或選定參數,避免過份 hardcode。

- 執行 CloudFormation Stack 後將新建立的 AWS Resources 資料顯示出來,例如使用 CloudFormation Stack 建立 IAM users 後將 username, password, access key 和 secret access key 顯示出來。

- 善用 AWS 提供的 Function (Fn) 以寫 Script。

第 2 部份:Elastic Beanstalk。在 AWS SAA 課程 已經 “獨立” 地教授了 EC2、ELB、Auto Scaling、RDS 等。本課程會教授的 Elastic Beanstalk 能令企業快速部署和管理應用程式,並 “整合地” 處理容量佈建、負載平衡、自動調整規模和程式監控,同時能令企業進行 Rolling Update 或 Blue-Green Deployment。

- 教授如何準備 Elastic Beanstalk “認到” 的程式。


- 在 Elastic Beanstalk 進行 Auto Scaling。

- 教授不同的 Deployment policies,分析它們的使用時機,並作出更新程式的示範,了解 deploy 途中程式能否運作。




- 在 Elastic Beanstalk 建立 Database。大家從以下的記錄中發現建立 Database 後有一個新的 Rolling Update? 為什麼有這樣現象? 上堂再詳談。

- 程式如何接駁到 Elastic Beanstalk 的 Database 內 (不是在程式碼上 hardcode Endpoint URL)。

- 進行 Blue-Green Deployment (FrancoApp-env → FrancoApp-env WithDB)。


- Elastic Beanstalk 與 CloudFormation 的關係: 理解 Elastic Beanstalk 背後執行甚麼,有助理解和 troubleshoot Elastic Beanstalk。

第 3 部份:VPC。在 AWS SAA 課程 已經教授了 VPC 的基本概念,例如 Public Subnet + IGW、Private Subnet + NAT gateway、Site-to-Site VPN + VGW + CGW + BGP 打通天地等話題。本課程會教授進階的 VPC 技術。

- IPv6: 教授如何在 VPC 使用 IPv6,並教授 IGW 與 EIGW (Egress-Only Internet Gateways) 的分別及它們的使用時機。


- 善用 AWS “內部” 網路,避免不必要的 Internet Access,因為 Internet Access 可能涉及如 NAT Gateway 等的收費,善用 “內部” 網路亦可以避免使用 Public IP。

- 教授如下圖的 “Special Route”,上堂解說這 route 做甚麼。

- 教授如下圖的 “blockhole” routes 的成因及處理方法。

- 在 AWS SAA 課程 已經教了 Site-to-Site VPN per VPC 的做法,如果 VPC 數量不多都還可以的;但一旦 VPC 數量多,VPN 數量都可能會多,這不利管理和控制 VPN 的成本,本課程會教授一個有趣的技術可以打通不同的 VPCs 和 VPNs (不是 VPC Peering!),如下圖所示


第 4 部份:Step Functions。在 AWS SAA 課程 已經教授了 Lambda Functions 等serverless 的基本概念,進入了 serverless 的世界。相信執行一個或少量的 Lambda Functions 應該沒有太大的問題 (例子)。但如果我們面對比較複雜的情況,也許需要考慮使用 Step Functions 以協調分散式應用程式 (Distributed applications / Lambda functions) 和微服務 (Microservices)。此章節的教授重點是 architectures,不是程式編寫。

- 教授分散式應用程式和微服務的結構 (課堂內盡量以 AWS SAA 課程 已經教授過 Lambda Functions 作解釋及示範,避免過份處理如 Java EE 的程式語言和架構),並教授 Step Functions 的角色。

- 由 “Hello World” 開始學習 Step Functions。


- Iterations, outputs, Inputs 和 functions 之間的訊息傳遞。

第 5 部份:Containers (ECS + ECR + Fargate + Auto Scaling)。本章節教授 AWS 的 Container solutions。

- 教授 Containers 技術特點,了解其特點、優點及限制。
- 小試牛刀:先教授在一台 EC2 instance 操作 Docker。製作 Dockerfile,然後 build 成 Image。


- 將 image 儲存到 ECR (Elastic Container Registry) 內。

- 下一階段在 ECS (Elastic Container Service) 操作 Containers,首先教授 Fargate,一個十分有趣的概念,我們可以在 “無 Node / 無 EC2 instance” 下操作 Containers。

- 在 ECS Cluster “單獨” 地執行 Tasks。

- 在 ECS Cluster 建立 Service 在有 Application Load Balancer + Auto Scaling 下執行 containers,例如下圖反映了因為 CPU Utilization 太低,由 2 個 tasks 減少到 1 個 task。

- 以 200% 的 capacity 進行 Rolling Update (示範更新軟件 / 內容)。

- 其他 AWS Resources 和 Containers 之間的話題,例如怎樣將 container 的 stdout 儲存到 CloudWatch 內。

第 6 部份:Miscellaneous 。本章節主要視乎上課當時 AWS 技術發展情況和 AWS 客戶使用 AWS 技術情況教授有關技術。
- 教授同時管理多個 AWS account 的技巧。


- 教授使用 AWS Systems Manager 管理 EC2 instances。


- 教授使用AWS WAF (Web Application Firewall) 以保護 Web application。

- 教授 AWS CDK (Cloud Development Kit) 概念以使用擅長的編程語言定義雲架構。

- 教授 AWS SAM (Serverless Application Model ) 概念以定義 serverless 架構。

- 教授 AWS Billing 和 Cost Management 以有效管理成本,例如列出每小時的使用情況、設定 Budget 等。
- 教授 AWS Config 以追蹤更變。
- AWS Resource Access Manager (AWS RAM) 概念以分享資料。
The course content above may change at any time without notice in order to better reflect the content of the examination.
|